Le variazioni nei prodotti di WooCommerce, per capirci, sono le scelte come taglia e colore per una maglietta, variabili che si possono trovare all’interno dello stesso prodotto.
Non mi dilungo oltre sulle spiegazioni riguardo i prodotti variabili, non è il tema di questo articolo, ma voglio vedere alcuni aspetti più tecnici che possono creare delle difficoltà.
Intanto, anche se non mi è mai capitato di verificarlo direttamente, dovrebbe esserci un limite di 50 valori per ogni variazione.
Una caratteristica delle variazioni, è che se nessuna variazione è selezionata, WooCommerce al posto del prezzo del prodotto mostra la dicitura “Scegli” (“Select Option” nella versione originale in inglese), a meno che nel prodotto non sia stata impostata una variazione predefinita, e allora viene mostrato il prezzo.
Se però ci sono tante variazioni, di solito più di 40, WooCommerce non riesce più a mantenere memorizzato il settaggio della variazione predefinita, che si resetta su “nessuna”.
Sembrerebbe un bug ma non lo è, e si può risolvere.
Il supporto di WooThemes, interpellato sull’argomento, chiarisce che il problema non è un bug o un limite di WooCommerce, ma un problema di limitazioni sulla configurazione PHP.
Per risolvere, bisogna alzare il valore PHP della variabile max_input_vars, normalmente impostata a 1000 nella maggioranza dei servizi di hosting, ad almeno 5000.
Come si modifica il valore di max_input_vars?
- Tramite una modifica del file .htaccess, inserendo la stringa
php_value max_input_vars 5000
Attenzione: non tutti gli hosting gradiscono questa modifica, generando un errore. Nel caso basta togliere la modifica per ripristinare il funzionamento del sito.
- Personalizzando il file php.ini, se l’hosting lo permette.
- Chiedendo al supporto dell’hosting di effettuare la modifica.
Una risposta
Riguardo alle Variazioni. Quando debbo aggiungere delle variazioni (in un secondo momento) non riesco a trovare un modo per non “passare” il singolo prodotto uno per uno. Un’operazione del genere mi porterà in poco tempo alla follia!