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