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;
}

Esempio di Inserimentocampi personalizzati per P.IVA e Fatturazione elettronica senza plugin

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;
}
Leonardo Spada

Web Designer & Consulente SEO Freelance. Mi occupo di Web Design e posizionamento su Google per diverse realtà aziendali e liberi professionisti curando nei minimi particolari il progetto web dalla pianificazione alla realizzazione.