
🛡 Protection du paiement WooCommerce : 2 façons d'ajouter un CAPTCHA en 15 minutes
Commandes spam, bots dans le panier et faux enregistrements: chaque boutique WooCommerce passe par là. Personne n’a envie de nettoyer manuellement la base de données des commandes parasites, et chaque dixième lead généré par un bot représente du temps et de l’argent perdus.
Le CAPTCHA règle le problème en 10 minutes de paramétrage. Pas de plugin «couteau suisse» qui alourdit tout, pas de bidouille du cœur du système.
Voici deux méthodes concrètes pour ajouter une vérification sur la page de commande: via un plugin gratuit et via du code dans le fichier functions.php. Avec un bonus: protéger la page de connexion dans le même laps de temps.
Qu’est-ce qu’un CAPTCHA et pourquoi vous en avez besoin sur la page de commande
💡 Aperçu rapide:
- Ce qu’est un CAPTCHA et les types qui existent, en bref, sans théorie pour la théorie
- Deux méthodes d’installation: via le plugin gratuit
reCAPTCHA for WooCommerceet via du code - Bonus: un CAPTCHA sur la page de connexion admin, protection contre la force brute
- Les erreurs de configuration courantes et comment les éviter
Un CAPTCHA (Completely Automated Public Turing Test to Tell Computers and Humans Apart) est un test qui distingue un visiteur réel d’un robot. L’utilisateur coche la case «Je ne suis pas un robot», résout une énigme simple ou une question visuelle, et le formulaire n’est envoyé qu’ensuite. Un bot ne peut pas franchir cette étape: il lui faudrait comprendre une tâche pour laquelle il n’a pas été entraîné.
Pour une boutique WooCommerce, le CAPTCHA sur la page de commande n’est pas un luxe, c’est une nécessité. Les robots spammeurs peuvent remplir les champs du formulaire de commande et cliquer sur «Envoyer»: le propriétaire se retrouve avec des dizaines de commandes vides dans l’administration et un CRM engorgé. Cas concret: après l’activation de reCAPTCHA sur un site de test, le nombre de fausses commandes est tombé à zéro en 24 heures, sans filtres, sans bannissement d’IP, sans modification du .htaccess.
Six principaux types de CAPTCHA: textuel (lettres et chiffres déformés), audio (pour les utilisateurs malvoyants), mathématique (problèmes simples comme «3 + 4»), visuel (sélectionner toutes les images contenant un feu de signalisation), puzzle (glisser un élément à sa place) et invisible (reCAPTCHA v3, fonctionne en arrière-plan, analyse le comportement de l’utilisateur). Pour une boutique, reCAPTCHA v2 (case à cocher) ou v3 invisible fonctionnent le mieux: ils ne gênent pas les clients tout en bloquant la grande majorité des robots.
Aperçu des plugins: quoi installer sur WooCommerce
Il existe trois principaux plugins sur le marché qui couvrent ce besoin. Voyons brièvement lequel correspond à quel scénario.
ReCAPTCHA for WooCommerce (RelyWP)

Gratuit, sans aucune version premium. Prend en charge reCAPTCHA v2 sur les pages de commande, de connexion, d’inscription et de réinitialisation de mot de passe. Plus de 40 000 installations actives, note de 4,5 sur WordPress.org. L’installation prend une minute: clés API Google → cochez les cases des formulaires → c’est fait. Inconvénient: uniquement la v2, pas de support de la v3. Si vous avez besoin d’une vérification invisible, regardez les alternatives.
Advanced Google reCAPTCHA (WebFactory)

Plus de 200 000 installations, note de 4,8 sur WordPress.org. Couvre la page de commande WooCommerce, Easy Digital Downloads, BuddyPress et les formulaires WordPress standards. Prend en charge les versions v2 et v3, avec un CAPTCHA mathématique en solution de repli. La version gratuite couvre 90% des besoins; la version PRO ajoute le blocage par pays. Nuances: l’interface est un goût à acquérir (onglets au design vieillot), et les avis mentionnent parfois des conflits avec des thèmes personnalisés.
ReCaptcha by BestWebSoft

Version gratuite + premium à 24 $ par an. v2, v3 et mode entreprise. Paramètres de taille et de position du widget, multilingue, prise en charge des langues RTL. Inconvénient: dépendance aux services Google, ce qui peut être critique pour les projets sensibles au RGPD. Mais en tant qu’outil de travail, il est fiable et a fait ses preuves sur des dizaines de projets en production.
Méthode 1: CAPTCHA via un plugin (sans code)
La voie la plus simple. Nous prenons reCAPTCHA for WooCommerce, il est gratuit, léger et ne demande aucune acrobatie.
Étape 1: Installation et activation
Allez dans l’administration WordPress: Extensions → Ajouter. Tapez recaptcha for woo dans la barre de recherche.

