La documentation du widget Form d’Elementor, mise à jour en septembre 2026, ne décrit toujours aucune logique conditionnelle entre champs : pour afficher ou masquer un champ selon une réponse, elle renvoie au champ HTML et à un script maison. Ce constat résume le sujet de ce cinquième épisode de la série « Livrer un site Elementor en agence » : le widget natif couvre très bien les besoins courants, mais certains formulaires de projet client dépassent son périmètre, et mieux vaut le savoir avant la maquette qu’au moment de la recette.
Ce que fait réellement le widget Form d’Elementor Pro
Le widget Form fait partie des offres payantes d’Elementor. Il propose les types de champs attendus : texte, e-mail, zone de texte, URL, téléphone, boutons radio, liste déroulante, cases à cocher, case d’acceptation, nombre, date, heure, mot de passe, envoi de fichier, champ caché, champ HTML, ainsi que les protections reCAPTCHA, reCAPTCHA V3 et Honeypot. Un champ de type Step découpe le formulaire en pages, avec un indicateur de progression configurable (texte, icône, numéro, barre de progression).
Le cœur du widget, ce sont les Actions After Submit. La documentation officielle liste notamment :
- Collect Submissions (absente de la formule Essential), active par défaut, qui enregistre chaque envoi et l’affiche dans l’écran Submissions d’Elementor, avec export CSV de tout ou partie des entrées ;
- Email et Email 2, la seconde servant en général à l’accusé de réception envoyé au visiteur ;
- Redirect vers une page de remerciement, et Popup pour ouvrir ou fermer une fenêtre surgissante ;
- Webhook, pour transmettre les données à une plateforme tierce, et une série d’intégrations natives avec des outils d’envoi de lettres d’information et de messagerie d’équipe.
Pour les fichiers, trois modes existent : e-mail avec lien (une copie reste sur le serveur), e-mail avec pièce jointe (aucune copie conservée sur le serveur) ou les deux. La validation peut s’appuyer sur celle du navigateur ou sur des messages personnalisés. Enfin, l’enregistrement des soumissions peut être coupé globalement dans les réglages avancés d’Elementor, option Form Submissions.
Pour un formulaire de contact, une demande de rappel ou une inscription à une lettre d’information, c’est suffisant, bien intégré à la charte graphique du site et sans extension supplémentaire à maintenir. Notez au passage que l’éditeur V4 apporte un élément Atomic Form (documenté pour l’éditeur 4.0 et suivants) dont les champs sont des atomes stylables comme le reste de la page ; ses actions se limitent aujourd’hui à l’e-mail, au second e-mail, à la collecte des soumissions et au webhook.
Les limites qui comptent sur un projet client

