Filtrare un range di cap codice avviamento postale , in base alla provincia

Pubblicato da: Roberto Commenti: 0

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

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