J'essaie d'utiliser wp_redirect()
pour rediriger l'utilisateur après avoir soumis avec succès un formulaire d'inscription sur la page.
Cela ne fonctionne pas et affiche l'erreur suivante:
Avertissement: impossible de modifier les informations d'en-tête - en-têtes déjà envoyés par (sortie démarrée à /Applications/MAMP/htdocs/theme/wp-content/themes/test/header.php:10) dans / Applications / MAMP / htdocs / theme / wp- comprend / pluggable.php sur la ligne 1178
Je comprends qu'il y a déjà eu une sortie avant, c'est pourquoi cela ne fonctionne pas, mais je ne sais pas comment faire fonctionner cela.
Le formulaire d'inscription est rendu par une fonction, et est soumis par une autre fonction, dans mon functions.php.
if ( isset( $_POST['subscribe'] ) ) {
// Submits the form and should then redirect
wp_redirect("/thank-you/");
exit;
}
Ensuite, ces deux fonctions sont utilisées là où je veux afficher le formulaire d'inscription.
J'ai bien peur que ce ne soit pas la meilleure chose à faire. Je devrais créer une action qui fait cela, mais je n'ai aucune idée de comment mettre en œuvre cela. La plupart des tutoriels que j'ai trouvés montrent les résultats directement sur la même page et ne nécessitent pas de redirection supplémentaire. C'est peut-être pour cela qu'ils travaillent avec des fonctions à l'intérieur du fichier functions.php
la source
Vous devez utiliser
wp_redirect()
avantget_header()
Alors il ne montrera pas d'erreur d'en-tête.la source
la source
is_page_template()
une redirection conditionnelle.vous pouvez aussi faire ça
Au lieu de la ligne ci-dessous
wp_redirect ("$ url");
écrire
ou
Cela résoudra certainement votre problème.
la source