Alcune volte potrebbe essere necessario inserire un filtro, per evitare che il cliente finale inserisca un cap che non è idoneo alla propria provincia.
Sono capitati ordini, e nel’assurdità succede, in cui il cliente finale inserisce il cap di Roma, ma la provincia e la città erano di tutt’altra parte.
Lo snippet in basso limita almeno un poco che questo errore non venga fatto, controllando se dal cap 70010 al 70132 (sono tutti i cap della provincia di Bari), venga selezionata la provincia giusta. Se la provincia selezionata non dovesse essere “Bari”, al checkout in conferma ordine apparirà l’errore, invitando il cliente a correggere.
Ovviamente potete modificarlo , inserendo anche tutte le province (un bel lavoraccio)
ecco lo snippet
add_action( 'woocommerce_after_checkout_validation', 'filter_cap_with_state_ba', 10, 2);
function filter_cap_with_state_ba( $fields, $errors ){
$search_state = WC()->customer->get_shipping_state();//provincia selezionato dal cliente al checkout
$state = $search_state == "BA";//sigla provincia
//range cap della provincia dal - al
$start_cap = 70010;
$end_cap = 70132;
if ( $fields[ 'billing_postcode'] >= $start_cap && $fields[ 'billing_postcode'] <= $end_cap && !$state ){
$errors->add( 'validation', 'Il cap inserito corrisponde alla provincia di Bari, inserisci un cap valido' );
}
}
Lascia un commento