In breve: l’errore “nonce verification failed” indica che WooCommerce ha rifiutato una richiesta del checkout perché il token di sicurezza era mancante, scaduto o non coerente con la sessione del cliente. Prova prima con una pagina aggiornata e una nuova sessione; se il problema si ripete, controlla cache, cookie e la richiesta che restituisce l’errore. Non disattivare la verifica del nonce.
Indice dei contenuti
Che cosa significa l’errore
WordPress usa i nonce per verificare l’origine e l’intenzione di determinate azioni. Hanno una durata limitata e non sostituiscono autenticazione o autorizzazione. Nel checkout, WooCommerce e le sue estensioni possono usarli per proteggere richieste AJAX o REST che modificano carrello, dati del cliente e ordine.
Il messaggio non identifica da solo la causa. Un token valido al caricamento della pagina può diventare inutilizzabile se il checkout rimane aperto a lungo, se viene servita una copia memorizzata in cache oppure se cookie e sessione cambiano prima dell’invio. Anche un plugin, il tema o uno script personalizzato può inviare un token errato o non inviarlo affatto.
Controlli rapidi per il cliente
- Aggiorna la pagina del checkout e reinserisci soltanto i dati necessari.
- Verifica nell’area ordini o nelle email se il pagamento ha già creato un ordine. Non inviare più volte il pagamento senza questo controllo.
- Riprova in una finestra privata, senza estensioni del browser, accettando i cookie necessari al carrello.
- Se il carrello è stato aperto da molto tempo, torna al carrello, controlla prodotti e importi e avvia un nuovo checkout.
- Annota il testo completo dell’errore, l’orario e l’azione che lo provoca: caricamento, aggiornamento dei dati, applicazione di un coupon o invio dell’ordine.
Se l’errore compare soltanto su un browser o su una rete, cancella i cookie del solo dominio e riprova. Se interessa tutti i clienti, passa ai controlli sul sito.
Controllare cache e sessione WooCommerce
Carrello, checkout e area cliente contengono dati specifici della sessione e non devono essere serviti come pagine statiche. Controlla la cache di LiteSpeed Cache, di eventuali altri plugin e del CDN. Le esclusioni normalmente gestite dall’integrazione WooCommerce vanno comunque confermate sulla configurazione effettiva.
- Verifica che le pagine assegnate a carrello, checkout e account siano escluse dalla page cache.
- Controlla che query e richieste WooCommerce non vengano riscritte o memorizzate da regole personalizzate.
- Escludi dalla cache le risposte legate ai cookie di sessione WooCommerce secondo la documentazione del sistema utilizzato.
- Svuota le cache applicative, LiteSpeed e CDN dopo la correzione.
- Apri una nuova sessione del browser e ripeti un ordine di prova.
Non basta svuotare la cache una volta: se la regola errata resta attiva, il problema ricomparirà quando la pagina verrà nuovamente memorizzata.
Individuare la richiesta che fallisce
Apri gli strumenti di sviluppo del browser, scheda Network, e riproduci il problema. Nel checkout classico può fallire una richiesta wc-ajax; nel Checkout Block vengono usati gli endpoint della Store API, tra cui /wp-json/wc/store/v1/checkout. La risposta e il codice HTTP aiutano a distinguere un nonce non valido da un blocco del firewall o da un errore PHP.
Per ogni richiesta fallita conserva URL, metodo, stato HTTP e risposta, ma non copiare numeri di carta, cookie, token o dati personali. Controlla inoltre:
- che WordPress Address e Site Address usino dominio e protocollo corretti;
- che non avvengano passaggi inattesi tra
wwwe dominio senzawww; - che HTTPS sia applicato in modo coerente anche dietro proxy o CDN;
- che REST API e richieste AJAX non siano bloccate da regole di sicurezza;
- che data e ora del server siano corrette.
Verificare plugin, tema e JavaScript
Se cache e sessione sono corrette, verifica gli aggiornamenti recenti di WooCommerce, gateway di pagamento, plugin checkout, consenso cookie, sicurezza e ottimizzazione JavaScript. Un errore nella console oppure una richiesta modificata da un’estensione può interrompere il rinnovo o l’invio del token.
Esegui il test di conflitto su staging o durante una finestra controllata, con backup disponibile. Disattiva un componente alla volta, ripeti lo stesso scenario e registra l’esito. Per verificare il tema usa temporaneamente un tema WooCommerce compatibile. Non eseguire queste prove alla cieca su un negozio con ordini in corso.
Consulta anche i log in WooCommerce > Stato > Log, il log PHP e gli eventi di Imunify360 relativi all’orario del test. La presenza di un 403 non prova da sola che Imunify360 sia la causa: confronta regola, URL e identificativo dell’evento.
Cosa non fare
- Non rimuovere dal codice
check_admin_referer(),check_ajax_referer()o altre verifiche di sicurezza. - Non disattivare globalmente cache, firewall o plugin di sicurezza come soluzione permanente.
- Non cancellare ordini falliti prima di avere verificato pagamento, note ordine e log del gateway.
- Non modificare insieme tema, plugin, PHP e CDN: non sapresti quale intervento ha risolto il problema.
Verifica finale
- Avvia una nuova sessione in finestra privata.
- Aggiungi un prodotto al carrello e modifica quantità o indirizzo.
- Completa un pagamento di prova con il metodo previsto dall’ambiente di test.
- Controlla che venga creato un solo ordine con stato coerente.
- Verifica console, richieste di rete, log WooCommerce e log PHP.
- Ripeti dopo che la cache pubblica ha avuto modo di rigenerarsi.
Quando contattare l’assistenza Xlogic
Apri un ticket se l’errore si ripete dopo avere escluso correttamente le pagine dinamiche e provato una nuova sessione. Invia dominio, URL del checkout, data e ora, tipo di checkout utilizzato, passaggi per riprodurre il problema, stato HTTP e risposta della richiesta fallita, versioni di WordPress/WooCommerce/PHP e modifiche recenti. Allega gli estratti di log pertinenti oscurando cookie, nonce, dati del cliente e informazioni di pagamento.
Guide Xlogic correlate
- WooCommerce wc-ajax restituisce 403 Forbidden
- WooCommerce ordine con stato Fallito
- Email WooCommerce non inviate o non ricevute
Domande frequenti
Che cos’è un nonce di WordPress?
È un token con durata limitata che aiuta a verificare l’origine e l’intenzione di una richiesta. Non è una password e non deve essere usato da solo per autenticare o autorizzare un utente.
Perché l’errore compare dopo che il checkout è rimasto aperto?
La pagina può contenere un nonce non più valido oppure una sessione cambiata. Aggiorna checkout e carrello, quindi riprova dopo avere controllato che non esista già un ordine.
LiteSpeed Cache può causare un nonce non valido?
Sì, se una pagina dinamica o una risposta legata alla sessione viene memorizzata. Verifica le esclusioni di carrello, checkout e account nella configurazione realmente attiva.
Posso disattivare la verifica del nonce?
No. Ridurrebbe la sicurezza e nasconderebbe la causa. Correggi cache, sessione, URL oppure il componente che genera o invia il token errato.
Quali dati devo inviare nel ticket?
Dominio, URL, orario, passaggi, stato e risposta della richiesta fallita, versioni software e modifiche recenti, senza cookie, token o dati di pagamento.
Fonti
- WordPress Developer Resources: Nonces
- WooCommerce Developer Docs: Nonce Tokens
- WooCommerce: configurare la cache