Nascondere un campo nel checkout quando si seleziona la nazione

Pubblicato da: Roberto Commenti: 0

A volte si ha la necessità di nascondere un campo di testo , nativo o non, quando si è nel checkout. Le cause possono essere varie, per esempio quando abbiamo il campo codice fiscale ma non lo vogliamo far visualizzare e far compilare ad un utente che sia di un altra nazionalità.

Nel esempio che riporto in questo snippet, per prova stiamo nascondendo il campo “Nome”. Ovviamente inserite il valore del campo a voi necessario per farlo funzionare. Nell’ esempio, se si seleziona italia, il campo nome compare, se viene selezionata un altra nazionalità scompare. Viene disabilitato anche l’obbligatorietà del campo nel caso lo fosse per le vostre esigenze.

 

add_action( 'woocommerce_before_checkout_form' , 'hide_field_custom_with_select_country_in_checkout' );
function hide_field_custom_with_select_country_in_checkout() {
?>
<script>
jQuery(document).ready(function($){

// Set the country code
var countryCode = 'IT';

$('select#billing_country').change(function(){

selectedCountry = $('select#billing_country').val();

if( selectedCountry == countryCode ){
$('#billing_first_name_field').show();
}
else {
$('#billing_first_name_field').hide();
}
});

});
</script>
<?php
}
add_filter( 'woocommerce_checkout_fields' , 'hide_with_css_and_disable_required_not_italy' );
function hide_with_css_and_disable_required_not_italy( $fields ) {
// Set the country code
if (isset( $fields['billing']['billing_first_name'] ) && WC()->customer->get_billing_country() <> 'IT'){
$display = '<style>#billing_first_name_field {display:none;} </style>';
echo $display;
$fields['billing']['billing_first_name']['required'] = false;
}
return $fields;
}

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.