2026年11月12日

2026年11月12日

Gravity Forms : créer un formulaire, logique conditionnelle, e-mails

Cet article est une édition localisée de l'original japonais. Lire l'original en japonais

Gravity Forms est une extension de formulaires payante, qui n'est pas distribuée sur WordPress.org. Depuis l'administration, vous pouvez configurer la « logique conditionnelle », qui affiche ou masque des champs selon les réponses, le routage des notifications selon le contenu envoyé, l'enregistrement des données envoyées (entrées) dans la base de données et leur export. Cet article décrit la création d'un formulaire de base et l'utilisation des hooks destinés aux développeurs. Le contenu des licences et les libellés des écrans ont été vérifiés en novembre 2026 sur le site officiel de Gravity Forms et dans sa documentation (en anglais). Les écrans sont décrits avec les libellés anglais. Si vous utilisez l'interface dans une autre langue, les libellés peuvent différer.

Licences et add-ons disponibles

Selon la licence, le nombre de sites utilisables et les add-ons changent.

Licence Nombre de sites Principaux add-ons
Basic 1 Add-ons de base : Mailchimp, HubSpot, reCAPTCHA, etc.
Pro 3 En plus de Basic : Stripe, PayPal Checkout, Square, Zapier, Slack, etc.
Elite Illimité Tous les add-ons (Webhooks, User Registration, Signature, Survey, etc.). Compatible aussi avec le multisite

L'add-on Webhooks, qui envoie les données soumises à un système externe, n'est disponible qu'avec Elite (et la licence destinée aux organisations à but non lucratif). Pour les paiements, Stripe et PayPal Checkout sont disponibles à partir de Pro. Avant l'achat, vérifiez sur la page officielle des tarifs dans quelle licence figurent les add-ons dont vous avez besoin.

Installation et enregistrement de la clé de licence

Téléchargez le fichier ZIP de l'extension depuis la page du compte sur le site officiel de Gravity Forms, puis installez-le et activez-le avec « Extensions » → « Ajouter » → « Téléverser une extension » (Plugins → Add New → Upload Plugin). Avec WP-CLI, procédez ainsi.

wp plugin install /path/to/gravityforms.zip --activate

La clé de licence se saisit dans l'écran « Forms → Settings ». Pour distribuer le même réglage dans plusieurs environnements, il est aussi possible de l'écrire sous forme de constante dans wp-config.php. Une fois la constante définie, le champ de la clé de licence de l'écran de réglages s'affiche en lecture seule.

define( 'GF_LICENSE_KEY', 'YOUR-LICENSE-KEY-HERE' );

Créer le formulaire et l’insérer

  1. Ouvrez « Forms → New Form » dans l'administration, donnez un nom au formulaire et créez-le.
  2. Dans « Add Fields » à droite, placez des champs comme le nom (Name), l'adresse e-mail (Email), le numéro de téléphone (Phone), les choix (Drop Down), le message (Paragraph Text) ou la case de consentement (Consent).
  3. Cliquez sur chaque champ pour ouvrir ses réglages. Pour un champ obligatoire, activez « Required ».
  4. Enregistrez avec « Save Form ».

Pour placer le formulaire dans une page, ajoutez dans l'éditeur de blocs le bloc « Gravity Forms » et choisissez le formulaire créé. Avec un code court, utilisez la forme suivante, où id est l'ID du formulaire affiché dans la liste des formulaires.

[gravityform id="1" title="false"]

Afficher ou masquer des champs avec la logique conditionnelle

Un affichage conditionnel du type « n'afficher le champ de téléversement du CV que lorsque le type de demande est “Recrutement” » se règle avec la logique conditionnelle (Conditional Logic).

  1. Dans l'éditeur de formulaire, cliquez sur le champ à afficher ou masquer (par exemple le champ de téléversement de fichier du CV).
  2. Ouvrez « Conditional Logic » dans les réglages du champ et activez « Enable Conditional Logic ».
  3. Choisissez « Show (afficher) » ou « Hide (masquer) », et la condition « All (toutes les conditions) » ou « Any (l'une d'elles) ».
  4. Dans la ligne de condition, choisissez le champ de référence (type de demande), la comparaison (is) et la valeur (Recrutement). Le signe plus à côté de la ligne permet d'ajouter une condition.

Vous pouvez aussi définir une logique conditionnelle pour les e-mails de notification et pour les messages de confirmation.

Configurer les e-mails de notification

Les e-mails de notification se règlent dans « Forms → le formulaire concerné → Form Settings → Notifications ». Quand vous créez un formulaire, une notification destinée à l'administrateur est déjà prévue. Avec « Add New », ajoutez d'autres notifications, comme une réponse automatique.

Option Contenu
Send To Destinataire. « Enter Email » est une adresse fixe, « Select a Field » est le champ d'adresse e-mail du formulaire, et « Configure Routing » répartit les destinataires selon le contenu saisi
From Email Expéditeur. {admin_email} (l'adresse e-mail de l'administrateur dans « Réglages → Général » de WordPress) ou une adresse fixe
Reply To Adresse de réponse. Pour la notification destinée à l'administrateur, insérer le merge tag du champ d'adresse e-mail de la personne qui écrit facilite la réponse
Subject / Message Objet et corps. Les merge tags permettent d'insérer le contenu saisi

Les merge tags sont des symboles qui insèrent les valeurs envoyées. La valeur d'un champ s'écrit sous la forme {Libellé:ID_du_champ} (exemple : {Name:1} ; le libellé peut être omis : {:1} fonctionne aussi), et {all_fields} insère tout le contenu saisi sous forme de tableau. Si vous les choisissez avec le bouton des merge tags, en haut à droite du champ de message, vous pouvez les saisir sans chercher l'ID du champ.

