Cerca

WooCommerce: impostare una notifica nel carrello per la spedizione gratuita

Cosa sono gli Snippet PHP per WordPress
Cosa sono gli Snippet PHP per WordPress

Cosa sono gli Snippet PHP per WordPress

La 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:

Impostare una notifica per la spedizione gratuita nel carrello

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.

Condividi se ti è piaciuto!

Altri articoli che potrebbero interessarti:

Picture of Roberto Rota

Roberto Rota

Libero professionista, un "artigiano del web", lavoro nella comunicazione in rete da quando esiste Internet. Mi occupo principalmente di assistenza su WordPress e assistenza e consulenza WooCommerce, seguo la realizzazione di progetti web, in particolare siti di e-commerce, visibilità e comunicazione in rete. Il mio curriculum è su Linkedin, e mi puoi trovare anche su Instagram, FaceBook e Twitter.

DAI IL TUO CONTRIBUTO

Se il mio lavoro ti è stato di aiuto, contribuisci alla continuità di questo sito.
Basta una piccola donazione su PayPal, una pizza e una birra alla tua salute!

18 risposte

  1. Ciao Roberto, Devo visiualizzare una scritta ho una foto in automatico solo quando la spedizione è gratuita. come posso fare. grazie in anticipo

    1. 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

  2. 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?

    1. 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 🙂

  3. 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
    ??

    1. Ciao Giulio,

      probabilmente non dovrebbe essere difficilissimo estrarre la provincia e creare un condizionale per determinare il valore di $min_free

      rob

  4. 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

    1. 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

  5. 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.

  6. 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?

    1. 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.

          1. non riesco a trovare la formula è li che inciampo -_-‘
            appena possibile se puoi inserire un nuovo codice ti ringrazio

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.