Nascondere altre spedizioni con SPEDIZIONE GRATUITA disponibile

Nascondere altre spedizioni con SPEDIZIONE GRATUITA disponibile

Quando è disponibile la spedizione gratuita nel nostro sito ecommerce realizzato con il plugin Woocommerce, molto spesso possiamo riscontrare che nel carrello rimangono visibili e selezionabili anche gli altri metodi di spedizione, con conseguente rischio di confondere i nostri clienti.

Diventa quindi necessario impostare una modifica per nascondere altre spedizioni con SPEDIZIONE GRATUITA disponibile.

Il codice che segue andrebbe implementato nel file functions.php del nostro tema child:

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

function nascondi_altri_metodi_con_spedizione_gratuita( $rates, $package ) {

$spedizione_gratuita = array();

foreach ( $rates as $rate_id => $rate ) {
if ( 'free_shipping' === $rate->method_id ) {
$spedizione_gratuita [ $rate_id ] = $rate;
break; // Mostra solo la prima opzione di spedizione gratuita disponibile
}
}

return !empty($spedizione_gratuita) ? $spedizione_gratuita : $rates;
}

Mostrare solo la SPEDIZIONE GRATUITA in tutti i paesi tranne che in alcuni…

Qualora volessimo impostare la spedizione gratuita in tutti gli Stati, ma nasconderla solo in alcuni, dovremo implementare quanto segue:

add_filter('woocommerce_package_rates', 'nascondi_metodi_se_spedizione_gratuita_esclusi_alcuni_paesi', 100, 2);
function nascondi_metodi_se_spedizione_gratuita_esclusi_alcuni_paesi($rates, $package) {
// Paesi esclusi: qui NON nascondere gli altri metodi
$paesi_esclusi = array('IT', 'DE', 'FR'); // IT = Italia, DE = Germania, FR = Francia

// Controlla il paese di destinazione
$paese_destinazione = $package['destination']['country'];

// Se il paese è tra gli esclusi, mostra tutti i metodi
if (in_array($paese_destinazione, $paesi_esclusi)) {
return $rates;
}

// Altrimenti, se esiste la spedizione gratuita, mostra solo quella
$spedizione_gratuita = array();

foreach ($rates as $rate_id => $rate) {
if ('free_shipping' === $rate->method_id) {
$spedizione_gratuita[$rate_id] = $rate;
break;
}
}

return !empty($spedizione_gratuita) ? $spedizione_gratuita : $rates;
}

In questo codice occorre modificare ‘AK’,’HI’,’GU’,’PR’ inserendo i codici dei paesi che non hanno la spedizione gratuita.

Hai bisogno di personalizzazioni su WooCommerce?

2 commenti su “Nascondere altre spedizioni con SPEDIZIONE GRATUITA disponibile”

Lascia un commento

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

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

Torna in alto