I campi checkout WooCommerce custom sono spesso decisivi per processi fiscali, logistica e supporto post-vendita. In questa guida trovi un flusso completo e sicuro per aggiungere, validare e salvare i dati senza rompere la user experience del checkout.
Perché personalizzare il checkout
Nel B2B e in molti ecommerce italiani servono campi extra (codice destinatario, PEC, note fiscali). Un checkout personalizzato bene riduce errori amministrativi e ticket post-vendita.
1) Aggiungere il campo
add_filter( 'woocommerce_checkout_fields', function( $fields ) {
$fields['billing']['billing_vat_code'] = array(
'label' => 'Codice destinatario',
'required' => false,
'class' => array( 'form-row-wide' ),
'priority' => 120,
);
return $fields;
} );
2) Validare il campo
add_action( 'woocommerce_checkout_process', function() {
if ( ! empty( $_POST['billing_vat_code'] ) ) {
$vat_code = sanitize_text_field( wp_unslash( $_POST['billing_vat_code'] ) );
if ( strlen( $vat_code ) !== 7 ) {
wc_add_notice( 'Il codice destinatario deve contenere 7 caratteri.', 'error' );
}
}
} );
3) Salvare nei meta ordine
add_action( 'woocommerce_checkout_create_order', function( $order ) {
if ( ! empty( $_POST['billing_vat_code'] ) ) {
$order->update_meta_data(
'_billing_vat_code',
sanitize_text_field( wp_unslash( $_POST['billing_vat_code'] ) )
);
}
} );
4) Mostrare il dato in admin ordine
add_action( 'woocommerce_admin_order_data_after_billing_address', function( $order ) {
$vat_code = $order->get_meta( '_billing_vat_code' );
if ( $vat_code ) {
echo '<p><strong>Codice destinatario:</strong> ' . esc_html( $vat_code ) . '</p>';
}
} );
Compatibilità checkout classico vs block checkout
Alcune personalizzazioni legacy del checkout classico non funzionano identiche nel checkout a blocchi. Prima del deploy verifica il flusso usato dal sito cliente.
Checklist test
- Ordine guest.
- Ordine utente registrato.
- Campo valorizzato e non valorizzato.
- Verifica in admin ordine.
- Verifica eventuale export/ERP.
Errori comuni
- Mancata sanitizzazione input.
- Campo salvato ma non visualizzato in backoffice.
- Validazione troppo rigida che blocca ordini legittimi.
Guida operativa estesa per team tecnici
Per trasformare questa guida in un processo realmente utile in agenzia, il passaggio chiave è standardizzare il flusso di lavoro. Nella pratica, i problemi non nascono quasi mai dal singolo snippet ma dalla mancanza di metodo: codice inserito in punti diversi, assenza di checklist, nessuna traccia delle decisioni tecniche e test limitati solo alla parte visiva. Quando il progetto cresce, questa frammentazione diventa costosa e rallenta tutto il team.
Un approccio maturo prevede tre livelli: progettazione della modifica, implementazione controllata e verifica post-rilascio. In fase di progettazione conviene sempre definire obiettivo, hook coinvolto, impatto atteso e possibile piano rollback. In fase di implementazione è utile isolare la modifica in un modulo dedicato e aggiungere una breve nota tecnica che spieghi perché è stata scelta quella soluzione. In fase di verifica bisogna testare non solo “se funziona”, ma anche se crea effetti collaterali su pagine collegate, plugin terzi e processi amministrativi.
Nel contesto WordPress e WooCommerce questo diventa ancora più importante perché spesso convivono tema, child theme, plugin commerciali e custom code interno. Ogni aggiornamento può cambiare l’ordine di esecuzione dei hook o introdurre comportamenti nuovi. Per questo è consigliabile mantenere una baseline periodica: elenco hook critici, priorità, snippet attivi, dipendenze e aree più sensibili (checkout, email, pricing, ordini, performance). Avere questa mappa riduce drasticamente i tempi di troubleshooting.
Piano di implementazione consigliato (staging -> produzione)
- Definisci outcome misurabile: cosa deve cambiare per utente o business.
- Applica modifica su staging con dati realistici.
- Esegui test funzionali principali e test di non regressione.
- Confronta comportamento con plugin chiave attivi.
- Effettua deploy in finestra controllata.
- Monitora log/errori nelle prime 24/48 ore.
Metriche utili da monitorare
- Stabilità tecnica: errori PHP, warning e notice post-rilascio.
- Qualità UX: riduzione di frizioni in aree chiave (carrello, checkout, account).
- KPI business: conversion rate, tasso abbandono checkout, ticket assistenza.
- SEO tecnico: copertura crawling, qualità markup, performance template critici.
Pattern di manutenzione che funzionano bene
- Un repository unico per snippet e customizzazioni.
- Naming coerente di funzioni e namespace per evitare conflitti.
- Changelog tecnico minimo per ogni modifica in produzione.
- Retrospettiva mensile su bug ricorrenti e miglioramenti di processo.
FAQ
Meglio salvare in meta custom o usare campo standard?
Se è un dato nuovo e specifico, meta custom è la scelta più ordinata.
Posso rendere il campo obbligatorio solo per aziende?
Sì, con logica condizionale lato checkout in base a tipo cliente/partita IVA.
Come capisco se una modifica va fatta con hook o override template?
Prima valuta hook/filter. Se il risultato richiede solo aggiunta o modifica di output, l’hook è spesso la soluzione più robusta. L’override template ha senso quando devi riscrivere struttura markup non raggiungibile con i punti di aggancio standard.
Come evitare regressioni quando aggiorno WooCommerce?
Mantieni un set di test ripetibili su product, cart, checkout, email e gestione ordini. Dopo ogni aggiornamento, esegui sempre questo pacchetto minimo in staging prima del rilascio.
Conviene mantenere snippet in plugin dedicato anche per siti piccoli?
Sì, nella maggior parte dei casi. Anche su progetti piccoli aiuta a separare responsabilità, semplificare backup e rendere più sicuro il passaggio di consegne tra sviluppatori.




