WP_Customize_Manager::add_state_query_params( string $url ): string

Adds customize state query params to a given URL if preview is allowed.

Description

See also

Parameters

$urlstringrequired
URL.

Return

string URL.

Source

public function add_state_query_params( $url ) {
	$parsed_original_url = wp_parse_url( $url );
	$is_allowed          = false;
	foreach ( $this->get_allowed_urls() as $allowed_url ) {
		$parsed_allowed_url = wp_parse_url( $allowed_url );
		$is_allowed         = (
			$parsed_allowed_url['scheme'] === $parsed_original_url['scheme']
			&&
			$parsed_allowed_url['host'] === $parsed_original_url['host']
			&&
			str_starts_with( $parsed_original_url['path'], $parsed_allowed_url['path'] )
		);
		if ( $is_allowed ) {
			break;
		}
	}

	if ( $is_allowed ) {
		$query_params = array(
			'customize_changeset_uuid' => $this->changeset_uuid(),
		);
		if ( ! $this->is_theme_active() ) {
			$query_params['customize_theme'] = $this->get_stylesheet();
		}
		if ( $this->messenger_channel ) {
			$query_params['customize_messenger_channel'] = $this->messenger_channel;
		}
		$url = add_query_arg( $query_params, $url );
	}

	return $url;
}

Changelog

VersionDescription
4.7.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.