Modificare l’ordine dei campi di fatturazione nel checkout WooCommerce
Nel checkout WooCommerce i campi di fatturazione non sono sempre ordinati nel modo migliore per il nostro ecommerce.
A volte vogliamo modificare l’ordine dei campi per migliorare l’esperienza dell’utente, rendere il checkout più chiaro e aiutare il cliente a completare l’acquisto senza esitazioni.
Questo è ancora più importante per gli ecommerce italiani, dove il checkout può includere anche dati fiscali come Codice Fiscale, Partita IVA, PEC e Codice Destinatario SDI.
In questa guida vediamo come modificare l’ordine dei campi di fatturazione in WooCommerce e quali attenzioni avere quando il checkout contiene anche campi fiscali personalizzati.
Se il tuo obiettivo è gestire correttamente Codice Fiscale e Partita IVA nel checkout, puoi leggere anche la guida dedicata: Codice Fiscale e Partita IVA in WooCommerce.
Campi di fatturazione predefiniti in WooCommerce
Innanzitutto vediamo quali sono i campi di default che WooCommerce inserisce nel checkout:
[billing_country] [billing_first_name] [billing_last_name] [billing_company] [billing_address_1] [billing_address_2] [billing_postcode] [billing_city] [billing_state] [billing_email] [billing_phone]
Quindi, in molti casi, i campi appariranno in questo ordine:
- Stato
- Nome
- Cognome
- Società
- Indirizzo 1
- Indirizzo 2
- CAP
- Città
- Provincia
- Telefono
Questo ordine può non essere ideale per tutti i negozi.
Per esempio, in un ecommerce B2B può essere più utile dare maggiore evidenza a società, nome, cognome, email e telefono. In altri casi può essere necessario posizionare meglio i campi fiscali, soprattutto se il sito richiede dati per fattura elettronica.
Esempio di nuovo ordine dei campi
Nel nostro esempio vogliamo sistemare i campi in questo modo:
- Società
- Nome
- Cognome
- Telefono
- Indirizzo 1
- Indirizzo 2
- Stato
- Provincia
- CAP
Per farlo possiamo usare l’hook woocommerce_checkout_fields, che permette di intervenire sull’array dei campi del checkout.
Il codice va inserito nel file functions.php del tema child oppure, meglio ancora, in un piccolo plugin personalizzato.
Codice per modificare l’ordine dei campi di fatturazione WooCommerce
add_filter( 'woocommerce_checkout_fields', 'dot4all_order_billing_fields' );
function dot4all_order_billing_fields( $fields ) {
$order = array(
'billing_company',
'billing_first_name',
'billing_last_name',
'billing_email',
'billing_phone',
'billing_address_1',
'billing_address_2',
'billing_country',
'billing_state',
'billing_postcode',
);
$ordered_fields = array();
foreach ( $order as $field ) {
if ( isset( $fields['billing'][ $field ] ) ) {
$ordered_fields[ $field ] = $fields['billing'][ $field ];
unset( $fields['billing'][ $field ] );
}
}
foreach ( $fields['billing'] as $key => $field ) {
$ordered_fields[ $key ] = $field;
}
$fields['billing'] = $ordered_fields;
return $fields;
}
Con questo codice i campi di fatturazione vengono ordinati secondo la sequenza definita nell’array $order.
Ho corretto anche un dettaglio importante rispetto al vecchio esempio: dopo billing_phone serve una virgola. Senza quella virgola il codice PHP genera errore.
Come funziona il codice
Nell’array $order inseriamo i campi che vogliamo mostrare per primi e nell’ordine desiderato.
Il primo ciclo foreach scorre i campi indicati nell’array $order.
Per ogni campo controlliamo che esista davvero in $fields[‘billing’]. Questo controllo è importante perché il checkout potrebbe essere modificato da tema, plugin o configurazioni WooCommerce.
Se il campo esiste, lo aggiungiamo all’array temporaneo $ordered_fields e lo rimuoviamo dall’array originale.
Nel secondo ciclo foreach aggiungiamo tutti i campi rimasti. In questo modo non perdiamo eventuali campi non inclusi nell’array $order, per esempio campi aggiunti da altri plugin.
Infine assegniamo il nuovo ordine a $fields[‘billing’] e restituiamo l’array modificato a WooCommerce.
Attenzione ai campi fiscali italiani
Se nel checkout sono presenti campi fiscali come Codice Fiscale, Partita IVA, PEC o Codice Destinatario SDI, bisogna verificare anche il loro ordine.
Questi campi possono essere aggiunti manualmente o tramite plugin dedicati.
Per esempio, un checkout fiscale italiano potrebbe avere una sequenza più chiara di questo tipo:
- Tipologia cliente
- Società
- Nome
- Cognome
- Codice Fiscale
- Partita IVA
- PEC
- Codice SDI
- Telefono
- Indirizzo
- CAP
- Città
- Provincia
- Stato
L’obiettivo è non chiedere dati fiscali in modo confuso e non interrompere il flusso d’acquisto.
Per gestire questi campi in modo più completo puoi valutare il plugin WooCommerce Partita IVA e Codice Fiscale PRO.
Checkout, fatturazione elettronica e SDI
L’ordine dei campi non è solo una questione estetica.
In un ecommerce italiano, i dati raccolti nel checkout possono servire per generare fatture, ricevute, XML e documenti fiscali.
Se il negozio deve gestire fatturazione elettronica, è importante che PEC, Codice SDI, Partita IVA e Codice Fiscale siano raccolti correttamente e salvati nell’ordine WooCommerce.
Puoi approfondire il tema nella guida sulla fatturazione elettronica WooCommerce Italia.
Per flussi più avanzati puoi valutare anche il modulo di invio fatture elettroniche allo SDI da WooCommerce oppure la suite fiscale WooCommerce.
Prima di pubblicare la modifica
Prima di modificare l’ordine dei campi su un sito in produzione, conviene testare il checkout in modo completo.
Controlla che:
- tutti i campi necessari siano ancora visibili;
- i campi obbligatori funzionino correttamente;
- i dati vengano salvati nell’ordine;
- i campi fiscali non spariscano;
- email e documenti fiscali ricevano i dati corretti;
- il checkout funzioni da desktop e mobile;
- eventuali plugin di checkout non sovrascrivano l’ordine impostato.
Se usi Checkout Blocks o plugin che personalizzano profondamente il checkout, verifica sempre la compatibilità del codice.
Conclusione
Modificare l’ordine dei campi di fatturazione WooCommerce può migliorare l’esperienza utente e rendere il checkout più coerente con il tipo di ecommerce.
Per un negozio italiano, però, è importante ragionare anche sui dati fiscali: Codice Fiscale, Partita IVA, PEC, Codice SDI e fatturazione elettronica.
Un checkout ordinato aiuta il cliente a completare l’acquisto e aiuta l’amministratore a gestire meglio ordini, fatture e documenti fiscali.