Vous l’avez trouvé, cliquez sur Installer, patientez quelques secondes, puis activez.

Après activation, un élément reCAPTCHA WooCommerce apparaîtra dans le menu Réglages.

Étape 2: Clés API Google
Rendez-vous sur la page de création de clés reCAPTCHA. Remplissez les champs suivants:
- Libellé, un nom quelconque (par exemple, «Ma boutique»)
- Type de reCAPTCHA, v2 (case à cocher «Je ne suis pas un robot»)
- Domaines, le domaine de votre boutique sans
https://

Cliquez sur Envoyer; le système vous fournira une clé de site et une clé secrète.

Étape 3: Configuration du plugin
Copiez les clés et collez-les dans les champs du plugin: Réglages → reCAPTCHA WooCommerce.

Faites défiler la page jusqu'à la section Formulaires WooCommerce. Cochez la case Commande WooCommerce (et Connexion/Inscription si vous souhaitez protéger l'accès au compte).

Enregistrez les modifications.
Étape 4: Vérification
Sur la même page de réglages se trouve un bouton Tester la réponse de l'API. Cliquez dessus: si les clés sont correctes, un statut vert s'affichera.

Terminé. Un captcha apparaîtra désormais sur la page de commande, avant le bouton «Valider la commande». Testez-le en navigation privée, le contrôle anti-robot devrait s'afficher.

