Disabilitare le altre spese di spedizione se quella gratuita è disponibile in WooCommerce

WooCommerce, da buon e-commerce, permette di impostare diversi metodi di spedizione con relative tariffe, per poter gestire nel miglior modo possibile i costi di spedizione da applicare ai prodotti venduti sul tuo store online. Le spese di spedizione, possono essere differenziate eventualmente per zona e personalizzate ulteriormente con una serie di impostazione messe a disposizione di default da WooCommerce stesso.
- Leggi l'articolo, ti bastano solo 2 minuti, 32 secondi
Sei di fretta? Scarica il PDF e consultalo quando vuoi!
Sommario
1 La spedizione gratuita: un caso particolare |
2 Un clamoroso bug? |
3 Lo scenario comune |
4 Uno sguardo al passato... |
5 Commenti |
La spedizione gratuita: un caso particolare
Una delle configurazioni più spesso utilizzate, prevede la presenza di un costo forfettario fisso (“Flat rate”) ed a complemento l’eventuale spedizione gratuita (“Free shipping”), ma quest’ultima disponibile solo dopo aver raggiunto un totale carrello stabilito.
Per fare un esempio pratico:
Costo di spedizione fisso di € 10,00
Nessun costo di spedizione, se il totale carrello è almeno di € 100,00
Prova a replicare le impostazioni proposte e poi a simulare un percorso di acquisto superando la soglia di € 100,00, non noti niente di strano?
Un clamoroso bug?
I più attenti, si saranno accorti che nonostante si sia abilitata, come previsto, la spedizione gratuita, non è scomparso il metodo di spedizione a pagamento. Ti starai chiedendo: se c’è la spedizione gratuita, chi sceglierebbe volontariamente di pagare un supplemento per ricevere i propri prodotti?
No, non si tratta di un errore. Riflettendoci, molti e-commerce hanno diverse opzioni di spedizione, come ad esempio spedizione standard (magari gratuita) e spedizione veloce. In questo caso, è giusto che l’utente possa scegliere di ricevere più velocemente i propri acquisti, pagando un supplemento.
Ecco un esempio:
Lo scenario comune
Ma per shop online di piccole dimensioni non sempre ci sono scelte diverse. In questo caso, la presenza di spedizione gratuita e spedizione a pagamento posso sembrare un controsenso e magari apparire come un errore, o addirittura disorientare il cliente.
In questo caso, ecco un utilissimo snippet, che permette di disabilitare tutti gli ulteriori metodi di spedizione nel momento in cui la spedizione gratuita diventa disponibile.
Aggiungi quindi al file functions.php del tuo tema, che trovi nello spazio FTP del tuo sito, in:
wp-content/themes/{nome_del_tema}/
il codice:
// Rimuove gli altri metodi di spedizione se quello gratuito è attivo (WC 3.0+) add_filter( 'woocommerce_package_rates', function( $rates ) { foreach ( $rates as $rate_id => $rate ) { if ( 'free_shipping' === $rate->method_id ) { return array( $rate_id => $rate ); } } return $rates; }, 100 );
Ed il gioco è fatto! Noterai che al raggiungimento della soglia minima per rendere disponibile la spedizione gratuita, questa sarà l’unica disponibile.
NB: il codice fa riferimento a versioni successive alla 3.0+ di WooCommerce.
Uno sguardo al passato...
Starai pensando: e se volessi ottenere lo stesso risultato, ma utilizzo una versione non aggiornata di WooCommerce? Nessun problema, ho pensato anche a te!
Nel caso in cui la tua versione di WooCommerce sia precedente alla 3.0+, inserisci nel file functions.php del tuo tema, che trovi nello spazio FTP del tuo sito, in:
wp-content/themes/{nome_del_tema}/
il codice:
// Rimuove gli altri metodi di spedizione se quello gratuito è attivo (WC 2.1+) add_filter( 'woocommerce_available_shipping_methods', function( $available_methods ) { if ( isset( $available_methods['free_shipping'] ) && isset( $available_methods['flat_rate'] ) ) { unset( $available_methods['flat_rate'] ); } return $available_methods; }, 10, 1 );
ed otterrai il risultato desiderato.