WP_Customize_Manager::add_state_query_params
Adds customize state query params to a given URL if preview is allowed.
Method of the class: WP_Customize_Manager{}
No Hooks.
Returns
String. URL.
Usage
$WP_Customize_Manager = new WP_Customize_Manager(); $WP_Customize_Manager->add_state_query_params( $url );
- $url(string) (required)
- URL.
Notes
- See: wp_redirect()
- See: WP_Customize_Manager::get_allowed_url()
Changelog
| Since 4.7.0 | Introduced. |
WP_Customize_Manager::add_state_query_params() WP Customize Manager::add state query params code WP 7.0
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;
}