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') ? 'Sì' : '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.