Skip to content

Tutto per WordPress, lo sviluppo web — e non solo

🔧 Come risolvere il pulsante aggiungi al carrello mancante in WooCommerce

🔧 Come risolvere il pulsante aggiungi al carrello mancante in WooCommerce

Perché il pulsante "Aggiungi al carrello" scompare dai prodotti WooCommerce

Stavi configurando il tuo negozio, hai aggiunto una dozzina di prodotti, ma quando apri la pagina non c'è nulla dove dovrebbe esserci il pulsante "Aggiungi al carrello". I clienti non possono comprare. Panico. Ma il problema è più facile da risolvere di quanto possa sembrare a prima vista.

Ci sono esattamente cinque motivi per la scomparsa del pulsante: da una scheda prodotto incompleta fino a mod_security lato server. Due si risolvono in due clic. Altri due con un paio di righe di codice. E solo uno richiede di contattare il proprio provider di hosting. Di seguito trovi un'analisi passo passo con codice, screenshot e azioni concrete.

💡 Panoramica rapida:

  • Per prima cosa controlla la scheda prodotto: prezzo e stato delle scorte sono obbligatori
  • Disattiva tutti i plugin in blocco e attiva solo WooCommerce: se il pulsante compare, la colpa è di un conflitto
  • Vai al personalizzatore del tema: il pulsante potrebbe essere semplicemente nascosto da un interruttore
  • Correggi il template del tema tramite l'editor di codice: sostituendo tre righe in single.php
  • Apri la console del browser: errore JavaScript → chiama il tuo host, il problema è mod_security

1. Controlla la scheda prodotto: prezzo e stato delle scorte

WooCommerce mostra il pulsante "Aggiungi al carrello" solo quando il prodotto può essere acquistato. Se non può essere acquistato, niente pulsante. Logica semplice.

Apri Prodotti → Tutti i prodotti → seleziona quello problematico → Modifica. Nel blocco "Dati prodotto", controlla tre campi:

  • Prezzo: il prezzo normale è obbligatorio, anche se il prodotto è in offerta. Il campo "Prezzo" non deve essere vuoto.
  • Stato delle scorte: "Disponibile" o "Disponibile su ordinazione". Il valore "Esaurito" nasconde il pulsante.
  • Prodotti variabili: ogni variante deve avere il proprio prezzo e stato delle scorte.

Errore comune: hai creato un prodotto variabile, aggiunto attributi (colore, taglia), ma non hai inserito i prezzi per le varianti specifiche. In questo caso WooCommerce non sa a quale prezzo vendere e semplicemente non mostra il pulsante.

Compilato → Aggiorna → apri la pagina prodotto sul sito. Nella maggior parte dei casi semplici il problema è già risolto a questo punto.

2. Trova il conflitto tra plugin

WordPress assembla codice dal tema attivo e da tutti i plugin attivi. Se due plugin usano nomi di funzione identici, si agganciano agli stessi hook o sono semplicemente incompatibili, WooCommerce potrebbe perdere il pulsante.

Procedura diagnostica:

  • Vai a Plugin → Installati. Seleziona tutto (checkbox in alto), nel menu a tendina "Azioni di gruppo" scegli "Disattiva" → Applica.
  • Attiva solo WooCommerce. Apri la pagina del prodotto problematico.
  • Pulsante comparso: conflitto confermato. Attiva i plugin uno per uno, controllando la pagina prodotto dopo ciascuno. Il plugin dopo la cui attivazione il pulsante scompare di nuovo è il colpevole.
  • Sostituisci il plugin problematico con un'alternativa o contatta il suo sviluppatore.

Un sottotipo specifico di questo problema è un conflitto con il filtro woocommerce_show_variation_price. Alcuni temi e plugin restituiscono false per questo hook, e WooCommerce nasconde il prezzo della variante e perde il pulsante. Se il pulsante è presente dopo aver disattivato tutti i plugin ma non c'è un "colpevole" visibile, controlla il file functions.php del tema attivo per righe che contengono woocommerce_show_variation_price.

Puoi forzare la visualizzazione con questo filtro:

1add_filter('woocommerce_show_variation_price', function() {
2 return true;
3});

Inserisci questo codice nel functions.php del tuo tema attivo (child) o tramite il plugin Code Snippets. Dopo aver salvato, controlla il prodotto.

Aggiungere un filtro PHP tramite l'editor del codice di WordPress

3. Personalizzatore del tema: l'interruttore invisibile

Alcuni temi aggiungono un proprio interruttore per la visibilità del pulsante. La logica degli sviluppatori: "diamo flessibilità agli utenti". In pratica l'interruttore è impostato di default su "nascondi", e il proprietario del negozio non lo sa.

Vai a Aspetto → Personalizza. Cerca una sezione:

  • WooCommerce → Pagina Prodotto (o Contenuto → WooCommerce, a seconda del tema);
  • Parametro "Pulsante Aggiungi al carrello" → Visibile (o "Mostra").

Salva le impostazioni e controlla il prodotto. Funziona per i temi che usano sezioni del personalizzatore per WooCommerce in aggiunta al template standard. È comune nei temi di ThemeForest: Avada, Flatsome, WoodMart.

4. Correggi il template del tema nell'editor

Se i passaggi precedenti non hanno aiutato, il problema è più profondo: il tema usa un template della pagina prodotto non standard e non chiama la funzione WooCommerce che genera il pulsante.

Cosa sta succedendo. WordPress carica la pagina prodotto attraverso il file del tema single.php (o index.php come fallback). All'interno c'è una chiamata get_template_part() che include il blocco di contenuto. Il tema dovrebbe passare il controllo a WooCommerce chiamando wc_get_template_part('content', 'single-product'), ma alcuni temi non lo fanno. Risultato: il layout del tema c'è, ma il pulsante no.