Méthode 2: CAPTCHA par code (sans plugin supplémentaire)
Si vous ne souhaitez pas installer de plugin supplémentaire, voici un extrait de code qui ajoute reCAPTCHA à la page de commande via le fichier functions.php.
Étape 1: Préparation
Avant de modifier le moindre code, effectuez une sauvegarde complète du site. Nous allons éditer le fichier functions.php de votre thème enfant ou utiliser l'extension Code Snippets, ce qui est plus sûr: une erreur de code ne fera pas planter le site, l'extrait sera simplement désactivé.
Étape 2: Le code
Voici deux fonctions PHP. La première affiche le widget reCAPTCHA sur la page de commande, la seconde vérifie la réponse Google lors de la soumission de la commande.
1 /** 2 * Display reCAPTCHA on the WooCommerce checkout page 3 */ 4 function doublee_show_me_the_checkout_captcha($checkout) { 5 echo '<div class="g-recaptcha" data-sitekey="YOUR_SITE_KEY"></div>'; 6 } 7 add_action('woocommerce_checkout_order_review', 'doublee_show_me_the_checkout_captcha', 18); 8 9 /** 10 * Verify reCAPTCHA response during checkout 11 */ 12 function doublee_process_recaptcha() { 13 $postdata = $_POST['g-recaptcha-response']; 14 $verified_recaptcha = file_get_contents( 15 'https://www.google.com/recaptcha/api/siteverify?secret=YOUR_SECRET_KEY&response=' . $postdata 16 ); 17 $response = json_decode($verified_recaptcha); 18 if (!$response->success) { 19 wc_add_notice('Please verify that you are not a robot', 'error'); 20 } 21 } 22 add_action('woocommerce_checkout_process', 'doublee_process_recaptcha');
Ce qui se passe ici:
woocommerce_checkout_order_review, un hook qui se déclenche lorsque le bloc de commande est affiché pendant le checkout. Nous nous y accrochons pour produire une<div>avec un attributdata-sitekey(il s'agit de la clé de site obtenue dans la console Google).woocommerce_checkout_process, un hook de validation qui se déclenche à la soumission de la commande. La fonction envoie la réponse captcha au serveur de Google via le point de terminaisonsiteverify, décode le JSON, et si la vérification échoue, ajoute une erreur avecwc_add_notice(), le mécanisme standard de WooCommerce.- Si
allow_url_fopenest désactivé sur votre hébergement (la fonctionfile_get_contentsne fonctionnera pas pour les URL), remplacez-la parwp_remote_get(), qui fonctionne via cURL et ne dépend pas de php.ini.
Étape 3: Insérez et testez
Ajoutez le code via Code Snippets ou dans le fichier functions.php de votre thème enfant, puis enregistrez.

Après avoir enregistré, visitez la page de commande en navigation privée, le widget reCAPTCHA devrait apparaître. Essayez de soumettre une commande sans cocher la case: vous obtiendrez une erreur «Veuillez vérifier que vous n'êtes pas un robot».
Bonus: CAPTCHA sur la page de connexion
La page de commande n'est pas le seul point sensible. Les attaques par force brute sur /wp-login.php et /my-account/ tournent 24 heures sur 24, même sur de petites boutiques. La même extension reCAPTCHA for WooCommerce verrouille le formulaire de connexion en quelques clics.
Allez dans Réglages → reCAPTCHA WooCommerce, section WooCommerce Forms, et activez Login:

Enregistrez, et /my-account/ est protégé. Si vous devez également verrouiller /wp-login.php, cette même extension prend en charge les formulaires WordPress: même logique, cochez simplement WordPress Login Form.
Problèmes typiques et comment les résoudre
- Le CAPTCHA n’apparaît pas lors du paiement. Vérifiez vos clés: la Site Key et la Secret Key doivent provenir de la version v2 (case à cocher «Je ne suis pas un robot»), pas de la v3. Si la version ne correspond pas, le widget ne s’affichera tout simplement pas.
- Le CAPTCHA s’affiche deux fois. Vous avez très probablement deux extensions reCAPTCHA actives en même temps (par exemple, une dans le thème, une autre installée séparément). Désactivez le doublon.
- Erreur «Invalid key» lors du test API. Soit une faute de frappe en copiant les clés, soit les clés ont été créées pour un domaine différent. Recréez les clés et vérifiez le domaine dans la console Google.
- Conflit avec un template de paiement personnalisé. Passez au thème par défaut (Storefront) et testez: si le CAPTCHA apparaît, le problème vient des hooks de votre thème. Solution: un hook personnalisé dans le code (Méthode 2) lié à votre template.
- La page de paiement ne se charge pas après l’activation du CAPTCHA. Videz le cache (extension + navigateur), désactivez la minification JS le temps du test; les conflits sont le plus souvent causés par une optimisation agressive des scripts.
- Des clients se plaignent que le CAPTCHA rejette de vraies personnes. Réduisez la sensibilité dans les paramètres reCAPTCHA ou passez à la v2 Checkbox; elle est plus souple que la v3 et ne bloque pas sur la base d’un modèle comportemental «suspect».
⁉️🤔 Questions fréquentes
Un CAPTCHA est-il nécessaire au paiement si une extension anti-spam est déjà installée?
Les extensions anti-spam comme Akismet protègent les commentaires et les formulaires de contact, mais pas le paiement WooCommerce. Les bots qui passent de fausses commandes contournent les filtres standards; ils n’ont pas besoin des champs de commentaire, ils remplissent directement le formulaire de commande. Le CAPTCHA comble cette lacune.
Quelle version de reCAPTCHA choisir, v2 ou v3?
Pour une boutique, nous recommandons la v2 Checkbox: le visiteur coche une case, et la commande est validée. La v3 fonctionne en arrière-plan et peut bloquer un vrai client si son modèle comportemental semble «suspect» au système, et lors du paiement, chaque client compte.
Puis-je protéger uniquement le paiement invité par CAPTCHA et laisser passer les utilisateurs connectés?
Oui. Dans l’extension
reCAPTCHA for WooCommerce, la case à cocher WooCommerce Checkout active le CAPTCHA pour tout le monde. Pour laisser passer les utilisateurs connectés, vous devrez ajouter une condition dans le code (Méthode 2): enveloppez le hook dansif (!is_user_logged_in()). Sans code, uniquement avec des extensions qui proposent une logique conditionnelle, comme Advanced Google reCAPTCHA PRO.
Le CAPTCHA affecte-t-il la vitesse de chargement du paiement?
Pas de manière perceptible. Le script reCAPTCHA se charge de façon asynchrone et uniquement sur les pages où le formulaire est effectivement affiché. Aucune charge supplémentaire sur l’ensemble du site. En pratique, la différence de vitesse de paiement avant et après se situe dans une fourchette de 100 à 200 ms.
En résumé
Ajouter un CAPTCHA au paiement WooCommerce est une tâche de 15 minutes, et l’effet est net. Plus de commandes spam, plus de nettoyage manuel de la base de données, plus de bots dans le tunnel de conversion.
Si vous ne souhaitez pas installer d’extensions supplémentaires, utilisez la deuxième méthode avec du code. Elle ajoute exactement deux fonctions à functions.php et ne nécessite aucune mise à jour. Si vous préférez une approche «installez et oubliez», reCAPTCHA for WooCommerce: gratuite, 40 000 installations, mises à jour en continu et prise en charge du Block Checkout dès la sortie de la boîte.
Vérifiez que le CAPTCHA fonctionne sur tous les appareils: ouvrez la page de paiement depuis un téléphone et depuis un ordinateur en navigation privée. Si le widget se décale sur mobile, ajustez le conteneur CSS ou passez la taille du widget sur Compact dans la console Google reCAPTCHA. Cinq minutes de test maintenant vous épargneront des heures de nettoyage des commandes spam plus tard.



