Su woocommerce quando è disponibile la spedizione gratuita si aggiunge in automatico la possibilità di sceglierla ma rimangono selezionabili anche le altre!
Come ovviare al problema?
Come fare in modo se disponibile la spedizione gratuita dopo aver raggiunto i criteri per abilitarla e non mostrare le altre opzioni di spedizione?
Basta inserire una funzione php nel file function.php del nostro Tema o Tema Child per ottenere solo la spedizione Gratuita.
Aggiungi questa funzione nel file:
add_filter('woocommerce_package_rates', 'nascondere_altri_metodi_spedizione_se_presente_gratuita', 10, 2);
function nascondere_altri_metodi_spedizione_se_presente_gratuita($rates, $package) {
//nascondo SOLO se è presente la spedizione gratuita
if (isset($rates['free_shipping:2'])) { //<-- è necessario recuperare il codice della spedizione gratuita
unset($rates['flat_rate:1']); //<-- nascondo spedizione con corriere
}
return $rates;
}
Per ottenere il codice della spedizione basta ispezionare il codice della pagina e incollare il valore presente in value:
A questo punto dopo aver salvato il file functions.php del nostro Tema visualizzeremo solo la spedizione gratuita se raggiunge i nostri criteri impostati come minimo prezzo da raggiungere
Se inoltre vogliamo aggiungere un messaggio che mostra all’utente “Ottieni la spedizione gratuita se ordini…(valore desiderato)”
function wpspecial_qntmanca_spedizione_gratuita() {
$min_amount = 90;
$current = WC()->cart->subtotal;
if ( $current < $min_amount ) {
$added_text = '
Ottieni la spedizione gratuita se ordini ‘ . wc_price( $min_amount – $current ) . ‘ in più!
‘;
$return_to = wc_get_page_permalink( 'shop' );
$notice = sprintf( '%s %s', esc_url( $return_to ), 'Continua lo Shopping', $added_text );
wc_print_notice( $notice, 'notice' );
}
}
add_action( 'woocommerce_before_cart', 'wpspecial_qntmanca_spedizione_gratuita' );
function wpspecial_spedizione_gratuita_automatica( $rates, $package ) {
if ( isset( $rates['free_shipping:2'] ) ) {
unset( $rates['flat_rate:1'] );
}
return $rates;
}
In questo modo abbiamo aggiunto sia un messaggio che incentiva l’utente a raggiungere la cifra per ottenere la spedizione Gratuita di 90 (euro) e nel frattempo la visualizzazione delle sola spedizione Gratuita se raggiunge più di 90(euro) nascondendo tutte le altre!