Soumission de formulaire sans tête avec l'API WordPress REST
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:
- Utilisons-nous notre propre API personnalisée si nous avons une telle chose? Sinon, et nous ne voulons pas en créer un, nous pouvons aller avec un service. Il existe de nombreux bons fournisseurs de formulaires statiques, et les nouveaux apparaissent constamment.
- Pouvons-nous continuer à utiliser le plugin WordPress que nous utilisons déjà et exploitez sa validation, son stockage et son intégration?
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à.
Les points de terminaison
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.
Le corps de la demande
Notre formulaire d'exemple a cinq champs avec les règles suivantes:
- un champ de texte requis
- un champ de messagerie requis
- Un champ de date requis qui accepte les dates avant le 4 octobre 1957
- une TextArea facultative
- une case à cocher requise
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" }
Soumettre les données
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Il est sorti! Félicitations à l'équipe Vue pour l'avoir fait, je sais que ce fut un effort massif et une longue période à venir. Tous les nouveaux documents aussi.

Je dirais que "Site Web" correspond mieux que "Application mobile" mais j'aime ce cadrage de Max Lynch:

J'ai eu quelqu'un qui écrivait avec cette question très légitime. Lea vient de bloguer sur la façon dont vous pouvez obtenir les propriétés CSS valides elles-mêmes du navigateur. C'est comme ça.

Si nous devons afficher la documentation à l'utilisateur directement dans l'éditeur WordPress, quelle est la meilleure façon de le faire?

L'autre jour, j'ai repéré ce morceau particulièrement charmant sur le site Web de Corey Ginnivan où une collection de cartes se cassent les uns sur les autres pendant que vous faites défiler.

Il existe un certain nombre de ces applications de bureau où l'objectif montre votre site à différentes dimensions en même temps. Vous pouvez donc, par exemple, écrire

CSS Grid est une collection de propriétés conçues pour faciliter la mise en page qu'elle ne l'a jamais été. Comme tout, il y a un peu une courbe d'apprentissage, mais Grid est

Avez-vous déjà eu besoin d'un compte à rebours sur un projet? Pour quelque chose comme ça, il pourrait être naturel d'atteindre un plugin, mais c'est en fait beaucoup plus
