Personalizzazione dei campi di fatturazione WooCommerce
Il seguente codice PHP serve ad implementare i campi personalizzati per poter emettere successivamente fatturazione elettronica nel checkout Wooocommerce.
La funzione aggiunge al checkout e riporta successivamente nel backend amministrativo “dettagli ordine” i campi: Nome azienda per fattura, Partita IVA / Codice Fiscale, Codice SDI o PEC e indirizzo di fatturazione.
//PIVA Checkout e Backend
add_filter( 'woocommerce_billing_fields' , 'add_billing_field_piva' );
function add_billing_field_piva( $fields ) {
$fields['billing_ragione_sociale'] = array(
'label' => __('Nome azienda per fattura', 'woocommerce'),
'required' => false,
'class' => array('form-row-wide'),
'priority' => 999,
'clear' => true,
'show' => true
);
$fields['billing_piva'] = array(
'label' => __('Partita IVA / C.F.', 'woocommerce'),
'required' => false,
'class' => array('form-row-wide'),
'priority' => 1000,
'clear' => true,
'show' => true
);
$fields['billing_sdi'] = array(
'label' => __('Codice SDI o PEC', 'woocommerce'),
'required' => false,
'class' => array('form-row-wide'),
'priority' => 1001,
'clear' => true,
'show' => true
);
$fields['billing_invoice_address'] = array(
'label' => __('Indirizzo di fatturazione', 'woocommerce'),
'required' => false,
'class' => array('form-row-wide'),
'priority' => 1002,
'clear' => true,
'show' => true
);
return $fields;
}
// Aggiungere i campi AMMINISTRAZIONE BACKEND
add_filter( 'woocommerce_admin_billing_fields' , 'add_admin_field_cfpiva' );
function add_admin_field_cfpiva( $fields ) {
$fields['ragione_sociale'] = array(
'label' => __('Ragione Sociale', 'woocommerce'),
'show' => true
);
$fields['piva'] = array(
'label' => __('Codice Fiscale / P.IVA', 'woocommerce'),
'show' => true
);
$fields['sdi'] = array(
'label' => __('Codice SDI o PEC', 'woocommerce'),
'show' => true
);
$fields['invoice_address'] = array(
'label' => __('Indirizzo di fatturazione', 'woocommerce'),
'show' => true
);
return $fields;
}

Versione 2 con codice fiscale obbligatorio per fatturazione cliente privato e dati facoltativi per fatturazione aziende
// Campi personalizzati al checkout per la fatturazione aziendale con obbligo di inserimento codice fiscale per inviare fattura anche a clienti privati
add_filter('woocommerce_billing_fields', 'custom_billing_fields_cf_piva');
function custom_billing_fields_cf_piva($fields) {
$fields['billing_codice_fiscale'] = array(
'label' => __('Codice Fiscale', 'woocommerce'),
'required' => true,
'class' => array('form-row-wide'),
'priority' => 75,
'clear' => true,
);
$fields['billing_ragione_sociale'] = array(
'label' => __('Nome azienda per fattura', 'woocommerce'),
'required' => false,
'class' => array('form-row-wide'),
'priority' => 10000,
);
$fields['billing_piva'] = array(
'label' => __('Partita IVA', 'woocommerce'),
'required' => false,
'class' => array('form-row-wide'),
'priority' => 10010,
);
$fields['billing_sdi'] = array(
'label' => __('Codice SDI o PEC', 'woocommerce'),
'required' => false,
'class' => array('form-row-wide'),
'priority' => 10020,
);
$fields['billing_invoice_address'] = array(
'label' => __('Indirizzo di fatturazione', 'woocommerce'),
'required' => false,
'class' => array('form-row-wide'),
'priority' => 10030,
);
return $fields;
}
add_filter('woocommerce_admin_billing_fields', 'custom_admin_billing_fields_cf_piva');
function custom_admin_billing_fields_cf_piva($fields) {
$fields['codice_fiscale'] = array(
'label' => __('Codice Fiscale', 'woocommerce'),
'show' => true,
);
$fields['ragione_sociale'] = array(
'label' => __('Ragione Sociale', 'woocommerce'),
'show' => true,
);
$fields['piva'] = array(
'label' => __('Partita IVA', 'woocommerce'),
'show' => true,
);
$fields['sdi'] = array(
'label' => __('Codice SDI o PEC', 'woocommerce'),
'show' => true,
);
$fields['invoice_address'] = array(
'label' => __('Indirizzo di fatturazione', 'woocommerce'),
'show' => true,
);
return $fields;
}




