Мой код работал нормально:
$registrado = "no";
$redirect_url = site_url( "/pedido-nao-recebido/?mpms2pagarme=retorno&codigo=nao200&mensagem=oui®istrado=$registrado");
wp_redirect($redirect_url);
exit;
С этим я был перенаправлен на
http://s16138.p360.sites.pressdns.com/pedido-nao-recebido/?mpms2pagarme=retorno&codigo=nao200&mensagem=oui®istrado=no.
Именно то, что мне нужно.
Тогда я решил принять меры безопасности, с wp_nonce_url
.
$registrado = "no";
$redirect_url = site_url( "/pedido-nao-recebido/?mpms2pagarme=retorno&codigo=nao200&mensagem=oui®istrado=$registrado");
//WP Nonce (security measure)
$nonce_redirect_url = wp_nonce_url( $redirect_url, 'pedido-nao-recebido', 'mpms2nonce' );
wp_redirect($nonce_redirect_url);
exit;
Теперь я получаю этот URL:
http://s16138.p360.sites.pressdns.com/pedido-nao-recebido/?mpms2pagarme=retorno&codigo=nao200&mensagem=oui&registrado=no&mpms2nonce=aeb5ba40d2.
Из-за этого amp;
мой код не работает, и браузер дает мне файл The s16138.p360.sites.pressdns.com page isn't working
. На перенаправленной странице есть скрипт, который не работает. Это выглядит так:
//If it is not a subscription request, abort...
if (!isset( $_GET['mpms2pagarme'] ) || 'retorno'!= $_GET['mpms2pagarme'] ||!isset( $_GET['codigo'] ) ||!isset( $_GET['mensagem'] ) ) {
return;
}
//Checking WP Nonce
check_admin_referer( 'pedido-nao-recebido', 'mpms2nonce' );
(...)
Я попытался использовать функцию php header
вместо wp_redirect
, но произошло то же самое (амперсанд). Я тоже пробовал esc_url
,... безуспешно esc_url_raw
.urlencode
Странная вещь... wp_redirect
(или header
) у меня работает только без wp_nonce_url
. Должен ли я избавиться от последнего? Любое другое решение?
Заранее спасибо.
Решение проблемы
Вы можете использовать html_entity_decode()
для преобразования &
обратно в&
Комментариев нет:
Отправить комментарий