Con questo snippet di codice da inserire in function.php del tema, potrai aggiungere i campi aggiuntivi per la fatturazione: Partita Iva, Codice destinatario (SDI) e codice fiscale.
I campi verranno aggiunti al checkout in fase di pagamento e nella schermata degli ordini nel backend.
Nel parametro required, puoi decidere se rendere il campo obbligatorio o facoltativo impostando la flag rispettivamente su true o su false.
// Aggiungi Partita IVA, Codice Fiscale e Codice Destinatario SDI al checkout
add_filter( 'woocommerce_billing_fields', 'aggiungi_campi_fatturazione', 20, 1 );
function aggiungi_campi_fatturazione( $fields ) {
// Partita IVA
$fields['billing_partita_iva'] = array(
'type' => 'text',
'label' => 'Partita IVA',
'placeholder' => 'IT01234567890',
'required' => false,
'class' => array('form-row-wide'),
'priority' => 31, // Dopo il Nome Azienda
);
// Codice Fiscale
$fields['billing_codice_fiscale'] = array(
'type' => 'text',
'label' => 'Codice Fiscale',
'placeholder' => 'RSSMRA80A01H501Z',
'required' => false,
'class' => array('form-row-wide'),
'priority' => 32,
);
// Codice Destinatario (SDI)
$fields['billing_codice_sdi'] = array(
'type' => 'text',
'label' => 'Codice Destinatario (SDI)',
'placeholder' => 'XXXXXXX',
'required' => false,
'class' => array('form-row-wide'),
'priority' => 33,
);
return $fields;
}
// Salva i campi personalizzati negli ordini
add_action( 'woocommerce_checkout_update_order_meta', 'salva_campi_fatturazione' );
function salva_campi_fatturazione( $order_id ) {
if ( ! empty( $_POST['billing_partita_iva'] ) ) {
update_post_meta( $order_id, '_billing_partita_iva', sanitize_text_field( $_POST['billing_partita_iva'] ) );
}
if ( ! empty( $_POST['billing_codice_fiscale'] ) ) {
update_post_meta( $order_id, '_billing_codice_fiscale', sanitize_text_field( $_POST['billing_codice_fiscale'] ) );
}
if ( ! empty( $_POST['billing_codice_sdi'] ) ) {
update_post_meta( $order_id, '_billing_codice_sdi', sanitize_text_field( $_POST['billing_codice_sdi'] ) );
}
}
// Mostra i campi personalizzati negli ordini (admin WooCommerce)
add_action( 'woocommerce_admin_order_data_after_billing_address', 'mostra_campi_fatturazione_admin', 10, 1 );
function mostra_campi_fatturazione_admin( $order ) {
$partita_iva = get_post_meta( $order->get_id(), '_billing_partita_iva', true );
$codice_fiscale = get_post_meta( $order->get_id(), '_billing_codice_fiscale', true );
$codice_sdi = get_post_meta( $order->get_id(), '_billing_codice_sdi', true );
if ( ! empty( $partita_iva ) ) {
echo '<p><strong>Partita IVA:</strong> ' . esc_html( $partita_iva ) . '</p>';
}
if ( ! empty( $codice_fiscale ) ) {
echo '<p><strong>Codice Fiscale:</strong> ' . esc_html( $codice_fiscale ) . '</p>';
}
if ( ! empty( $codice_sdi ) ) {
echo '<p><strong>Codice SDI:</strong> ' . esc_html( $codice_sdi ) . '</p>';
}
}

