Revisione e adattamento alle nuove versioni di WooCommerce di un vecchio articolo, pubblicato originariamente il 27 Maggio 2015.
Prendiamo ad esempio lo store di un’azienda vinicola, che per motivi logistici deve vendere 6 bottiglie alla volta, e quindi permettere solo ordini dove il quantitativo deve essere 6 o un multiplo di 6.
Il solito snippet ci viene in aiuto.
Il codice che segue, che ho trovato in rete e personalizzato, deve essere copiato nel file delle funzioni del tema (al solito meglio se si tratta di un tema child).
add_action( 'woocommerce_check_cart_items', 'woocommerce_check_cart_multipli' ); function woocommerce_check_cart_multipli() { $multiples = 6; $total_products = 0; foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) { $total_products += $values['quantity']; } if ( ( $total_products % $multiples ) > 0 ) wc_add_notice( sprintf( __('È possibile acquistare solo multipli di %s prodotti', 'woocommerce'), $multiples ), 'error' ); }
Hai bisogno di aiuto con WooCommerce?
Se hai bisogno di assistenza per il tuo store WooCommerce, o anche solo per mettere in pratica queste istruzioni, contattami!Le personalizzazioni devono essere fatte alle righe 3 e 10, dove bisogna indicare rispettivamente il numero di articoli ordinabili (o multipli dello stesso numero) ed il messaggio di errore da visualizzare nel carrello.
Questo snippet riguarda tutti gli articoli aggiunti al carrello, e si adatta bene ad uno store che vende solo articoli con questa problematica, calzante quindi l’esempio della casa vinicola che vende solo bottiglie.
Se la situazione è differente, e lo store prevede anche altri articoli che non hanno il problema logistico dei multipli, bisogna pensare ad una soluzione diversa, adattando questo snippet con filtri o condizionali.
Lo snippet è stato testato con WooCommerce 3.8 e WordPress 5.2.4.
14 risposte
Molto bello, grazie come sempre Roberto.
Ma per filtrare solo per la categoria vini ?
Cosa bisogna aggiungere allo snippet ?
Grazie infinite
Ciao, in che file di woocommerce va inserito ?
Tutti gli snippet vanno inseriti nel file functions.php del tema, ma è meglio che sia un tema child. Se non lo è, puoi usare il plugin Code Snippet.
Salve
ho letto questo articolo .. avrei bisogno di sapere qual’è la soluzione se: la situazione è differente, e lo store prevede anche altri articoli che non hanno il problema logistico dei multipli, bisogna pensare ad una soluzione diversa.
Potrei ricevere un consiglià
Grazie
Attendo tue risp
Ciao Giosuè, per diversificare il problema dei multipli tra prodotti o categorie diverse credo occorra intervenire a livello prodotto e non sul carrello, come lo script di questo articolo.
Credevo di dovermene occupare subito dopo la stesura dell’articolo, invece non è stato così.
Se mi capitasse, aggiornerò l’articolo, ma per ora non ho soluzioni a portata di mano.
rob
Ciao Roberto! A me purtroppo non funziona 😐
L’ho inserito in fuction.php del child del tema in uso ma mi compare solo il testo del codice nell’header del sito. Sto sbagliando qualcosa?
Grazie!
deby
Ciao Debora,
a parte lo sminchiamento dello script che devo ancora sistemare, si tratta di uno script che ho pubblicato nel 2015, dovrei comunque verificarlo
Appena posso lo faccio…
Ho dimenticato di aggiungere che, ovviamente, il problema deriva dal fatto che l’imballaggio delle bottiglie avviene in sedi separate.
Ciao Roberto. Stavo cercando una soluzione al mio problema e ho trovato il tuo articolo. Purtroppo io avrei la necessità di stabilire un multiplo di 3 per gruppi di prodotti con un determinato attributo e non solo per la quantità finale nel carrello. Mi spiego meglio:
Ho già stabilito una quantità minima di 3 per la somma dei prodotti con l’attributo – cantina nel mio caso – A e la quantità minima di 6 per la somma dei prodotti con l’attributo – cantina – B. Vorrei però che il multiplo della somma dei prodotti con l’attributo A sia 3, idem per quelli con l’attributo B. Con lo snippet che hai condiviso e personalizzato mi ritroverei, scusami il termine, fregato nel caso un cliente acquistasse 4 (ad esempio 1+1+2) prodotti con l’attributo A e 8 (ad esempio 3+5) prodotti con l’attributo B. Avrei si, raggiunto il minimo d’ordine per ciascuno e un totale di 12 prodotti, quindi multiplo di 3, ma il mio cliente avrebbe un problema di gestione, perché non dispone di imballaggi da 1/2 bottiglie, ma solo da 3 e da 6.
Sapresti aiutarmi? Grazie mille.
Ciao Roberto,
ho usato il codice xché mi serviva impostare un carrello con 6 pezzi o multipli di 6, grazie (ti ho anche pagato una pizza ;)). Ora ho un problema: non posso inserire nel carrello uno stesso pezzo/bottiglia più di una sola volta, mentre magari sarebbe meglio poterne inserire anche fino a 6 dello stesso tipo…
Sono un neofita assoluto, hai idee/modifiche per il codice degli ordini multipli? Grazie!
Non dovresti avere problemi ad inserire più bottiglie dello stesso tipo in un ordine, sei sicro di non aver flaggato l’opzione di ordine unico nel prodotto?
rob
Hahahaha! Sì, infatti era proprio così…che pivello
Ciao, ho trovato davvero molto interessante il tuo articolo e mi ritrovo esattamente nella situazione differente descritta in fondo all’articolo.
“Se la situazione è differente, e cioè lo store prevede anche altri articoli che non hanno il problema
logistico delle bottiglie, per citare l’esempio poco sopra, bisogna pensare ad una soluzione diversa.”
Per questo hai già trovato una soluzione? Oppure hai già in mente un qualcosa per aggirare la problematica?
Ti ringrazio in anticipo e complimenti per gli articoli sempre molto interessanti.
Andrea
Ciao Andrea,
non mi è capitato ancora di doverci pensare, ma credo che sfruttando a modino qualche regola con il condizionale si possono risolvere parecchie situazioni, direttamente per prodotti o per categorie ad esempio.
rob