Salve a tutti, ho un sito in lingua Giapponese, i clienti non possono completare la procedura d’acquisto perchè arrivati alla compilazione dei dati di fatturazione il sistema richiede che la città sia scritta con caratteri romani mentre invece nella finestrella le città sono scritte come ovvio con caratteri Giapponesi (Kanji), dove si va per cambiare queste scritte oppure come mettere in off questa pagina? Milla grazie.
Buonasera, come inserire un campo CF/PIVA (obbligatorio) sotto Società (nel mio caso Ragione Sociale)?
Come far si che sia riportato nelle email generate dall’ordine?
Buonasera, come inserire un campo CF/P.IVA (obbligatorio) esattamente sotto “Società” (Ragione Sociale nel mio caso)?
PS. sto utilizzando multivendor plugin dona, non so se cambia
Salve! Vorrei chiederle un’info: tramite i filtri è possibile modificare anche i campi di registrazione? se si come?
grazie mille
Ciao Alessandro, che plugin stai utilizzando? solitamente il plugin inserisce anche in amministrazione i campi cf e p.iva creati. Tienici aggiornati
Ciao, nel mio processo di checkout ho anche un campo relativo alla fatturazione (CF e PIVA) gestito da un plugin terza parte.
Come faccio a identificare i campi relativi a questi dati per poi inserirli nell’ordine di visualizzazione desiderato?
grazie mille
Ciao Carlo,
per poter eliminare un campo nel checkout puoi utilizzare i filter che woocommerce ci mette a disposizione.
Di seguito un esempio:
add_filter( ‘woocommerce_checkout_fields’ , ‘custom_override_checkout_fields’ );
function custom_override_checkout_fields( $fields ) {
unset($fields[‘billing’][‘billing_address_2’]);
return $fields;
}
Per quanto riguarda lo stile dei campi (es. email + phone) puoi utilizzare i css (modificando il file style.css del tema) e renderli più grandi, più piccoli o ancora allinearli a tuo piacimento.
Buon proseguimento 😉
Grazie per l’utilissimo post.
Oltre ad aver cambiato l’ordine di visualizzazione, mi servirebbe eliminare alcuni campi superflui, (es. “address_2”) e magari ridurre le larghezze dei campi “postcode” e “city” in modo da affiancarli, come succede per “firstname + lastname” e anche “email + phone”.
E’ una cosa fattibile?
Grazie