Les limites du widget ne sont pas des défauts : ce sont des choix de périmètre. Elles deviennent bloquantes dès que le cahier des charges (premier épisode) mentionne l’un des besoins suivants.
Logique conditionnelle. Pas de règle native « afficher ce champ si telle réponse ». Le contournement par script fonctionne pour un cas simple, mais il casse au premier changement de balisage, ne gère pas la validation côté serveur (un champ obligatoire masqué bloque l’envoi) et ne s’applique pas aux e-mails.
Calculs. Aucun champ calculé : un estimatif de prix ou un total de quantités demande du code.
Conservation des données. L’article de documentation consacré aux soumissions ne décrit aucune durée de conservation automatique ; les soumissions sont certes reliées aux outils d’export et d’effacement des données personnelles de WordPress (recherche par adresse e-mail), mais aucune purge programmée n’existe. Pour un formulaire qui collecte des données sensibles ou des pièces jointes, vous devez alors purger à la main ou par code, et le prouver.
Délivrabilité. La documentation d’Elementor reconnaît elle-même que les notifications peuvent finir en courrier indésirable. Ce point ne justifie pas à lui seul un changement d’outil : les deux solutions s’appuient sur wp_mail(), et la vraie correction consiste à configurer un envoi authentifié pour le domaine du client, quel que soit le formulaire.
Ce que Gravity Forms apporte, et à quel prix
Gravity Forms couvre précisément ces manques. La logique conditionnelle s’applique aux champs, aux sections et aux pages, mais aussi aux notifications, avec un routage des e-mails selon les réponses. Le champ Nombre dispose d’une option Enable Calculation qui calcule sa valeur à partir d’une formule. Les formulaires multipages reposent sur des sauts de page, et la fonction Save and Continue permet à l’internaute de reprendre plus tard.
L’envoi de fichiers est plus encadré : taille maximale par fichier, liste d’extensions autorisées, envoi multiple avec nombre maximal de fichiers. Les fichiers sont rangés dans wp-content/uploads/gravity_forms/, dans des dossiers aux noms hachés, avec un fichier .htaccess qui désactive l’exécution de PHP sur la plupart des serveurs. La documentation précise que le déport du dossier uploads vers un stockage externe n’est pas officiellement pris en charge.
Côté RGPD, l’onglet Personal Data de chaque formulaire (depuis la version 2.4) permet de ne pas stocker l’adresse IP, de fixer une politique de conservation (conserver, mettre à la corbeille ou supprimer définitivement après un nombre de jours, minimum un jour, traitement par la tâche planifiée quotidienne) et de brancher le formulaire sur les outils d’export et d’effacement de WordPress, à condition que le formulaire contienne un champ e-mail.
Les licences, relevées en octobre 2026 sur la page tarifaire officielle et affichées en dollars, sont annuelles :
- Basic : 59 $ par an, un site ;
- Pro : 159 $ par an, trois sites, avec notamment les modules de paiement ;
- Elite : 259 $ par an, sites illimités et multisite, avec entre autres les entrées partielles, les formulaires conversationnels, la signature et l’inscription d’utilisateurs.
Consultez la grille tarifaire de Gravity Forms au moment du devis : la répartition des modules entre licences évolue. Et décidez tôt qui est titulaire de la licence. Si elle est au nom de l’agence, son renouvellement relève du contrat de maintenance (douzième épisode) ; si elle est au nom du client, prévoyez qui reçoit les relances.
Le critère de bascule : une grille simple
Notre règle en agence tient en trois questions posées pendant le cadrage, pas pendant l’intégration.
- Le formulaire change-t-il de contenu selon les réponses (champs, destinataires, pages) ? Si oui, Gravity Forms.
- Le formulaire calcule-t-il quelque chose, ou reçoit-il des fichiers que le client doit retrouver plus tard ? Si oui, Gravity Forms.
- Le client doit-il pouvoir justifier une durée de conservation sans intervention de l’agence ? Si oui, Gravity Forms.
Trois « non » : restez sur le widget Form. Vous gagnez une extension de moins à mettre à jour, un style cohérent sans effort et un client qui retrouve ses demandes dans le même écran que le reste de son site.
Un formulaire se choisit sur ce qu’il doit faire des données après l’envoi, pas sur ce qu’il affiche avant.
Cas concret typique : un formulaire de demande de devis en trois étapes, où le type de prestation choisi fait apparaître des champs différents, où l’internaute joint un plan et où le commercial destinataire dépend de la région. Avec le widget Form, il faudrait un script pour les champs, un second formulaire ou l’action Webhook pour le routage, et une purge manuelle des pièces jointes. Avec Gravity Forms, tout se règle dans l’interface : logique conditionnelle sur les champs, routage des notifications, politique de conservation à 90 jours par exemple.
Intégrer Gravity Forms proprement dans une page Elementor
Gravity Forms ne fournit pas de widget Elementor officiel. La voie documentée est le widget Shortcode d’Elementor, avec le code court du formulaire :
[gravityform id="3" title="false" description="false" ajax="true"]
Deux pièges reviennent systématiquement. Le premier est le style : Elementor applique ses propres règles aux champs, libellés et boutons de la page, souvent plus spécifiques que celles du thème de formulaire. La documentation de Gravity Forms recommande de régler d’abord les champs de formulaire dans les réglages du site Elementor (Theme Style, Form Fields), puis de personnaliser le thème Orbital via ses propriétés CSS posées sur .gform-theme--framework, en ciblant un formulaire avec #gform_wrapper_3, plutôt que d’empiler des !important.
Le second piège concerne les fenêtres surgissantes : un formulaire placé dans une fenêtre Popup d’Elementor n’initialise pas ses scripts tout seul. La documentation officielle fournit un script qui écoute l’événement d’affichage de la fenêtre ; en voici la branche utile pour les versions 2.9.5 et suivantes :
window.addEventListener( 'elementor/popup/show', ( event ) => {
if ( ! gform?.utils ) {
return;
}
const form = gform.utils.getNode( '.gform_wrapper form', event.detail.instance.$elements, true );
if ( ! form ) {
return;
}
gform.core.triggerPostRenderEvents( form.dataset.formid, 1 );
} );
Enfin, si le client ne doit conserver aucune donnée sur le site, la politique de conservation ne descend pas sous un jour. Pour une suppression immédiate après l’envoi des notifications, l’action gform_after_submission (paramètres $entry et $form, exécutée après les notifications) et GFAPI::delete_entry() suffisent :
add_action( 'gform_after_submission_3', function ( $entry, $form ) {
GFAPI::delete_entry( $entry['id'] );
}, 10, 2 );
Attention : cette action s’exécute aussi pour les entrées marquées comme indésirables, et si une notification échoue, plus rien ne reste sur le site. Vérifiez sur la préproduction que les fichiers joints disparaissent bien avec l’entrée avant de livrer.
Quand ne pas passer à Gravity Forms
Ne changez pas d’outil pour un simple problème d’e-mails non reçus : corrigez l’envoi. Ne le faites pas non plus pour un formulaire de contact à quatre champs sous prétexte d’homogénéité entre vos projets ; vous ajoutez une licence à renouveler et une couche de style à maintenir. Et si le site est construit en éditeur V4 avec une charte de classes et de variables stricte, le coût d’alignement visuel d’un formulaire externe peut dépasser le gain fonctionnel.
La sécurité générale du site, rôles et pare-feu compris, fait l’objet du huitième épisode.
Conclusion
Le widget Form d’Elementor Pro est le bon choix par défaut pour les formulaires simples et bien délimités. Dès que la logique conditionnelle, les calculs, les pièces jointes ou une politique de conservation entrent dans le cahier des charges, Gravity Forms fait le travail sans code fragile, pour un coût de licence connu dès le devis. Tranchez au cadrage, intégrez par le widget Shortcode, et testez le cas des fenêtres surgissantes et de la conservation avant la mise en production.