Come aggiungere la partita iva in Woocommerce

Come aggiungere la partita iva in Woocommerce

Capita molto spesso di lavorare con Woocommerce ed aver bisogno della partita iva degli acquirenti. Ma quando raccogliamo i dati degli utenti questo campo non è presente di default (essendo un bisogno principalmente italiano), dobbiamo quindi andare ad aggiungerlo noi. Ma come? In questo articolo vediamo in dettaglio come aggiungere il campo partita iva al checkout di woocommerce. I passaggi da svolgere sono principalmente 2. Il primo è aggiungere il nostro campo al checkout e nella sezione "my account", la seconda è quella di inserirlo nel dettaglio dell'ordine visibile da backend. Cominciamo con la prima parte, apriamo il file functions.php del nostro tema e scriviamo:

// Aggiungere il campo Partita iva MYACCOUNT E CHECKOUT

add_filter( 'woocommerce_billing_fields' , 'add_billing_field_piva' );

function add_billing_field_piva( $fields ) {
$fields['billing_piva'] = array(
'label' => __('Partita Iva', 'woocommerce'),
'placeholder' => _x('Partita iva', 'placeholder', 'woocommerce'),
'required' => true,
'class' => array('form-row-wide'),
'show' => true
);
return $fields;
}

Per prima cosa abbiamo utilizzato il filter hook 'woocommerce_billing_fields' per inserire il nostro campo partita iva (per chi non avesse dimistichezza con i filtri di wordpress consiglio di dare un occhio alla documentazione ufficiale). All' interno della funzione siamo andati ad aggiungere un dato 'billing_piva' con alcune informazioni come label, placeholder e required che nel nostro caso abbiamo settato come true per impostare il campo obbligatorio.

Dopo aver aggiunto questa porzione di codice al nostro functions.php , possiamo già ritrovare il campo nel nostro checkout di woocommerce.

Ora Che il campo partita iva è visibile nel checkout dobbiamo far si che una volta compilato e concluso l'ordine sia visibile anche nel nostro pannello di amministrazione.

Procediamo aggiungendo questa porzione di codice:


// Aggiungere il campo Piva AMMINISTRAZIONE BACKEND
add_filter( 'woocommerce_admin_billing_fields' , 'add_admin_field_cfpiva' );

    function add_admin_field_cfpiva( $fields ) {
        $fields['piva'] = array(
            'label' => __('Codice Fiscale / P.IVA', 'woocommerce'),
            'show'  => true
        );
        return $fields;
    }

Il procedimento è molto simile al precente, in questo caso abbiamo utilizzato il filtro 'woocommerce_admin_billing_fields', notate che per richiamare il dato, abbiamo rimosso dalla key utilizzata in precedenza (billing_piva) il prefisso 'billing_'.

Se abbiamo inserito tutto correttamente ciò che vedremo nel dettaglio ordine dovrebbe essere simile all'immagine seguente.

In questo articolo abbiamo spiegato come aggiungere il campo partita iva in Woocommerce, lo stesso procedimento lo possiamo utilizzare se vogliamo inserire il campo codice fiscale o qualsiasi altro campo a nostro piacimento.

Commenti

Giulio
2017-10-27 14:09:15
Ottimo articolo davvero! Vorrei far apparire il campo partita iva anche sulla fattura PDF che genera il plugin gratuito https://it.wordpress.org/plugins/woocommerce-pdf-invoices-packing-slips/ come devo fare? Grazie Giulio
CODEPLUS ADMIN
2017-10-30 21:54:15
Ciao Giulio. Dando un occhio veloce al plugin, potresti utilizzare una delle action che ti mette a disposizione. Ho provato con questa ed ha funzionato:

function custom_function($template_type, $order) {
	$piva=get_post_meta( $order->id, '_billing_piva', true );
	echo '<tr class="piva-user">
                 <th>Partita iva:</th>
                 <td>'.$piva.'</td>
               </tr>';
}

add_action('wpo_wcpdf_after_document_label', 'custom_function', 10, 2);

Codice sempre da aggiungere al functions.php . Fammi sapere!
emanuele
2018-02-14 09:48:24
Ottimo e funzionante! E se volessi metterlo prima di un determinato campo?
CODEPLUS ADMIN
2018-02-15 10:50:21
Buongiorno Emanuele, In questo caso dovresti inserire il tutto non alla fine dell'array ma prima del campo che ti interssa e potresti farlo nel seguente modo:

add_filter( 'woocommerce_billing_fields' , 'add_billing_field_piva' );

 function add_billing_field_piva( $fields ) {
 $new_order_fields = array();

 foreach($fields as $key => $value){

 	if($key == 'billing_city') {
 			$new_order_fields['billing_piva'] = array(
 			'label' => __('Partita Iva', 'woocommerce'),
 			'placeholder' => _x('Partita iva', 'placeholder', 'woocommerce'),
 			'required' => true,
 			'class' => array('form-row-wide'),
 			'show' => true
 			);
 		}

 	 $new_order_fields[$key] = $value;
 }
 return $new_order_fields;
 }

Nell'esempio lo inserisco prima del campo città. Devi sostituire quindi 'billing_city' con il campo di tuo interesse.
Andrea
2018-02-28 19:23:29
Ciao, complimenti per la guida è stata moto utile, volevo chiederti solo una cosa come ti ha chiesto gia Giulio in che modo nel plugin woocommerce pdf invoices packing slips venga visualizzata la p.iva o il codice fiscale? da premettere che ho copiato il codice con cui gli hai risposto ma mi genera un errore.
Rey
2018-04-20 15:40:43
Grazie dello script., semplice e funzionale. Una domanda, se volessi mostrare la partita iva anche nella email d'ordine? Come posso fare? Grazie!
Anna
2018-09-24 12:07:53
Ottima guida, complimenti. Volevo chiederti se fosse possibile far visualizzare il campo solo in Italia, mentre per altre nazioni no. Grazie, attendo tue!
Stefano
2019-04-16 16:24:30
ciao. dovrei aggiungere nel form di registrazione 2 campi selezionabili Gruppo e ritiro merci ho fatto dei test utilizzando address_1 e address_2, il problema sorge quando in fase di conferma ordine mi da errore (inserirre un indirizzo valido) come posso risolvere? Grazie
Roberta
2021-04-19 17:34:51
Ciao, il post è un po' vecchio ma provo a farti comunque la domanda. E' possibile fare comparire questo campo in back-office, oltre che nella pagina di dettaglio dell'ordine anche nella pagina di dettaglio dell'utente insieme a tutti gli altri dati di fatturazione? Grazie mille
Luca russo
2021-04-21 11:11:33
Ciao, grazie per l'articolo, come faccio però a farli apparire nella mail di riepilogo ordine ? Grazie.

Lascia un commento: