Woocommerce inserire partita iva e codice fiscale nell’ordine

Nella fase di vendita serve in genere il codice fiscale e/o la partita iva per la fatturazione.

Woocommerce non ha questi campi di default.

Per aggiungerli copiate il seguente codice nel file function.php del tema

Il campo non viene chiesto in caso di accesso da estero. C’è la variabile var check_countries che riporta la lista dei paesi da cui il campo viene nascosto perché non serve.

E’ ovviamente modificabile come modificabili sono i testi della label (che trovate nel codice sotto)

 

// Our hooked in function – $fields is passed via the filter!
add_action( ‘woocommerce_after_order_notes’, ‘my_custom_checkout_field’ );
function my_custom_checkout_field( $checkout ) {
echo ‘<div id=”my_custom_checkout_field”><h2>’. __(‘Codice Fiscale o P.IVA’,’theme_name’) .'</h2>’;
woocommerce_form_field( ‘codice_fiscale’, array(
‘type’ => ‘text’,
‘class’ => array(‘my-field-class form-row-wide’),
‘label’ => __(‘Inserisci Codice Fiscale o Partita IVA*’,’theme_name’),
‘placeholder’ => __(‘Codice Fiscale o Partita IVA’,’theme_name’),
‘required’ => false
), get_user_meta(get_current_user_id(), ‘codice_fiscale’, true ));
echo ‘</div>’;
?>
<script type=”text/javascript”>
jQuery(‘select#billing_country’).live(‘change’, function(){
var country = jQuery(‘select#billing_country’).val();
var check_countries = new Array(‘AT’, ‘BE’, ‘BG’, ‘CY’, ‘CZ’, ‘DE’, ‘DK’, ‘EE’, ‘ES’, ‘FI’, ‘FR’, ‘GB’, ‘GR’, ‘HU’, ‘IE’, ‘IT’, ‘LT’, ‘LU’, ‘LV’, ‘MT’, ‘NL’, ‘PL’, ‘PT’, ‘RO’, ‘SE’, ‘SI’, ‘SK’, ‘IM’, ‘MC’);
if (country && jQuery.inArray( country, check_countries ) >= 0) {
jQuery(‘#my_custom_checkout_field’).fadeIn();
} else {
jQuery(‘#my_custom_checkout_field’).fadeOut();
jQuery(‘#my_custom_checkout_field input’).val(”);
}
});
</script>
<?php
}
/**
* Process the checkout
*/
add_action(‘woocommerce_checkout_process’, ‘my_custom_checkout_field_process’);
function my_custom_checkout_field_process() {
if ( ! $_POST[‘codice_fiscale’] )
wc_add_notice( ‘Inserisci Codice Fiscale’, ‘error’ );
}
/**
* Update the order meta with field value
*/
add_action( ‘woocommerce_checkout_update_order_meta’, ‘my_custom_checkout_field_update_order_meta’ );
function my_custom_checkout_field_update_order_meta( $order_id ) {
if ( ! empty( $_POST[‘codice_fiscale’] ) ) {
update_post_meta( $order_id, ‘codice_fiscale’, sanitize_text_field( $_POST[‘codice_fiscale’] ) );
update_user_meta( get_current_user_id(), ‘codice_fiscale’, sanitize_text_field( $_POST[‘codice_fiscale’] ) );
}
}
/**
* Display field value on the order edit page
*/
add_action( ‘woocommerce_admin_order_data_after_billing_address’, ‘my_custom_checkout_field_display_admin_order_meta’, 10, 1 );
function my_custom_checkout_field_display_admin_order_meta($order){
echo ‘<p><strong>’. __(‘Codice Fiscale’,’theme_name’) .'</strong> ‘ . get_post_meta( $order->id, ‘codice_fiscale’, true ) . ‘</p>’;
}

Comments

comments