comment empêcher/bloquer l’accès direct à une page de remerciement, seul l’accès s’il est redirigé de soumettre un formulaire (dans une page différente)?
Si le formulaire redirige à partir d'une seule page, vous pouvez facilement utiliser wp_get_referer()
pour le vérifier et, dans le cas contraire, rediriger.
add_action('template_redirect', function(){
// ID of the thank you page
if ( ! is_page(12345)) {
return;
}
// coming from the form, so all is fine
if (wp_get_referer() == 'URL_OF_FORM') {
return;
}
// we are on thank you page
// visitor is not coming from form
// so redirect to home
wp_redirect( get_home_url() );
exit;
}
Je ne sais pas pourquoi le code ci-dessus ne fonctionne pas pour moi. Cependant, le code ci-dessous a parfaitement fonctionné.
<?php
function thank_you_rd(){
if ( ! is_page('thank-you')) {
return;
}
if (wp_get_referer() == '/contact-us/') {
return;
}
wp_redirect( get_home_url() );
}
add_action('template_redirect', 'thank_you_rd');
?>