Si vous construisez un site WordPress, vous avez besoin d'une bonne raison de ne pas choisir un plugin de formulaire WordPress. Ils sont pratiques et offrent de nombreuses personnalisations qui prendraient une tonne d'efforts à construire à partir de zéro. Ils rendent le HTML, valident les données, stockent les soumissions et fournissent l'intégration avec des services tiers.
Mais supposons que nous prévoyons d'utiliser WordPress comme CMS sans tête. Dans ce cas, nous interagirons principalement avec l'API REST (ou GraphQL). La partie frontale devient entièrement notre responsabilité, et nous ne pouvons plus compter sur les plugins de formulaires pour faire le levage lourd dans ce domaine. Maintenant, nous sommes sur le siège du conducteur en ce qui concerne l'avant.
Les formulaires étaient un problème résolu, mais maintenant nous devons décider quoi faire à leur sujet. Nous avons quelques options:
Le plugin de formulaire gratuit le plus populaire, le formulaire de contact 7, a un point de terminaison de l'API REST de soumission, tout comme le plugin payant bien connu, les formulaires de gravité, entre autres.
D'un point de vue technique, il n'y a pas de réelle différence entre la soumission des données du formulaire à un point final fourni par un service ou un plugin WordPress. Nous devons donc décider en fonction de différents critères. Le prix est évident; Après cela est la disponibilité de l'installation WordPress et de son API REST. La soumission à un point final suppose qu'elle est toujours disponible publiquement. C'est déjà clair en ce qui concerne les services, car nous les payons pour qu'ils soient disponibles. Certaines configurations peuvent limiter l'accès WordPress aux processus d'édition et de construction. Une autre chose à considérer est l'endroit où vous souhaitez stocker les données, en particulier d'une manière qui adhère aux réglementations GPDR.
En ce qui concerne les fonctionnalités au-delà de la soumission, les plugins de formulaire WordPress sont difficiles à égaler. Ils ont leur écosystème, les modules complémentaires capables de générer des rapports, des PDF, une intégration facilement disponible avec les newsletters et les services de paiement. Peu de services offrent autant dans un seul package.
Même si nous utilisons WordPress de la manière «traditionnelle» avec le frontal basé sur un thème WordPress, l'utilisation de l'API REST d'un plugin de formulaire pourrait avoir un sens dans de nombreux cas. Par exemple, si nous développons un thème en utilisant un cadre CSS d'abord utilitaire, le style de la forme rendue avec un balisage fixe structuré avec une convention de classe BEM laisse un goût aigre dans la bouche de tout développeur.
Le but de cet article est de présenter les deux points de terminaison de soumission des plugins de formulaire WordPress et de montrer un moyen de recréer les comportements typiques liés au formulaire que nous avons habitués à sortir de la boîte. Lors de la soumission d'un formulaire, en général, nous devons faire face à deux problèmes principaux. L'un est la soumission des données elle-même, et l'autre fournit des commentaires significatifs à l'utilisateur.
Alors, commençons là.
La soumission de données est la partie la plus simple. Les deux points de terminaison s'attendent à une demande de poste, et la partie dynamique de l'URL est l'ID de formulaire.
L'API du formulaire de contact 7 est disponible immédiatement lorsque le plugin est activé, et cela ressemble à ceci:
https: //your-site.tld/wp-json/contact-for-7/v1/contact-formes/ <form_id> / feedback</form_id>
Si nous travaillons avec des formulaires de gravité, le point de terminaison prend cette forme:
https: //your-site.tld/wp-json/gf/v2/forms/ <form_id> / soumissions</form_id>
L'API REST des formulaires de gravité est désactivé par défaut. Pour l'activer, nous devons aller aux paramètres du plugin, puis à la page API REST et vérifier l'option «Activer l'accès à l'API». Il n'est pas nécessaire de créer une clé API, car le point de terminaison de soumission de formulaire ne le nécessite pas.
Mise à jour (10 septembre 2024): Les ID sont hachées dans le formulaire de contact 7 version 5.8, mais peuvent toujours être trouvés dans l'URL de la page d'édition du formulaire.
Notre formulaire d'exemple a cinq champs avec les règles suivantes:
Pour les clés corporelles de la demande du formulaire de contact 7, nous devons les définir avec la syntaxe de formulaire de formulaire:
{ "Somebodys-name": "Marian Kenney", "any-email": "[e-mail protégé]", "Avant-space-age": "1922-03-11", "Message facultatif": "", "faux termes": "1" }
Les formulaires de gravité attendent les clés dans un format différent. Nous devons utiliser un ID de champ incrémentiel généré automatiquement avec le préfixe Input_. L'ID est visible lorsque vous modifiez le champ.
{ "Input_1": "Marian Kenney", "input_2": "[e-mail protégé]", "Input_3": "1922-03-11", "input_4": "", "input_5_1": "1" }
Nous pouvons nous sauver beaucoup de travail si nous utilisons les clés attendues pour les attributs de nom des entrées. Sinon, nous devons mapper les noms d'entrée aux touches.
Aménagement tout, nous obtenons une structure HTML comme celle-ci pour le formulaire de contact 7:
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!