Aggiungi campi per fatturazione elettronica al checkout

Aggiungi alla pagina di checkout i campi: Ragione Sociale, Codice Fiscale, Partita IVA, Indirizzo PEC e Codice Univoco.
PHP
add_filter('woocommerce_checkout_fields', 'dmm_billing_custom_fields_with_checkbox');

function dmm_billing_custom_fields_with_checkbox($fields) {

    // Aggiungi la casella di controllo per la fattura elettronica
$fields['billing']['billing_need_e_invoice'] = array(
    'label' => 'Ho bisogno della fattura elettronica',
    'type' => 'checkbox',
    'class' => array('form-row-wide'),
    'clear' => true,
    'priority' => $fields['billing']['billing_email']['priority'] + 1,
);
	
	// Aggiungi il campo Ragione Sociale
    $fields['billing']['billing_ragione_sociale'] = array(
        'label' => 'Ragione Sociale',
        'required' => false,
        'class' => array('form-row-wide', 'hidden-field'),
        'clear' => true,
        'priority' => $fields['billing']['billing_need_e_invoice']['priority'] + 1,
    );

    // Aggiungi il campo Codice Fiscale
    $fields['billing']['billing_codice_fiscale'] = array(
        'label' => 'Codice Fiscale',
        'required' => false,
        'class' => array('form-row-first', 'hidden-field'),
        'clear' => true,
        'priority' => $fields['billing']['billing_ragione_sociale']['priority'] + 1,
    );

    // Aggiungi il campo Partita IVA
    $fields['billing']['billing_partita_iva'] = array(
        'label' => 'Partita IVA',
        'required' => false,
        'class' => array('form-row-last', 'hidden-field'),
        'clear' => true,
        'priority' => $fields['billing']['billing_codice_fiscale']['priority'] + 1,
    );

    // Aggiungi il campo Indirizzo PEC
    $fields['billing']['billing_pec'] = array(
        'label' => 'Indirizzo PEC',
        'type' => 'email',
        'required' => false,
        'class' => array('form-row-first', 'hidden-field'),
        'clear' => true,
        'priority' => $fields['billing']['billing_partita_iva']['priority'] + 1,
    );

    // Aggiungi il campo Codice Univoco
    $fields['billing']['billing_codice_sdi'] = array(
        'label' => 'Codice Univoco',
        'required' => false,
        'class' => array('form-row-last', 'hidden-field'),
        'clear' => true,
        'priority' => $fields['billing']['billing_partita_iva']['priority'] + 1,
    );

    return $fields;
}

// Aggiungi script JavaScript per gestire la visibilità dei campi
add_action('wp_footer', 'dmm_billing_custom_fields_script');

function dmm_billing_custom_fields_script() {
    ?>
    <script type="text/javascript">
        jQuery(document).ready(function ($) {
            // Nascondi i campi al caricamento della pagina
            $('.hidden-field').hide();

            // Mostra/nascondi i campi in base allo stato della casella di controllo
            $('#billing_need_e_invoice').change(function () {
                $('.hidden-field').toggle(this.checked);
            });
        });
    </script>
    <?php
}

add_action('woocommerce_admin_order_data_after_billing_address', 'dmm_billing_custom_fields_display');

function dmm_billing_custom_fields_display($order) {
    // Recupera lo stato della casella di controllo "Fattura elettronica"
    $need_e_invoice = get_post_meta($order->get_id(), '_billing_need_e_invoice', true);

    // Converti il valore in una stringa significativa
    $need_e_invoice_label = ($need_e_invoice == '1') ? '' : 'No';

    // Visualizza lo stato della casella di controllo "Fattura elettronica"
    echo '<p><b>Fattura elettronica:</b> ' . $need_e_invoice_label . '</p>';
    
    // Visualizza gli altri campi
    echo '<p><b>Codice Fiscale:</b> ' . get_post_meta($order->get_id(), '_billing_codice_fiscale', true) . '</p>';
    echo '<p><b>Partita IVA:</b> ' . get_post_meta($order->get_id(), '_billing_partita_iva', true) . '</p>';
    echo '<p><b>Codice Univoco:</b> ' . get_post_meta($order->get_id(), '_billing_codice_sdi', true) . '</p>';
    echo '<p><b>Indirizzo PEC:</b> ' . get_post_meta($order->get_id(), '_billing_pec', true) . '</p>';
}

// Stile CSS
add_action('wp_head', 'custom_checkout_styles');

function custom_checkout_styles() {
    ?>
    <style>
        /* Nascondi l'etichetta "optional" per i campi opzionali */
        .optional {
            display: none !important;
        }
    </style>
    <?php
}

Copia il codice nel file functions.php del tuo tema child attivo o utilizza il plugin Code Snippets.

Lascia un commento

DMM Web Design
Questo sito utilizza cookie tecnici e di profilazione. Cliccando su accetta si autorizzano tutti i cookie di profilazione. Cliccando su rifiuta o la X si rifiutano tutti i cookie di profilazione. Cliccando su personalizza è possibile selezionare quali cookie di profilazione attivare.