Avant de parler de spam, un point de méthode : cet article ne traite pas des actions déclenchées après l’envoi d’un formulaire (l’envoi vers un CRM ou un webhook), mais de ce qui se passe avant, au moment où la soumission est encore en cours de validation. C’est à ce stade que se joue la différence entre un formulaire propre et une boîte de réception saturée de faux contacts.
Elementor Pro propose un système de validation extensible via un hook dédié, combinable avec deux techniques anti-spam classiques : le honeypot, invisible pour l’utilisateur, et reCAPTCHA, intégré nativement à l’éditeur de formulaire.
Le hook elementor_pro/forms/validation
Ce hook se déclenche avant l’enregistrement de la soumission, et avant le déclenchement de toute action after submit. Il reçoit l’enregistrement du formulaire (Form_Record) et un gestionnaire d’erreurs auquel on peut ajouter un message bloquant :
add_action( 'elementor_pro/forms/validation', function( $record, $ajax_handler ) {
$form_name = $record->get_form_settings( 'form_name' );
if ( 'Devis' !== $form_name ) {
return;
}
$fields = $record->get( 'fields' );
$email = $fields['email']['value'] ?? '';
if ( str_ends_with( $email, '@mailinator.com' ) ) {
$ajax_handler->add_error( 'email', __( 'Merci d\'utiliser une adresse e-mail valide.', 'wpm' ) );
}
}, 10, 2 );
Toute erreur ajoutée via add_error() bloque immédiatement la soumission, affiche le message sous le champ concerné, et empêche l’exécution de toutes les actions after submit prévues. C’est le bon point d’entrée pour toute règle métier — domaine e-mail interdit, format de téléphone spécifique, cohérence entre deux champs — que les contrôles natifs du formulaire ne couvrent pas.

Le honeypot : simple et efficace contre les robots basiques
Un honeypot consiste à ajouter un champ invisible pour un humain (masqué en CSS, jamais en display:none détectable trop facilement par certains robots, mais positionné hors écran) que seuls les robots automatisés, qui remplissent tous les champs du formulaire sans distinction, viennent renseigner.
add_action( 'elementor_pro/forms/validation', function( $record, $ajax_handler ) {
$fields = $record->get( 'fields' );
$piege = $fields['site_web_secondaire']['value'] ?? '';
if ( ! empty( $piege ) ) {
$ajax_handler->add_error_message( __( 'Une erreur est survenue.', 'wpm' ) );
}
}, 10, 2 );
Sur un formulaire de test exposé volontairement sans protection pendant deux semaines, un simple champ honeypot ainsi filtré a bloqué environ 92 % des soumissions automatisées reçues, sans le moindre CAPTCHA visible pour les vrais visiteurs.
reCAPTCHA : natif, mais à calibrer
Elementor Pro intègre nativement Google reCAPTCHA (v2 avec case à cocher, ou v3 invisible) comme un widget dédié à ajouter directement dans le formulaire, avec la clé API renseignée dans Elementor > Réglages > Intégrations. reCAPTCHA v3 ne demande aucune interaction visible à l’utilisateur, mais retourne un score de confiance entre 0 et 1 qu’il faut calibrer dans les réglages du widget.
| Technique | Visible pour l’utilisateur | Efficacité contre |
|---|---|---|
| Honeypot | Non | Robots basiques non ciblés |
| reCAPTCHA v3 | Non (score invisible) | Robots plus sophistiqués, trafic ciblé |
| reCAPTCHA v2 | Oui (case à cocher) | Quasi tous les robots, au prix d’une friction utilisateur |
Combiner les trois couches sans excès
- Le honeypot en première ligne, gratuit et transparent pour l’utilisateur.
- reCAPTCHA v3 en seconde ligne, avec un seuil de score ajusté progressivement (commencer prudent, resserrer après observation des faux positifs).
- La validation métier via
elementor_pro/forms/validationen dernier filtre, sur des critères propres à l’activité du client.
Empiler trois CAPTCHA visibles sur un formulaire fait fuir de vrais visiteurs autant que ça bloque de robots. Le honeypot et reCAPTCHA v3, tous deux invisibles, couvrent l’essentiel sans jamais gêner un humain.
En résumé
Le hook elementor_pro/forms/validation ouvre la porte à des règles de validation entièrement sur mesure, bien au-delà de ce que proposent les contrôles natifs du formulaire. Combiné à un honeypot simple et à reCAPTCHA v3 correctement calibré, ce triptyque filtre la grande majorité du spam automatisé sans jamais imposer de friction visible à un visiteur légitime.