Woocommerce – Lezione n°1: nascondere la spedizione gratuita mantenendo il ritiro in sede

Woocommerce – Lezione n°1: nascondere la spedizione gratuita mantenendo il ritiro in sede

Woocommerce è un ottimo programma per creare fantastici e-commerce con WordPress. É molto completo nei settaggi principali, ma ha qualche piccolo bug che deve essere corretto per migliorare la UX (user experience) degli utenti/clienti. Come nella spedizione gratuita.

Uno di questi, con cui spesso si ha a che fare, riguarda le tariffe di spedizione.

Woocommerce, tra le sue tante funzioni, permette la possibilità di scegliere tra vari sistemi di spedizione e consente di decidere se e quando rendere gratuita la spedizione. Questo sistema si usa molto, generalmente al raggiungimento di una certa soglia di prezzo, o all’acquisto di una certa quantità di articoli.

Oltre alla spedizione classica Woocommerce consente il ritiro in sede, spesso usato senza aggravio di spese, ma il bug fa si che anche al raggiungimento della soglia per la spedizione gratuita la tariffa di spedizione rimanga visibile, portando confusione nell’utente che a volte potrebbe decidere di abbandonare l’acquisto.

Cercando in rete, per ovviare a questo inconveniente, si trovano alcune soluzioni tra plug-in e stringhe di codice, ma tutti hanno il difetto di nascondere, oltre la tariffa di spedizione, anche il ritiro in sede. Mantengono attiva solo la spedizione gratuita, impedendo il ritiro in sede.

Perché è importante mantenere il ritiro gratuito in sede?

Immaginate di dover acquistare una bicicletta, magari usata: Le condizioni generali, la taglia, il peso, i difetti, sono fattori importanti da considerare all’acquisto, cosa che non è semplice e facile da fare attraverso qualche immagine. Diventa perciò necessaria una valutazione sul posto. Quindi è preferibile, magari abbinata al pagamento alla consegna, rendere selezionabile questa opzione.

Ed ecco che ci viene in soccorso il codice

In questo caso non serve l’uso di nessun plug-in, bastano poche righe di codice da inserire nel file functions.php del nostro tema child (qui ti spiego come fare) e il gioco è fatto.

Il codice:

/**
* Nascondi le tariffe di spedizione quando è disponibile la spedizione gratuita, ma mantieni Ritiro in sede 
* Valido dalla versione 2.6 di Woocommerce
*/
function nascondi_tariffa_spedizione_lascia_ritiro_sede( $rates, $package ) {
$new_rates = array();
foreach ( $rates as $rate_id => $rate ) {
// Only modify rates if free_shipping is present.
if ( 'free_shipping' === $rate->method_id ) {
$new_rates[ $rate_id ] = $rate;
break;
}
}

if ( ! empty( $new_rates ) ) {
//Save local pickup if it's present.
foreach ( $rates as $rate_id => $rate ) {
if ('local_pickup' === $rate->method_id ) {
$new_rates[ $rate_id ] = $rate;
break;
}
}
return $new_rates;
}

return $rates;
}

add_filter( 'woocommerce_package_rates', 'nascondi_tariffa_spedizione_lascia_ritiro_sede', 10, 2 );



Questo è il risultato con e senza il codice

Senza il codice

Il risultato senza il codice

 

Con il codice