Aggiungere i campi Partita Iva, codice destinatario e Codice fiscale in Woocommerce

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

Scopri tutti gli Snippet