Indice dei contenuti
ToggleLa spedizione gratuita in genere è un buon incentivo, una di quelle cose molto apprezzate negli store on line.
I consumatori sul web ormai sono abituati all’idea che in molti siti, per avere la spedizione gratuita, è necessario arrivare ad un minimo d’ordine, ma non sempre è chiaro, non in tutti gli store.
Un avviso del genere nel carrello potrebbe tornare utile, e magari migliorare le vendite:
Ci sono diversi plugin che gestiscono gli avvisi di WooCommerce, ma sono sempre molto pesanti e invasivi, perché devono occuparsi di tante altre situazioni oltre questa.
Per la spedizione gratuita è possibile risolvere tutto come un semplice snippet.
Aggiungere un avviso nel carrello per la spedizione gratuita con uno snippet PHP.
Usa il codice che segue per attivare l’avviso per la spedizione gratuita.
/** Notifica quanto per la alla spedizione gratuita nel carrello - robrota.com */ function rrob_avviso_sped_free() { $min_free = 100; // importo minimo per spedizione gratuita impostato su WooCommerce $cart_now = WC()->cart->subtotal; if ( $cart_now < $min_free ) { $added_text = '<p><strong>ATTENZIONE:</strong> lo sai che <strong>aggiungendo solo ' . wc_price( $min_free - $cart_now ) . '</strong> al carrello la <strong>spedizione è gratuita?</strong></p>'; $notice = sprintf( $added_text ); wc_print_notice( $notice, 'error' ); } } add_action( 'woocommerce_before_cart', 'rrob_avviso_sped_free' );
Devi modificare la riga 6, per impostare il valore di spesa minima per la spedizione gratuita, che deve corrispondere con quello impostato nelle spedizioni di WooCommerce.
Nella riga 9, invece, puoi personalizzare il testo dell’avviso.
Lo snippet usa le impostazioni di notifica di WooCommerce e del tema utilizzato, io l’ho impostato nella versione più “dura” utilizzando “error” nella riga 11, nel caso puoi sostituirlo con “notice“, per un avviso più delicato.
Impostare lo stesso avviso nella pagina di checkout
Se preferisci che l’avviso appaia nella pagina di checkout, invece del carrello, puoi usare “woocommerce_before_checkout_form” invece di “woocommerce_before_cart” nella riga 14.
Volendo puoi creare due script, uno per il carrello ed uno per il checkout.
Come usare lo snippet PHP
Usare uno snippet di codice PHP non è difficile, specie se stai utilizzando un tema child, devi modificare il file functions.php del tema child.
Altrimenti puoi utilizzare un plugin, in ogni caso per maggiori informazioni consulta la guida veloce su come usare gli snippet PHP.
18 risposte
Ciao Roberto, Devo visiualizzare una scritta ho una foto in automatico solo quando la spedizione è gratuita. come posso fare. grazie in anticipo
Ciao Gianni, con poche modifiche alle impostazioni dello script in questa pagina puoi visualizzare un messaggio di avviso.
Se ti serve qualcosa di più specifico bisogna valutarlo
Roberto
Ciao, grazie per l’informazione.
Noto però che manca un avviso “success” quando si aggiungono altri articoli e si ottiene finalmente la spedizione gratuita.
Come posso inserirlo?
Ciao Anu, non mi hanno mai chiesto nulla del genere con le spedizioni gratuite, ma non dovrebbe essere particolarmente difficile aggiungere una notifica al raggiungimento della somma valida per le spedizioni gratuite, credo che lo snippet stesso contenga già tutte le info che servono, basterebbe solo assemblarlo.
Ovviamente dovrei fare qualche prova 🙂
E se il $min_free = ; dovesse essere calcolato a seconda dalle province?
Esempio:
Spedizione gratuita per Bolzano si attiva sopra €25
Spedizione gratuita per Brescia si attiva sopra €30
Spedizione gratuita per Firenze si attiva sopra €35
??
Ciao Giulio,
probabilmente non dovrebbe essere difficilissimo estrarre la provincia e creare un condizionale per determinare il valore di $min_free
rob
Puoi contattarmi in privato?
Ne avrei necessità 🙂
Ciao Giulio, lo dico conto il mio interesse: dato che si tratta di un messaggio, e che personalizzarlo potrebbe richiedere parecchie ore di lavoro, non ti converrebbe usare un plugin come questo https://shopplugins.com/plugins/woocommerce-advanced-messages/ ?
Senza contare che in questi giorni io farei davvero fatica, sono davvero sommerso di lavori.
Grazie per lo snippet, volevo chiederti quale css aggiungere per cambiare il colore del box nella pagina del prodotto singolo o meglio sarebbe come lasciare solo un outline e il colore neutro.
Grazie
Ciao Paolo,
non c’è una soluzione che vada bene in ogni situazione perché lo snippet assume le impostazioni delle notifiche di WooCommerce, ed in particolare di quelle tipo “error”, e queste possono essere intercettate e personalizzate dagli stili del tema utilizzato.
Devi ispezionare la notifica, identificare i marcatori CSS e aggiungere dei CSS personalizzati al bisogno riguardanti il background ed i bordi.
Tieni presente inoltre che le modifiche poi coinvolgerebbero tutte le notifiche di errore di WooCommerce.
Spero di esserti stato utile.
rob
Salve Roberto, lo script da te suggerito è ottimo, però volevo farti notare (e spero di non sbagliarmi) che il calcolo della rimanenza, per raggiungere il prezzo definito per la spedizione gratuita, viene calcolato sul totale dell’ordine comprensivo di iva.
Pertanto mi sono permesso di modificare una parte del codice (modifica dettata dal fatto che mi occorreva calcolare la rimanenza sul solo subtotale) aggiungendo (in modo mooolto spartano) delle righe che permettono il solo calcolo sul subtotale dell’ordine, escludendo l’iva (che in Italia è al 22%)
Faccio un semplice esempio:
Prezzo da raggiungere per la spedizione gratuita: € 50,00
Ordine dei prodotti (esc. iva) 30,00
Rimanenza per raggiungere il prezzo per la spedizione gratuita: € 20,00
ecco la modifica:
tuo codice:
$min_free = 100; // importo minimo per spedizione gratuita impostato su WooCommerce
$cart_now = WC()->cart->subtotal;
modifica aggiunta subito dopo le 2 righe precedenti:
$min_free = 100; // importo minimo per spedizione gratuita impostato su WooCommerce
$cart_now = WC()->cart->subtotal; // Totale dell’Ordine comprensivo dell’ Iva
riga aggiunta —-> $perc=1.22; // Percentuale dell’Iva
riga aggiunta —-> $tot_net=($cart_now)/($perc); // Ottengo il prezzo netto e cioè il risultato escluso Iva
poi ho sostituito nella seguente riga:
$added_text = ‘ATTENZIONE: lo sai che aggiungendo solo ‘ . wc_price( $min_free – $cart_now ) . ‘ al carrello la spedizione è gratuita?‘;
il seguente calcolo:
( $min_free – $tot_net)
Sicuramente qualcuno molto più bravo di me, troverà un metodo diverso, ma la necessità di effettuare tale calcolo (per me urgentemente necessario e da risolvere in modo molto rapido), mi ha portato a trovare questa veloce soluzione.
Considero giusto condividere delle soluzioni con altri e spero possa essere utile a molti.
Ciao Claudio, grazie per le osservazioni, mi riprometto di verificare il tutto prima possibile.
ciao molto utile, però ho un problema di calcolo, la spedizione gratuita nel mio caso la calcolo da dopo l’eventuale inserimento di un codice sconto, quindi il restante importo è il subtotale meno lo sconto, come posso risolvere?
L’importo dello sconto, se ce n’è uno attivo, dovrebbe essere facilmente recuperabile, alla pari di totale e subtotale, di conseguenza non dovrebbe essere troppo difficile modificare lo script in modo che ne tenga conto.
perfetto, qual è il campo che dovrei far modificare per il calcolo?
Per quello dovrei guardarci, non me lo hanno mai chiesto, se per caso mi capitasse aggiorno l’articolo o ne scrivo uno apposta
non riesco a trovare la formula è li che inciampo -_-‘
appena possibile se puoi inserire un nuovo codice ti ringrazio
appena mi capita di metterci mano volentieri