Gestion Envoyer des modules WordPress en utilisant admin Post et admin Ajax

WordPress offre un support incroyable pour le traitement des formulaires soumis dans les applications. Que ajoutiez des modules dans la zone administrative ou publique, un mécanisme damp;rsquointégration avec la gestion des messages et la gestion des scripts Ajax permettra de gérer efficacement les demandes de formulaires. Dans je vais montrer comment envoyer des formulaires personnalisés en utilisant la gestion de l’api WordPress. Je guiderai dans le processus damp;rsquoajout de modules personnalisés dans la zone de gestion du plug in, dans la gestion de la soumission des formulaires via les requêtes HTML et Ajax, et dans lamp;rsquoécriture du gestionnaire de modules en PHP pour valider, désinfecter et traiter les modules damp;rsquoentrée.
Bien que je reste dans l’administration de WordPress, le même concept s’applique à l’utilisation des modules dans les espaces publics. Je vais également utiliser une architecture de Programmation orientée objet pour les plug ins Cependant, pouvez également utiliser le Code de procédure pour obtenir le même résultat. Vous pouvez le plugin pratique ici pour lire cet article. Note: cet article est destiné aux développeurs WordPress intermédiaires et avancés. Supposons que ayez une connaissance pratique du HTML, Javascript, jquery, PHP et des API plug in WordPress. une mise à jour est nécessaire, je recommande de lire ce qui suit:
Développement de startups WordPress: Comment démarrer le développement de startups WordPress: création d’un plugin Javascript pour les développeurs WordPress: développement avancé de WordPress avec Ajax: Introduction à la programmation orientée objet commençons par un aperçu du mécanisme WordPress intégré pour traiter les demandes de post de modules réguliers. Utilisez le poste Administrateur pour envoyer le formulaire. Une série de crochets disponibles dans PHP WordPress dans WordPress permet de bien contrôler le flux d’exécution de votre application. Il namp;rsquoy a pas non plus de différence dans le traitement des formulaires. Tu namp;rsquoas besoin que de H.
Réparez ook à snap et ajoutez un gestionnaire de module personnalisé. Les crochets qui traitent les formulaires personnalisés sont essentiellement dynamiques, ce qui signifie que le nom des crochets dépend en partie de .
Pour ne traiter que les présentations liées au formulaire, avez besoin de contrôles plus précis, comme suit: Envoyer un module WordPress avec des messages de gestion. Php Ceci est fait en pointant le formulaire vers le fichier gérer les postes. PHP est situé dans le répertoire WordPress WP admin et contient le nom personnalisé de l’action dans le module. Ce faisant, WordPress activera deux crochets d’action en fonction de l’état de connexion de l’utilisateur: admin _ post action} pour les utilisateurs connectés admin post nopriv action}, pour les utilisateurs non connectés, où $action est le nom de l’action passée par le formulaire.
Vous pouvez ensuite utiliser lamp;rsquoopération add _ pour connecter le gestionnaire de module PHP au crochet activé, où avez le contrôle total sur le traitement des données du module en utilisant les variables $get et $post. Comme lamp;rsquoavez probablement deviné, bien que son nom soit admin post. Php peut traiter les demandes post et get, ainsi que les demandes pour les zones administratives et non administratives de lamp;rsquoapplication. Explorons cela avec des plug ins personnalisés. Mon but ici est de aider à comprendre tout ce qui se cache derrière le traitement des formulaires personnalisés dans WordPress avec et sans Ajax. Pour jamp;rsquoa i préparé un plug in personnalisé que pouvez ici. Je recommande de l’ouvrir dans un éditeur approprié et de l’installer uniquement dans votre configuration WordPress locale.
Jamp;rsquoa i créé un plug in à lamp;rsquoaide damp;rsquoune pratique de Programmation orientée objet à lamp;rsquoaide damp;rsquoun modèle de plug in. Le point de départ de Boilerplate est l’une des nombreuses meilleures pratiques énumérées dans le Manuel du plugin wordpress. Ils sont un excellent moyen damp;rsquoassurer la cohérence entre les plug ins et permettent damp;rsquoéconomiser beaucoup de temps
Chiffrement standard du Code. Au fil du temps, pouvez même écrire vos propres modèles personnalisés en fonction de vos préférences de codage. Camp;rsquoest ce que je fais. Le plug in est basé sur mon modèle de plug in, une branche du projet original de plug in WordPress. Il est similaire à la conception originale à bien des égards, mais prend également en charge les espaces de noms et le chargement automatique. De cette façon, je namp;rsquoai pas besoin damp;rsquoavoir un préfixe unique pour chaque classe ou fonction, ni beaucoup damp;rsquoinstructions include et require. Cependant, la version PHP minimale requise pour mon plug in est 5.6.0.
Remarque: namp;rsquoutilisez pas damp;rsquoespace de noms ou de code de procédure, devez saisir tous les préfixes. Camp;rsquoest la structure du plug in à lamp;rsquoarrière plan: Inc CORE * fonctions de base de Inc admin * fonctions liées à Inc frontend * zones damp;rsquoadministration fonctions liées à Inc common * zones publiques fonctions partagées par les administrateurs et lamp;rsquoavant plan Structure du plug in le plug in damp;rsquoarrière plan dispose damp;rsquoun menu de gestion de haut niveau avec deux éléments de menu pour la page du module. Structure du menu de gestion du plug in pour voir comment jamp;rsquoajoute la page du menu de gestion, consultez la méthode define _ admin Hooks () dans Inc CORE class init. Méthodes add _ plugin admin menu () en PHP et INC admin class admin. Php du plug in.
souhaitez en savoir plus sur l’ajout de pages d’administration au plugin, consultez notre article sur la création de pages d’administration WordPress ici. Ajouter un module à la page de gestion du plug in lorsque jamp;rsquoajoute une page de menu soumettre des formulaires HTML pour le plug in, je dois également spécifier un rappel pour charger le contenu de la page. Camp;rsquoest là que les modules sont ajoutés. Cependant, au lieu damp;rsquoécrire say, chargez dans Summary number Designation studio afc5dac6bc56291b824e21a283555
Dans la méthode HTML _ form page content, jamp;rsquoai utilisé une autre partie du fichier HTML form view. PHP est situé dans Inc admin views du formulaire HTML, que jamp;rsquoai chargé dans le rappel comme suit:
Charger le Composite number signal studio 9361c83a07f8c6343a79a59bfbb09d41 est une préférence damp;rsquoencodage pure. Il me permet de garder le code lisible en séparant le HTML et namp;rsquoa aucun effet sur la sortie des modules sur la page plug in. Module HTML dans la page de gestion des plug ins comprendre la sécurité, la structure et la soumission des formulaires les formulaires ajoutés ci dessus ont un champ de sélection avec une liste déroulante d’utilisateurs WordPress existants et deux champs de texte pour l’entrée de l’utilisateur. Cependant, cet exemple simple a beaucoup à faire dans les coulisses. Le Code de formulaire suivant est évident, alors regardons les éléments importants:
Télécharger la sécurité des modules dans la zone de gestion WordPress la chose la plus importante à garder à l’esprit est la sécurité. Protégez le formulaire en utilisant la combinaison de WordPress nonces et Current _ user can ($Feature). Dans mon exemple, jamp;rsquoutilise if (Current _ user can (amp;lsquoEdit Usersamp;rsquo) pour limiter les entrées aux modules, camp;rsquoest à dire que les modules ne sont chargés que si lamp;rsquoutilisateur connecté peut éditer user. Jamp;rsquoa I également généré une nonce personnalisée en utilisant WP _ create nonce () et lamp;rsquoai ajoutée comme champ de module caché. Au lieu de cela, pouvez lamp;rsquoajouter directement en utilisant WP _ nonce Field (). Camp;rsquoest un bon article pour en savoir plus sur nonces.
Structure du module jamp;rsquoai pré placé tous les éléments du module avec le nom du plug in pour assurer lamp;rsquounicité. Camp;rsquoest aussi une préférence personnelle pour le codage, car je peux mamp;rsquoassurer que JavaScript ne cible que les éléments de mon formulaire. Jamp;rsquoai également utilisé la propriété require
Et HTML5 laissent la validation du formulaire au navigateur. Vérification des formulaires de présentation les formulaires de présentation sont remplis au poste de gestion. Php utilise lamp;rsquoURL admin _ au lieu damp;rsquoencoder lamp;rsquoURL. Lorsque WordPress reçoit un module, il cherche la valeur du champ action pour activer le crochet du module. Dans mon exemple, il génère un crochet de réponse admin _ post NDS form response. Samp;rsquoil samp;rsquoagit damp;rsquoune page ouverte au public, elle activera le crochet admin _ post nopriv NDS form response. À ce stade, le gestionnaire de formulaire pour la demande Post, si soumettez le formulaire, serez redirigé vers une page vide dont lamp;rsquoURL de page est définie à admin post. Php. Camp;rsquoest parce quamp;rsquoil namp;rsquoy a pas encore de gestionnaire de formulaires pour traiter les demandes. Pour traiter la demande, jamp;rsquoai enregistré le gestionnaire personnalisé _ form Response dans la méthode class init define admin Hooks (). Mode PHP: $this amp;gt loader amp;gt add _ action (amp;lsquoadmin post NDS form Responseamp;rsquo, $plugin admin, amp;lsquothe form Responseamp;rsquo) utilisez un code de procédure, namp;rsquoavez quamp;rsquoà ajouter une action (amp;lsquoadmin _ post NDS form Responseamp;rsquo, amp;lsquothe form Responseamp;rsquo) Le chargement de Synthesis nuancedesignstudio 058d846d2b1059a097475e6e327499d7 the _ form Response () est lamp;rsquoendroit où jamp;rsquoaurai un accès complet aux données du module via $post ou $get. Comme indiqué ci dessous, jamp;rsquoai ajouté un point damp;rsquoarrêt au rappel de lamp;rsquoIDE pour mamp;rsquoassurer que le crochet fonctionne comme prévu. Vérification de lamp;rsquoentrée du module à lamp;rsquoaide de la validation du module Xdebug et de la désinfection de lamp;rsquoentrée la vérification de lamp;rsquoentrée du module doit être effectuée avant toute opération, la nonce doit être vérifiée et lamp;rsquoentrée de lamp;rsquoutilisateur doit être désinfectée correctement. Jamp;rsquoutilise WP _ verify nonce ($nonce name, $nonce action) pour valider les fonctions nonce et sanitize Key () et jamp;rsquoutilise sanitize text field () pour éliminer lamp;rsquoentrée utilisateur disponible dans la variable $post. lamp;rsquoauthentification nonce échoue, lamp;rsquoutilisateur recevra un message damp;rsquoerreur en tant que risp
Les champs obligatoires cesseront damp;rsquoêtre utilisés. Can I use est un excellent site Web que pouvez utiliser pour comparer les fonctionnalités web disponibles entre le navigateur et la version du navigateur. L’utilisation du module de soumission Ajax (Admin ajax.php) dans WordPress Ajax est gérée via le fichier WP admin admin Ajax. Php. Voici un aperçu de la façon de travailler avec des formulaires personnalisés en utilisant Ajax dans WordPress: Lorsque soumettez un formulaire supportant Ajax dans WordPress, remarquerez qu’il est très similaire à la façon dont utilisez le module de traitement des messages admin. Php. Lorsque WordPress reçoit une demande Ajax, il crée deux crochets basés sur l’action fournie: WP _ Ajax action} pour les utilisateurs connectés à WP Ajax nopriv action} pour les utilisateurs non enregistrés, où $action est le nom de l’action passée. Ajoutez la deuxième page du menu plug in Ajax form submission support damp;rsquoAjax au module plug in pour charger les formulaires envoyés par une demande Ajax. Il est ajouté à la page de menu de la même façon que nous lamp;rsquoavons mentionné précédemment et utilise la vue des formulaires Ajax de partition de fichier. Php charge le contenu du module. regardez ce fichier, remarquerez quamp;rsquoil est presque identique au module précédent, sauf que la valeur et le titre de lamp;rsquoattribut ID du module sont différents. Maintenant que je peux identifier un module et un autre, je ne peux utiliser JavaScript que pour le deuxième module via Ajax. Pour ajouter le support Ajax, jamp;rsquoai effectué les étapes suivantes: mettre en file damp;rsquoattente les fichiers Javascript pour charger jquery en utilisant le gestionnaire damp;rsquoévénements damp;rsquoenvoi jquery pour empêcher lamp;rsquoenvoi normal des formulaires jquery. Ajax () envoie le formulaire à admin Ajax. Php au lieu de admin post. Php Note: JavaScript est désactivé dans le Navigateur pour une raison quelconque, jquery ou Ajax ne sera pas disponible, mais le formulaire sera toujours envoyé correctement. Camp;rsquoest parce que jamp;rsquoai laissé lamp;rsquoURL de soumission du formulaire comme post admin. Php dans le module HTML. Soumettre des formulaires en utilisant JavaScript et jquery
Jamp;rsquoutilise Javascript pour soumettre des formulaires via Ajax. Chargement de lamp;rsquoévénement Composite nuancedesignstudio c1a29b1433fd4db658fb41815055a3e6. Preventdefault () Est une raison valable pour empêcher la soumission normale du formulaire. Jamp;rsquoutilise la fonction serialize () de jquery pour collecter des données de module, mais il y a beaucoup damp;rsquoautres façons de le faire. Lamp;rsquoun damp;rsquoeux est damp;rsquoutiliser lamp;rsquointerface formdata de HTML5. Il va au delà du champ damp;rsquoapplication de mais il mérite certainement damp;rsquoêtre étudié. Var Ajax _ form Data = $(
Disponible lors du traitement damp;rsquoAjax à lamp;rsquoavant. Ajax Callback samp;rsquoengage en fonction de la réponse donnée par le serveur. Terminé () et. Fail () fonctionnera en conséquence. Dans mon exemple, pour une demande acceptée, jamp;rsquoajoute la réponse au conteneur DIV vide NDS _ form Feedback qui fait partie du module HTML. Enfin, supprimez le champ en réinitialisant le formulaire. Gestionnaire de formulaires pour les demandes Ajax jamp;rsquoai joint le même gestionnaire que la réponse à la demande Ajax. En chargeant numanedesignstudio 7dc320db5b1787f6cecb256b48b2970e essential dans le gestionnaire de module, jamp;rsquoai utilisé $u post [amp;lsquoajaxrequestamp;rsquo, qui est défini manuellement en javascript pour distinguer les requêtes normales des Ajax. Télécharger le signal numérique studio ec6fe7654fdfcb93c7aa50041df8ec03 Valider les demandes Ajax en utilisant les points damp;rsquoarrêt, camp;rsquoest tout. Avec Ajax, les réponses sont affichées sans recharger ou rediriger la page. désactivez ou ne chargez pas Javascript pour une raison quelconque, $u post [amp;lsquoajaxrequestamp;rsquo] sera invalide, et si (isset ($u post [amp;lsquoajaxrequest]) amp;amp $u post [amp;lsquo ajaxrequest] = amp;lsquotrueamp;rsquo) saute généralement un bloc de code Ajax if spécifique (isset ($u post [amp;lsquoajaxrequest]) amp;amp $u post [amp;lsquo ajaxrequest] = amp;lsquotrue), le module apparaîtra. Vous pouvez certainement faire plus pour améliorer lamp;rsquoexpérience utilisateur, et je suggère de lire la documentation de lamp;rsquoAPI jquery pour Ajax ici. Nous avons fait beaucoup de travail ici. Ajax est un sujet assez vaste qui peut être mis en œuvre de plusieurs façons. Voici quelques autres exemples d’utilisation d’ajax dans WordPress: comment dynamiquement des messages WordPress en utilisant Ajax et PHP sur un site WordPress sans plug in comment des résultats de recherche en utilisant Ajax dans WordPress utilisez des formulaires personnalisés sur votre site? Veuillez nous le faire savoir dans les commentaires ci dessous. Étiquette: développement Ajax

Laisser un commentaire

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

ContactPress Supported By WordPress Plugins