Si l'adresse de l'expéditeur est une adresse du même domaine que le site, les messages risquent moins d'être traités comme des indésirables. Évitez de mettre l'adresse e-mail de la personne qui écrit comme expéditeur : placez-la dans Reply To.

Message de confirmation après l’envoi

L'affichage après l'envoi se règle dans « Form Settings → Confirmations ». Il existe les trois types suivants.

  • Text : affiche un message à l'endroit du formulaire (réglage par défaut)
  • Page : redirige vers une page du site
  • Redirect : redirige vers l'URL indiquée

Si vous préparez une page de fin d'envoi pour mesurer des publicités ou des statistiques d'accès, choisissez Page ou Redirect.

Ajouter une validation de saisie en PHP

Les validations de saisie que les réglages de l'administration ne couvrent pas peuvent être ajoutées avec le filtre gform_field_validation. En ajoutant _ID_du_formulaire_ID_du_champ après le nom du hook, il ne s'applique qu'à ce champ. L'exemple suivant valide le numéro de téléphone saisi dans le champ d'ID 3 du formulaire d'ID 1. Écrivez-le dans le functions.php du thème ou dans une extension de votre cru.

<?php
// Valider le numéro de téléphone du formulaire ID 1, champ ID 3
add_filter( 'gform_field_validation_1_3', function ( $result, $value, $form, $field ) {
	if ( ! is_string( $value ) || '' === $value ) {
		return $result; // Laisser le réglage « Required » du champ gérer le cas d'un champ vide
	}

	$digits = str_replace( array( '-', ' ' ), '', $value );

	if ( ! preg_match( '/^0\d{9,10}$/', $digits ) ) {
		$result['is_valid'] = false;
		$result['message']  = 'Saisissez un numéro de téléphone japonais de 10 ou 11 chiffres commençant par 0 (les tirets sont acceptés).';
	}

	return $result;
}, 10, 4 );

L'ID du formulaire et l'ID du champ s'affichent quand vous sélectionnez le champ dans l'éditeur de formulaire. Si vous recréez le formulaire, les ID changent : vérifiez donc que les ID sont identiques en production et en développement.

Notifier un service externe après l’envoi

Si, avec une licence sans l'add-on Webhooks, vous voulez prévenir par exemple Slack à chaque envoi, vous pouvez écrire le traitement avec l'action gform_after_submission. Cette action s'exécute après l'enregistrement de l'entrée et l'envoi de l'e-mail de notification. Elle s'exécute aussi pour les entrées jugées comme spam : vérifiez donc l'état avant l'envoi. Notez qu'avec une licence Pro ou supérieure, vous pouvez aussi le configurer avec l'add-on Slack ou l'add-on Zapier.

<?php
// Après l'envoi du formulaire ID 1, notifier un Incoming Webhook Slack
add_action( 'gform_after_submission_1', function ( $entry, $form ) {
	if ( 'spam' === rgar( $entry, 'status' ) ) {
		return;
	}

	// Écrire l'URL du Webhook dans wp-config.php avec define( 'MY_SLACK_WEBHOOK_URL', '...' );
	if ( ! defined( 'MY_SLACK_WEBHOOK_URL' ) ) {
		return;
	}

	wp_remote_post( MY_SLACK_WEBHOOK_URL, array(
		'headers' => array( 'Content-Type' => 'application/json' ),
		'body'    => wp_json_encode( array(
			'text' => sprintf( 'Nouveau message de contact : %s', rgar( $entry, '1' ) ),
		) ),
		'timeout' => 5,
	) );
}, 10, 2 );

rgar( $entry, '1' ) est la valeur du champ d'ID 1. Pour un champ composé de plusieurs zones de saisie, comme le champ Name, on récupère les valeurs avec des ID à décimale, comme '1.3' (prénom) et '1.6' (nom de famille). L'URL du Webhook est une information secrète : ne l'écrivez pas directement dans le code et ne l'incluez pas dans un dépôt public.

Consulter et exporter les entrées

Les données envoyées sont enregistrées dans la base de données de WordPress et se listent dans « Forms → Entries ». Pour exporter en CSV, ouvrez « Forms → Import/Export », choisissez le formulaire dans « Export Entries », indiquez les champs et la période à exporter, puis téléchargez.

Pour les récupérer depuis PHP, utilisez GFAPI::get_entries(). Voici un exemple avec WP-CLI pour consulter les 10 plus récentes.

wp eval 'echo wp_json_encode( GFAPI::get_entries( 1, array(), null, array( "offset" => 0, "page_size" => 10 ) ) );'

Points d’attention

  • Les données envoyées contiennent des informations personnelles. Si leur conservation n'est pas nécessaire, définissez des règles de traitement : fixer une durée de conservation dans les réglages du formulaire puis supprimer, ne pas laisser traîner les CSV exportés, etc.
  • Quand les e-mails de notification n'arrivent pas, la cause est souvent l'envoi d'e-mails du serveur et non Gravity Forms. Utiliser une extension qui envoie par SMTP peut améliorer la situation.
  • Avant d'ajouter du code PHP, vérifiez dans un environnement de préproduction que l'ID du formulaire et l'ID du champ sont corrects et que le code fonctionne.

Une question sur WordPress ? L'éditeur de ce site est basé au Japon et répond en japonais. Contact (en japonais)

お気軽にご相談ください

お見積りへ お問い合わせへ
▲