Dans ce tutoriel, nous allons voir comment bloquer certaines adresses e-mail pour empêcher la soumission d’un formulaire Gravity Forms. Cette astuce repose sur un hook PHP qui permet d’assurer un contrôle optimal des soumissions. Une solution pratique et sécurisée pour les administrateurs WordPress soucieux de garder le contrôle sur leurs formulaires sans installer une extension tierce.
L’approche décrite ci-dessous est complémentaire des systèmes pot de miel (honepot) et captcha (Google reCAPTCHA par exemple). Ils permettent d’appliquer des restrictions plus fines en partant de certains schémas de spams répétitifs.
Pourquoi bloquer des e-mails sur Gravity Forms ?
Bloquer des adresses e-mail précises peut s’avérer utile dans plusieurs situations :
- Empêcher des utilisateurs ou spams récurrents de remplir vos formulaires : vous connaissez forcément ce cher Eric Jones ;
- Limiter les soumissions à certains domaines (ou en bloquer d’autres) ;
- Renforcer la qualité des leads collectés via vos formulaires ;
Gravity Forms, par sa flexibilité, permet d’ajouter des restrictions avec un simple bout de code PHP.
Bloquer des e-mails sur tous les formulaires
Si vous souhaitez appliquer cette restriction à tous les formulaires de votre site, voici le code à insérer dans le fichier functions.php de votre thème actif ou dans un mu-plugin :
Le code ci-dessus fonctionne en 4 étapes :
- Filtre global : le hook
gform_field_validations’applique à tous les formulaires. - Vérification des champs : on cible uniquement les champs de type e-mail ;
- Normalisation des entrées : l’e-mail soumis est converti en minuscules et les espaces sont supprimés pour éviter les incohérences ;
- Message d’erreur : un message personnalisé informe l’utilisateur que son e-mail est bloqué ;
Une fois le code en place, vous pouvez tester le bon fonctionnement en utilisant le mail d’un spammeur récurrent comme [email protected].
Bloquer des e-mails sur un formulaire précis
Si vous souhaitez restreindre les soumissions sur un formulaire particulier, utilisez cette variante. Remplacez YOUR_FORM_ID par l’ID de votre formulaire Gravity Forms :
Ce code se limite au formulaire dont l’ID est spécifié, idéal pour des cas où seuls certains formulaires doivent être contrôlés.
Pourquoi préférer cette approche ?
- Sécurité renforcée : la validation s’effectue côté serveur, évitant les contournements via JavaScript.
- Personnalisation avancée : vous pouvez adapter le code à vos besoins spécifiques (blocage par domaine ou expression régulière) ;
- Gain de temps : en centralisant les restrictions dans le code, vous simplifiez la gestion sur le long terme.
Bonus pour Aller plus loin
Vous pouvez étendre le code proposé ici pour le compléter, voici quelques idées d’ajustements :
- Bloquer des domaines entiers : avec une simple condition, vous pouvez bloquer des adresses provenant d’un domaine particulier comme
@example.com) ; - Journaux d’activité : ajoutez des logs pour suivre les soumissions bloquées ;
- Messages dynamiques : affichez des messages personnalisés selon le formulaire ;
Avec cette astuce, vous gardez le contrôle sur vos formulaires Gravity Forms et éviter les entrées indésirables. Si vous avez des questions ou des suggestions, laissez un commentaire ci-dessous. Bonne personnalisation !