Come risolvere:

  • Aspetto → Editor file del tema. Conferma l'avviso di WordPress.
  • Nella colonna di destra trova i file single.php e index.php:
Elenco dei file del tema nell'editor del codice di WordPress
  • Apri single.php (se presente). Altrimenti, index.php.
  • Trova la riga con get_template_part. Sostituisci l'intero blocco di output del contenuto con:
1if (is_singular('product')) {
2 wc_get_template_part('content', 'single-product');
3} else {
4 wc_get_template_part('content', get_post_format());
5}
  • Salva il file.
Codice del template del prodotto finale con chiamata WooCommerce

Prima di modificare, fai un backup del file del tema. Copia il contenuto in un editor di testo o usa un tema child: la modifica diretta del tema padre verrà azzerata al prossimo aggiornamento.

Dopo aver salvato, apri la pagina prodotto. Il pulsante dovrebbe comparire.

5. Problema server: mod_security blocca gli script

Se sei arrivato fin qui e il pulsante ancora non c'è, la causa è molto probabilmente lato server. Il modulo mod_security (firewall Apache/LiteSpeed) blocca il caricamento dei file JavaScript di WooCommerce. Senza JavaScript il carrello non funziona.

Diagnosi:

  • Apri la pagina del prodotto problematico.
  • Premi F12 → scheda Console.
  • Cerca un errore di caricamento di uno script WooCommerce, di solito cart.min.js, add-to-cart.min.js o jquery.blockUI.min.js con codice 403 Forbidden.
  • Se lo vedi, il problema è mod_security.

Soluzione: contatta il tuo provider di hosting e chiedi di aggiungere un'eccezione per il percorso URL /wp-content/plugins/woocommerce/ nelle regole di mod_security. L'assistenza gestisce la cosa in pochi minuti.

In alternativa, disattiva mod_security per il dominio tramite .htaccess (se il tuo host lo consente):

1<IfModule mod_security.c>
2 SecFilterEngine Off
3 SecFilterScanPOST Off
4</IfModule>

Ma è meglio concordare con il tuo host: sugli hosting condivisi mod_security protegge l'intero server, e disattivarlo crea un rischio di sicurezza.

Tabella riepilogativa: cosa controllare

Problema

Sintomo

Tempo per risolvere

Scheda prodotto non compilata

Pulsante assente su un prodotto specifico

2 min

Conflitto plugin

Pulsante scomparso dopo l'installazione di un nuovo plugin

5-15 min

Personalizzatore del tema

Pulsante assente su tutti i prodotti, tema ThemeForest

1 min

Codice del template

Pulsante assente, tema personalizzato o poco conosciuto

5 min

mod_security

Errore JS in console (403)

Chiamata all'host

Guida video dettagliata che copre tutti e cinque i passaggi: dalla scheda prodotto alla modifica del template e alla diagnostica del server.

⁉️🤔 Domande frequenti

Il pulsante è scomparso solo per i prodotti variabili. Cosa sta succedendo?

Quasi certamente i prezzi delle varianti non sono compilati. Apri il prodotto, scheda "Varianti", espandi ciascuna: il campo "Prezzo" deve essere compilato. Un prezzo variante vuoto significa che WooCommerce considera il prodotto "non in vendita" e rimuove il pulsante. Per 50 o più varianti usa l'importazione CSV: Prodotti → Importa.

Il pulsante è scomparso dopo un aggiornamento del tema. Cosa devo fare?

L'aggiornamento del tema ha sovrascritto single.php. Ripristina la modifica del passaggio 4. Per evitare di ripetere l'operazione a ogni aggiornamento, sposta il template in un tema child: crea una cartella /woocommerce/ nel tema child e copia lì il file single-product.php corretto.

Posso ripristinare il pulsante senza modificare codice?

Sì, nella metà dei casi: controlla la scheda prodotto (passaggio 1) e il personalizzatore del tema (passaggio 3). Il codice serve solo quando il tema genera il template del prodotto in modo non standard o quando un plugin o un tema sopprime l'hook woocommerce_show_variation_price.

Il pulsante c'è ma non funziona. Clicchi e non succede nulla?

Questo è un errore JavaScript. Apri la console del browser (F12) e vedi quali script stanno fallendo. Il più delle volte è un conflitto di versione jQuery (il tema carica un jQuery vecchio sopra quello standard di WordPress) o file JS minificati in cache che non si sono aggiornati. Svuota la cache del tuo plugin di caching e rigenera gli script minificati.

Devo disattivare l'aggiunta al carrello AJAX?

Solo per diagnostica. Vai a WooCommerce → Impostazioni → Prodotti e deseleziona "Abilita i pulsanti Aggiungi al carrello AJAX". Se il pulsante compare dopo questa modifica, il problema è nel gestore AJAX del tuo tema specifico. Lascia AJAX disattivato o sostituisci il tema.

Cosa fare se il pulsante ancora non è comparso

I cinque passaggi sopra coprono la stragrande maggioranza dei casi in cui il pulsante "Aggiungi al carrello" scompare. Se nessuno ha funzionato, il problema è più profondo e richiede un debug manuale.

Breve checklist di ultima istanza:

  • Passa il tema a Storefront, il tema ufficiale WooCommerce. Il pulsante è comparso? Il problema è nel tuo tema.
  • Controlla WooCommerce → Stato → Azioni pianificate per eventuali task cron bloccati.
  • Vai a WooCommerce → Stato → Log e cerca fatal-errors dei giorni recenti.

Ancora nessuna soluzione? Descrivi la tua situazione nei commenti: versione WooCommerce, nome del tema, elenco dei plugin attivi. Troveremo la causa.