diff --git a/includes/Context.php b/includes/Context.php index e0deb20504c..5066da0e73d 100644 --- a/includes/Context.php +++ b/includes/Context.php @@ -156,7 +156,7 @@ public function get_reference_site_url() { $site_url = $orig_site_url; } - return $site_url; + return untrailingslashit( $site_url ); } /** @@ -169,8 +169,8 @@ public function get_reference_site_url() { * @return string|false The reference permalink URL or false if post does not exist. */ public function get_reference_permalink( $post = 0 ) { - $reference_site_url = untrailingslashit( $this->get_reference_site_url() ); - $orig_site_url = untrailingslashit( home_url() ); + $reference_site_url = $this->get_reference_site_url(); + $orig_site_url = home_url(); // Gets post object. On front area we need to use get_queried_object to get the current post object. if ( ! $post ) { diff --git a/includes/Core/REST_API/REST_Routes.php b/includes/Core/REST_API/REST_Routes.php index ecf420fc70c..84b99a0be1a 100644 --- a/includes/Core/REST_API/REST_Routes.php +++ b/includes/Core/REST_API/REST_Routes.php @@ -519,8 +519,8 @@ function( $dataset ) use ( $module ) { if ( filter_var( $query, FILTER_VALIDATE_URL ) ) { // Translate public/alternate reference URLs to local if different. $query_url = str_replace( - trailingslashit( $this->context->get_reference_site_url() ), - trailingslashit( home_url() ), + $this->context->get_reference_site_url(), + home_url(), $query ); $post_id = url_to_postid( $query_url ); diff --git a/includes/Modules/Analytics.php b/includes/Modules/Analytics.php index 2c06b858eba..528c231ee24 100644 --- a/includes/Modules/Analytics.php +++ b/includes/Modules/Analytics.php @@ -1005,7 +1005,7 @@ function ( \Google_Service_Analytics_Account $account ) { } $found_property = new \Google_Service_Analytics_Webproperty(); - $current_url = untrailingslashit( $this->context->get_reference_site_url() ); + $current_url = $this->context->get_reference_site_url(); // If requested for a specific property, only match by property ID. if ( ! empty( $data['existingPropertyId'] ) ) { diff --git a/tests/phpunit/integration/ContextTest.php b/tests/phpunit/integration/ContextTest.php index a034116a991..4a87dcf706b 100644 --- a/tests/phpunit/integration/ContextTest.php +++ b/tests/phpunit/integration/ContextTest.php @@ -108,6 +108,15 @@ public function test_get_reference_site_url() { $this->assertEquals( 'https://test.com', $context->get_reference_site_url() ); remove_filter( 'googlesitekit_site_url', $other_url_filter ); + $trailing_slash_url = function () { + return 'https://test.com/'; + }; + + // It always returns a URL without a trailing slash. + add_filter( 'googlesitekit_site_url', $trailing_slash_url ); + $this->assertEquals( 'https://test.com', $context->get_reference_site_url() ); + remove_filter( 'googlesitekit_site_url', $trailing_slash_url ); + // If the filtered value returns an empty value, it falls back to the home_url. add_filter( 'googlesitekit_site_url', '__return_empty_string' ); $this->assertEquals( $home_url, $context->get_reference_site_url() );