Abbonamenti WooCommerce e pagamenti ricorrenti con Stripe possono sembrare complessi, ma con una procedura chiara li imposti in modo sicuro e senza sorprese al rinnovo. In questa guida ti mostro il setup completo — dai prerequisiti ai test — con consigli pratici per evitare errori tipici (webhook non ricevuti, doppie fatturazioni, rinnovi “in sospeso”).
TL;DR
- Usa WooCommerce Subscriptions + Stripe (pagamenti salvati). Evita plugin non ufficiali.
- Configura webhook Stripe e verifica che l’Action Scheduler esegua i job.
- Non mettere mai in cache carrello/checkout e
wc-ajax=*
. Testa sempre in modalità sandbox. - Imposta correttamente periodo, prova gratuita, sincronizzazione dei rinnovi e tasse.
- Controlla i log (Stripe + WooCommerce) quando fai i test di rinnovo/fallimento.
Prerequisiti
- WooCommerce aggiornato + plugin WooCommerce Subscriptions attivo.
- Stripe account verificato con chiavi API (test e live).
- Certificato SSL valido e cron funzionante (Action Scheduler).
1) Installazione e impostazioni base
- Installa/attiva WooCommerce Subscriptions.
- In WooCommerce → Impostazioni → Pagamenti, attiva Stripe (Carta) e abilita “Enable Payment via Saved Cards”. Questo consente i rinnovi automatici.
- In WooCommerce → Impostazioni → Generali controlla valuta, paese, tasse e indirizzi.
2) Prodotti in abbonamento
- Crea un prodotto e seleziona “Prodotto in abbonamento”.
- Imposta prezzo, periodicità (es. mensile/annuale), eventuale periodo di prova, costo di attivazione.
- Valuta la sincronizzazione dei rinnovi (tutti lo stesso giorno del mese) se richiesto dal business.
- Configura tasse e spedizioni se previste (fisici/digitali).
3) Webhook Stripe (fondamentali)
I webhook allineano gli stati di abbonamenti/ordini tra Stripe e WooCommerce. Senza di loro avrai ordini in “in sospeso” o cancellazioni non registrate.
- In Stripe crea un endpoint verso
https://tuodominio.tld/?wc-api=wc_stripe
(o quello mostrato dal tuo plugin Stripe). - Eventi tipici:
invoice.payment_succeeded
,invoice.payment_failed
,customer.subscription.updated
,customer.subscription.deleted
,charge.refunded
. - Incolla la Signing secret nel plugin Stripe e fai un test di invio.
4) Cache, checkout e prestazioni
- Escludi dalla cache:
/carrello/
,/checkout/
,/mio-account/
e parametriwc-ajax=*
. - Evita minifiche aggressive sul checkout. Mantieni il TTFB basso per ridurre errori in fase di pagamento.
5) Rinnovi, fallimenti e retry
- Stripe può gestire retry automatici su carte rifiutate. Abilita i tentativi e le email al cliente.
- In Subscriptions controlla lo stato (attivo, in attesa, in ritardo, annullato) e le azioni pianificate in Strumenti → Azioni pianificate.
- Prevedi scenari di upgrade/downgrade (proration) e regole sui coupon.
6) Test end-to-end (modalità sandbox)
- Attiva test mode in Stripe e usa una carta di test.
- Acquista l’abbonamento: verifica creazione ordine, profilo cliente, pagamento e stato Subscriptions.
- Simula un rinnovo e poi un fallimento di pagamento; controlla email e cambi di stato.
- Controlla log WooCommerce e log Stripe in caso di errori.
7) Messa in produzione
- Inserisci le chiavi live di Stripe e verifica il dominio per Apple/Google Pay se usi i wallet.
- Ricontrolla i webhook in produzione e fai un acquisto reale di prova a basso importo.
Errori comuni (e come evitarli)
- Webhook non consegnati: IP bloccati o URL errato → reimposta endpoint e verifica la firma.
- Rinnovi non eseguiti: Action Scheduler fermo → sblocca cron, riduci cache server sulle chiamate.
- Doppia fatturazione: trigger manuali + retry automatici → mantieni un solo orchestratore (Stripe) e monitora gli eventi.
- Checkout in cache: mostra totali/stock errati → escludi le pagine dinamiche dal caching.
Hai bisogno di una mano con gli abbonamenti? Posso configurare WooCommerce Subscriptions + Stripe, ottimizzare prestazioni e impostare webhook e retry correttamente.
FAQ
Posso migrare abbonamenti esistenti verso Stripe?
Sì, ma è un’operazione delicata: serve allineare clienti, metodi di pagamento e cicli di fatturazione. Valuta una migrazione assistita con finestra di test.
Come gestisco i cambi di piano (upgrade/downgrade)?
Usa la proration: il sistema calcola l’importo residuo/nuovo e aggiorna il ciclo. Comunica sempre i cambi al cliente via email.
È obbligatorio avere i rinnovi automatici?
No, puoi usare rinnovi manuali. Tuttavia, per ridurre churn e attriti, i pagamenti salvati sono la soluzione più stabile.
Programmatore WordPress Esperto WooCommerce
Sono l’autore di questo blog con tanti trucchi e guide su WordPress e WooCommerce.