
🛡 Protezione checkout WooCommerce: 2 modi per aggiungere CAPTCHA in 15 minuti
Ordini spam, bot nel carrello e registrazioni fasulle: ogni negozio WooCommerce ci passa. Nessuno ha voglia di pulire a mano il database dagli ordini spazzatura, e ogni decimo lead generato da un bot è tempo e denaro buttati.
Il CAPTCHA risolve il problema con 10 minuti di configurazione. Niente plugin all-in-one pesanti, niente modifiche al core.
Ecco due metodi operativi per aggiungere la verifica al checkout: tramite un plugin gratuito e tramite codice in functions.php. Più un bonus: proteggere la pagina di login negli stessi 5 minuti.
Cos'è il CAPTCHA e perché serve nel checkout
💡 Panoramica rapida:
- Cos'è il CAPTCHA e quali tipi esistono, in breve, senza teoria fine a se stessa
- Due metodi di installazione: tramite il plugin gratuito
reCAPTCHA for WooCommercee tramite codice - Bonus: CAPTCHA sulla pagina di login amministratore, protezione anti brute-force
- Errori comuni di configurazione e come evitarli
Il CAPTCHA (Completely Automated Public Turing Test to Tell Computers and Humans Apart) è un test che distingue un visitatore reale da un bot. L'utente spunta la casella «Non sono un robot», risolve una semplice immagine o un puzzle e solo a quel punto il modulo viene inviato. Un bot non può superarlo: dovrebbe comprendere un compito per cui non è stato addestrato.
Per un negozio WooCommerce, il CAPTCHA nel checkout non è un lusso, è una necessità. I bot spam possono compilare i campi del modulo d'ordine e cliccare «Invia»: il titolare si ritrova decine di ordini vuoti nel pannello di amministrazione che intasano il CRM. Caso reale: dopo aver attivato reCAPTCHA su un sito di test, il numero di ordini falsi è sceso a zero nel giro di 24 ore, senza filtri, senza ban IP, senza modifiche a .htaccess.
Sei tipi principali di CAPTCHA: testuale (lettere e numeri distorti), audio (per utenti ipovedenti), matematico (semplici operazioni come «3 + 4»), basato su immagini (seleziona tutte le foto con un semaforo), puzzle (trascina un pezzo nella posizione corretta) e invisibile (reCAPTCHA v3, lavora in background, analizza il comportamento dell'utente). Per un negozio, reCAPTCHA v2 (checkbox) o v3 invisibile sono la soluzione migliore: non infastidiscono i clienti e bloccano la stragrande maggioranza dei bot.
Panoramica plugin: cosa installare su WooCommerce
Sul mercato ci sono tre plugin principali che coprono questa esigenza. Vediamo brevemente quale si adatta a ogni scenario.
ReCAPTCHA for WooCommerce (RelyWP)

Gratuito, senza alcuna versione premium. Supporta reCAPTCHA v2 su checkout, login, registrazione e pagine di reset password. Oltre 40.000 installazioni attive, valutazione 4,5 su WordPress.org. Si installa in un minuto: chiavi API di Google → si selezionano le caselle dei moduli → fatto. Limite: solo v2, nessun supporto v3. Se serve la verifica invisibile, valutare le alternative.
Advanced Google reCAPTCHA (WebFactory)

Oltre 200.000 installazioni, valutazione 4,8 su WordPress.org. Copre il checkout WooCommerce, Easy Digital Downloads, BuddyPress e i moduli standard di WordPress. Supporta v2 e v3, con un fallback CAPTCHA matematico. La versione gratuita copre il 90% delle esigenze; la versione PRO aggiunge il blocco per nazione. Sfumature: l'interfaccia richiede un po' di abitudine (tab dal design datato) e le recensioni segnalano occasionali conflitti con temi personalizzati.
ReCaptcha by BestWebSoft

Versione gratuita + premium a $24 all'anno. v2, v3 e modalità enterprise. Impostazioni per dimensioni e posizionamento del widget, multilingua, RTL. Limite: legato ai servizi Google, aspetto che può essere critico per progetti sensibili al GDPR. Ma come strumento di lavoro è affidabile e collaudato su decine di progetti reali.
Metodo 1: CAPTCHA tramite plugin (senza codice)
Il percorso più semplice. Usiamo reCAPTCHA for WooCommerce, è gratuito, leggero e non richiede acrobazie.
Passaggio 1: Installazione e attivazione
Andare nell'amministrazione WordPress: Plugin → Aggiungi nuovo. Digitare recaptcha for woo nella barra di ricerca.

Trovato, cliccare Installa ora, attendere un paio di secondi e attivare.

Dopo l'attivazione, nel menu Impostazioni comparirà la voce reCAPTCHA WooCommerce.

Step 2: chiavi API di Google
Vai alla pagina di creazione delle chiavi reCAPTCHA. Compila i campi:
- Label, un nome qualsiasi (es. "Mio negozio")
- reCAPTCHA type, v2 (Checkbox "Non sono un robot")
- Domains, il dominio del tuo negozio senza
https://

Clicca su Submit e il sistema ti fornirà una Site Key e una Secret Key.

Step 3: configurazione del plugin
Copia le chiavi e incollale nei campi del plugin: Impostazioni → reCAPTCHA WooCommerce.

Scorri fino alla sezione WooCommerce Forms. Spunta la casella WooCommerce Checkout (e Login/Register se vuoi proteggere anche l'accesso).

Salva le modifiche.
Step 4: verifica
Nella stessa pagina delle impostazioni c'è il pulsante Test API Response. Cliccalo: se le chiavi sono corrette vedrai uno stato verde.

Fatto. Ora comparirà un captcha nella pagina di checkout prima del pulsante "Invia ordine". Provalo in modalità incognito: il controllo anti-bot dovrebbe apparire.

Metodo 2: CAPTCHA via codice (senza plugin aggiuntivi)
Se non vuoi installare un altro plugin, ecco uno snippet che aggiunge reCAPTCHA al checkout tramite functions.php.
Step 1: preparazione
Prima di modificare qualsiasi codice, fate un backup completo del sito. Lavoreremo sul file functions.php del vostro tema child oppure useremo il plugin Code Snippets, che è più sicuro: un errore nel codice non butterà giù il sito, lo snippet verrà semplicemente disattivato.
Step 2: Il codice
Ecco due funzioni PHP. La prima mostra il widget reCAPTCHA nel checkout, la seconda verifica la risposta di Google quando l'ordine viene inviato.
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');
Cosa succede qui:
woocommerce_checkout_order_review, un hook che si attiva quando il blocco dell'ordine viene renderizzato nel checkout. Ci agganciamo a questo hook per produrre un<div>con un attributodata-sitekey(è la Site Key ottenuta dalla console Google).woocommerce_checkout_process, un hook di validazione che si attiva all'invio dell'ordine. La funzione invia la risposta del captcha al server di Google tramite l'endpointsiteverify, decodifica il JSON e, se la verifica fallisce, aggiunge un errore usandowc_add_notice(), il meccanismo standard di WooCommerce.- Se
allow_url_fopenè disabilitato sul vostro hosting (la funzionefile_get_contentsnon funzionerà con gli URL), sostituitela conwp_remote_get(), che opera via cURL e non dipende dal php.ini.
Step 3: Inserite e testate
Aggiungete il codice tramite Code Snippets o nel functions.php del vostro tema child, poi salvate.

Dopo aver salvato, visitate la pagina di checkout in modalità incognito: il widget reCAPTCHA dovrebbe apparire. Provate a inviare un ordine senza spuntare la casella: riceverete un errore «Verifica di non essere un robot».
Extra: CAPTCHA nella pagina di login
Il checkout non è l'unico punto critico. Gli attacchi brute force su /wp-login.php e /my-account/ sono continui, anche sui negozi più piccoli. Lo stesso plugin reCAPTCHA for WooCommerce protegge il form di login in un paio di click.
Andate su Impostazioni → reCAPTCHA WooCommerce, sezione WooCommerce Forms, e attivate Login:

Salvate e /my-account/ è protetto. Se avete bisogno di blindare anche /wp-login.php, questo stesso plugin supporta i form di WordPress: stessa logica, basta spuntare WordPress Login Form.
Problemi tipici e come risolverli
- Il CAPTCHA non compare al checkout. Verifica le chiavi: la Site Key e la Secret Key devono essere della v2 (checkbox «Non sono un robot»), non della v3. Se la versione non corrisponde, il widget semplicemente non viene visualizzato.
- Il CAPTCHA viene mostrato due volte. Molto probabilmente hai due plugin reCAPTCHA attivi contemporaneamente (ad esempio, uno nel tema e uno installato separatamente). Disattiva il duplicato.
- Errore «Invalid key» durante il test API. O c'è un errore di battitura nel copiare le chiavi, oppure le chiavi sono state create per un dominio diverso. Rigenera le chiavi e verifica il dominio nella console Google.
- Conflitto con un template di checkout personalizzato. Passa al tema predefinito (Storefront) e verifica: se il CAPTCHA compare, il problema è negli hook del tuo tema. Soluzione: un hook personalizzato nel codice (Metodo 2) agganciato al tuo template.
- Il checkout non si carica dopo aver attivato il CAPTCHA. Svuota la cache (plugin + browser), disattiva la minificazione JS per la durata del test; i conflitti sono spesso causati da un'ottimizzazione aggressiva degli script.
- I clienti lamentano che il CAPTCHA blocca persone reali. Abbassa la sensibilità nelle impostazioni di reCAPTCHA o passa alla v2 Checkbox; è più tollerante della v3 e non blocca in base a un modello comportamentale «sospetto».
⁉️🤔 Domande frequenti
Serve il CAPTCHA al checkout se è già installato un plugin anti-spam?
I plugin anti-spam come Akismet proteggono commenti e form di contatto, ma non il checkout di WooCommerce. I bot che generano ordini falsi aggirano i filtri standard; non hanno bisogno dei campi commento, compilano direttamente il modulo d'ordine. Il CAPTCHA colma questa lacuna.
Quale versione di reCAPTCHA scegliere, v2 o v3?
Per un negozio, consigliamo la v2 Checkbox: il visitatore spunta una casella e l'ordine prosegue. La v3 lavora in background e può bloccare un cliente reale se il suo modello comportamentale appare «sospetto» al sistema, e al checkout ogni cliente conta.
Posso proteggere con CAPTCHA solo il checkout degli ospiti e lasciar passare gli utenti loggati?
Sì. Nel plugin
reCAPTCHA for WooCommerce, la casella WooCommerce Checkout attiva il CAPTCHA per tutti. Per far passare gli utenti loggati, devi aggiungere una condizione nel codice (Metodo 2): racchiudi l'hook inif (!is_user_logged_in()). Senza codice, solo con plugin che dispongono di logica condizionale, come Advanced Google reCAPTCHA PRO.
Il CAPTCHA influisce sulla velocità di caricamento del checkout?
In modo percepibile, no. Lo script reCAPTCHA si carica in modo asincrono e solo sulle pagine in cui il modulo è effettivamente presente. Nessun carico aggiuntivo sull'intero sito. In pratica, la differenza di velocità del checkout prima e dopo è nell'ordine di 100-200 ms.
In sintesi
Aggiungere il CAPTCHA al checkout di WooCommerce è un'attività da 15 minuti, e l'effetto è netto. Niente ordini spam, niente pulizia manuale del database, niente bot nel funnel.
Se non vuoi installare plugin aggiuntivi, usa il secondo metodo con il codice. Aggiunge esattamente due funzioni al functions.php e non richiede aggiornamenti. Se preferisci un approccio «imposta e dimentica», reCAPTCHA for WooCommerce: gratuito, 40 mila installazioni, aggiornamenti live e supporto al Block Checkout nativo.
Verifica che il CAPTCHA funzioni su tutti i dispositivi: apri il checkout da telefono e da desktop in modalità incognito. Se il widget si sposta su mobile, regola il contenitore CSS o imposta la dimensione del widget su Compact nella console di Google reCAPTCHA. Cinque minuti di test ora ti faranno risparmiare ore di pulizia degli ordini spam in futuro.



