Empêcher les formulaires dans WordPress de renvoyer des alertes en utilisant le modèle post Redirect get

L’article d’aujourd’hui traite d’un thème de haut niveau dans le développement de WordPress, écrit par un invité exceptionnel et le développeur et éducateur de WordPress Carl Alexander. C Arl est un développeur PHP de Montréal, au Canada, qui partage son enthousiasme pour les sujets de programmation avancée sur son site Web, carralexander. Ca publie régulièrement des articles. Carl, un habitué de WordPress camp, est l’organisateur de WordPress Montréal depuis 2010 et aide à organiser d’autres événements WordPress tout au long de l’année. Il est également l’auteur du livre Learning Object Oriented Programming Using WordPress. Vous pouvez le trouver sur Twitter et github.
Nous avons tous connu un tel succès. Nous remplissons le formulaire dans lamp;rsquoapplication Web. Commençons par les cauchemars des spécialistes de la convivialité Web, et camp;rsquoest ce que nous avons vu: la fenêtre damp;rsquoavertissement infâme
Alors, comment créer une page d’administration WordPress sans cet horrible avertissement? Utilisez le modèle publier rediriger obtenir. C’est aussi un modèle à utiliser avec wordpress. Voyons comment tu fais! Pourquoi lamp;rsquoalerte « confirmer la soumission du formulaire » apparaît elle? Tout damp;rsquoabord, voyons pourquoi cette notification est affichée. Après tout, lamp;rsquoavis de retour de formulaire existe pour une raison! Pourquoi votre navigateur Web cause t il tant de problèmes? Supposons que soyez sur la page paiements du site Web du commerce électronique
Contenu de la page de succès.
Le navigateur exécute ensuite une requête get basée sur lamp;rsquoen tête de position dans la réponse de redirection. Ceci récupère le contenu de la page réussie. Mais maintenant, puisque la dernière demande est une demande get, pouvez mettre à jour la page sans avertissement. (uzach!) Imaginons que nous ayons créé la page d’administration wordpress pour le plugin en cours de développement. Il a un formulaire que nous pouvons envoyer pour mettre à jour ses paramètres. Voici à quoi il ressemble: * * * enregistrer la page damp;rsquoadministration du plug in Fonctions myplugin _ create admin page () {add menu page (amp;lsquoMy plugin admin pageamp;rsquo, amp;lsquoMy plugin admin pageamp;rsquo, amp;lsquoEdit postsamp;rsquo,amp;rsquo myplugin admin page amp;lsquo,amp;rsquo myplugin Display admin page amp;lsquo) Ajouter une action (
Comme indiqué ci dessus, utilisez le modèle post Redirect get dans WordPress, ce qui est fait par défaut si utilisez l’api de configuration. Mais notre module namp;rsquoutilise pas lamp;rsquoAPI de configuration. Comment convertir cela en un modèle post Redirect get? Ajouter une redirection ajoute une redirection directement à la fonction myplugin _ Display admin page. milaire à ceci: * * * afficher la page de gestion du plug in Fonction myplugin _ Display admin
_ page () {if (isset ($post [amp;lsquomyplugin option]) {Update option (amp;lsquo myplugin option amp;lsquo, $post [amp;lsquo myplugin option]) WP redirection (menu page url (amp;lsquomyplugin admin pageamp;rsquo, false), 303) exit} ..] Nous avons ajouté un appel à la fonction de redirection WP _ dans lamp;rsquoinstruction if. Nous fournissons la valeur retournée par la fonction menu _ page url. Il samp;rsquoagit damp;rsquoune fonctionnalité de support pratique pour générer des URL pour les pages de gestion. Par défaut, il fait écho à lamp;rsquoURL, donc nous devons passer à false comme deuxième argument pour lamp;empêcher.
Pour la redirection, devez également toujours appeler la fonction exit. Cela met fin au script et redirige les cheveux vers le navigateur. Camp;rsquoest pourquoi il est dit au navigateur damp;rsquoeffectuer la redirection. Maintenant, essayer damp;rsquoimplémenter le modèle post Redirect get de cette façon pose un gros problème: il ne fonctionnera que dans quelques rares cas. (Oui, je tamp;rsquoai menti!) Au lieu de rediriger, verrez un avertissement PHP indiquant que lamp;rsquoen tête a été envoyé. Que pouvez faire? On pourrait utiliser un crochet peu connu. On appelle ça un crochet admin _ post.
C’est le crochet que WordPress appelle lorsque envoyez une demande à la page WP admin admin post. Php. Lorsque WordPress reçoit une demande pour cette page, il cherche le paramètre action. Dans l’affirmative, WordPress appellera admin _ POST OPERATION Hook. Cela peut sembler déroutant, mais une fois que aurez mis à jour nos exemples, il sera plus facile de les comprendre. Enregistrer la page de gestion du plug in en utilisant Hook admin _ post * * *. Fonctions myplugin _ create admin page () {add menu page (amp;lsquoMy plugin admin pageamp;rsquo, amp;lsquoMy plugin admin pageamp;rsquo, amp;lsquoEdit postsamp;rsquo,amp;rsquo myplugin admin page amp;lsquo,amp;rsquo myplugin Display admin page amp;lsquo) Ajouter une action (
OST [amp;lsquomyplugin _ optionamp;rsquo] {Update option (amp;lsquomyplugin optionamp;rsquo, $post [amp;lsquomyplugin option])} WP _ redirection (Admin URL (amp;lsquoadmin.php? Page = myplugin admin pageamp;rsquo), 303)} Ajouter _ action (amp;lsquoadmin post myplugin Update optionsamp;rsquo,amp;rsquo myplugin admin Update optionsamp;rsquo) Fonction myplugin Display admin page () {$option = get option (amp;lsquomyplugin optionamp;rsquo, amp;lsquo)? amp;gt Mon plug in de page damp;rsquoadministration

Le Code en question est lamp;rsquoinstruction if que nous utilisons pour vérifier que le formulaire a été soumis. Vérifions si la clé damp;rsquooption myplugin _ est dans $u post. Et mettre à jour les options, le cas échéant. La fonction myplugin _ admin Update options utilise le crochet admin post que nous venons de mentionner. Mais pourquoi ce crochet samp;rsquoappelle admin _ post myplugin Update options? Cela remonte à ce que nous appelons la façon dont les crochets arrière de lamp;rsquoAdministrateur fonctionnent. Il samp;rsquoagit damp;rsquoune combinaison des paramètres admin _ post uprefix et action. Pour notre module, le paramètre action provient des champs cachés dans le module. Et contient la valeur myplugin _ Update options. Nous avons également modifié le formulaire et lamp;rsquoavons envoyé à lamp;rsquoAdministrateur. Php. Pour ce faire, nous utilisons la fonction admin _ URL pour générer lamp;rsquoURL admin post. Php. C’est une façon de générer des URL pour les administrateurs WordPress. Nous utilisons également la fonction admin _ URL dans la fonction myplugin admin Update options pour générer une URL de redirection. Ceci est dû au fait que la fonction menu _ page url ne peut pas être utilisée avec le crochet admin Post: Nous namp;rsquoavons pas ajouté de page administrative à ce moment là, donc cela nous donne une erreur. Camp;rsquoest ce que tu fais! Avec ceci, nous avons maintenant un module qui utilise le modèle post Redirect get. (Yes!) Camp;rsquoest nous.
Il y a un crochet gouvernemental que beaucoup damp;rsquoentre nous ne connaissent pas. C’est vraiment l’outil que WordPress nous propose. Il nous permet damp;rsquoimplémenter le modèle sans trop de problèmes. Bien sûr, devez diviser notre Code en plusieurs fonctions. Mais camp;rsquoest bon! Une fonction affiche le module. Un autre est responsable de la mise à jour des options dans WordPress. Par conséquent, nous avons rendu le code plus ciblé et moins sujet aux erreurs. Ce sont des choses pour lesquelles nous devons nous battre! Cet article fait suite à ce qui suit: https:wpshout.commake-wordpress-admin-options-page-without-using-settings-api En savoir plus sur les débordements de pile. Nous sommes très reconnaissants à Carl pour cet article! Regardez ses écrits sur Carl Alexander. Ca: l’un des meilleurs professeurs de WordPress jamais écrit. Nous recommandons fortement son livre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

ContactPress Supported By WordPress Plugins