diff --git src/wp-includes/class-wp-customize-manager.php src/wp-includes/class-wp-customize-manager.php
index 66fb7ff..4f4fcf1 100644
|
|
final class WP_Customize_Manager { |
1579 | 1579 | */ |
1580 | 1580 | public function get_return_url() { |
1581 | 1581 | $referer = wp_get_referer(); |
| 1582 | $excluded_referer_basenames = array( 'customize.php', 'wp-login.php' ); |
| 1583 | |
1582 | 1584 | if ( $this->return_url ) { |
1583 | 1585 | $return_url = $this->return_url; |
1584 | | } else if ( $referer && 'customize.php' !== basename( parse_url( $referer, PHP_URL_PATH ) ) ) { |
| 1586 | } else if ( $referer && ! in_array( basename( parse_url( $referer, PHP_URL_PATH ) ), $excluded_referer_basenames, true ) ) { |
1585 | 1587 | $return_url = $referer; |
1586 | 1588 | } else if ( $this->preview_url ) { |
1587 | 1589 | $return_url = $this->preview_url; |
diff --git tests/phpunit/tests/customize/manager.php tests/phpunit/tests/customize/manager.php
index 929df0a..e787cfa 100644
|
|
class Tests_WP_Customize_Manager extends WP_UnitTestCase { |
322 | 322 | $_SERVER['HTTP_REFERER'] = wp_slash( admin_url( 'customize.php' ) ); |
323 | 323 | $this->assertEquals( $preview_url, $this->manager->get_return_url() ); |
324 | 324 | |
| 325 | // See #35355. |
| 326 | $_SERVER['HTTP_REFERER'] = wp_slash( admin_url( 'wp-login.php' ) ); |
| 327 | $this->assertEquals( $preview_url, $this->manager->get_return_url() ); |
| 328 | |
325 | 329 | $url = home_url( '/referred/' ); |
326 | 330 | $_SERVER['HTTP_REFERER'] = wp_slash( $url ); |
327 | 331 | $this->assertEquals( $url, $this->manager->get_return_url() ); |