Come aggiungere o rimuovere campi nel checkout di Woocommerce

Come aggiungere o rimuovere campi nel checkout di Woocommerce

Woocommerce crea per noi un checkout già completo con numerosi input per raccogliere le informazioni dell'acquirente.

Molto spesso i campi che a noi servono non coincidono con quelli standard di Woocommerce. Ad esempio potrebbe essere che il campo "ragione sociale" non sia di nostro interesse oppure che dobbiamo aggiugere il campo partita iva e codice fiscale, come abbiamo già visto in questo articolo.

Per fare queste operazioni dobbiamo andare a metter mano al codice del nostro tema/plugin modificando e sovrascrivendo alcune funzioni di woocommerce.

Prima di compiere l'operazione dobbiamo sapere che Woocommerce divide i campi del checkout in 2 categorie:

  • Quelli che riguardano i dati personali dell'acquirente che vengono definiti billing field.
  • Quelli che riguardano i dati sulla spedizione che vengono definiti shipping field.

I Billing Field comprendono : nome, cognome, ragione sociale, indirizzo, città, codice postale, stato, email e telefono.

I Shipping Field comprendono: nome, cognome, ragione sociale, indirizzo, città, codice postale, stato. Solitamente questi campi vengono compilati solo se il destinatario dell'acquisto è differente dall'acquirente.

Di seguito il codice da aggiungere al file functions.php del nostro tema per aggiungere campi al checkout di woocommerce e per rimuovere i campi.

Come aggiungere campi nel checkout di Woocommerce

Il codice da inserire è il seguente:


add_filter( 'woocommerce_billing_fields' , 'add_billing_custom_field' );

function add_billing_custom_field( $fields ) {
$fields['custom_field'] = array(
'type' => 'text',
'label' => __('Custom Field', 'woocommerce'),
'placeholder' => _x('Custom Field', 'placeholder', 'woocommerce'),
'required' => true,
'class' => array('custom-class'),
'show' => true
);
return $fields;
}

In questo caso abbiamo aggiunto il campo alla sezione billing fields, nel caso volessimo aggiungerlo alla sezione shipping fields dobbiamo sostituire : woocommerce_billing_fields con woocommerce_shipping_fields.

Noi abbiamo inserito un campo testo nel caso volessimo altri tipi di campi possiamo sostituire il type con textarea, password o select.

Come rimuovere campi nel checkout di Woocommerce

Se vogliamo invece rimuovere i campi dal nostro checkout.


add_filter( 'woocommerce_billing_fields' , 'remove_billing_field' );

function remove_billing_field( $fields ) {
unset($fields['billing_company']);
return $fields;
}

In questo caso abbiamo eliminato il campo billing_company ovvero ragione sociale dal checkout di Woocommerce.

Se avete altre domanda su come aggiungere o rimuovere dei campi dal checkout di woocommerce commenteate pure qui sotto.

Commenti

Francesco
2017-12-19 17:39:36
Salve se volessi eliminare il campo Password? e il campo stato? Grazie e buon lavoro
CODEPLUS ADMIN
2017-12-21 08:46:38
Ciao Francesco, Per il campo password lo puoi rimuovere direttamente dal pannello di Woocommerce, su "Impostazioni"->"Account"-> rimuovi il flag da "Abilita la registrazione al Checkout". Per quanto riguarda il campo stato invece puoi utilizzare il codice qui sotto:

add_filter( 'woocommerce_billing_fields' , 'remove_billing_field' );

function remove_billing_field( $fields ) {
unset($fields['billing_country']);
return $fields;
}

Fammi sapere se sei riuscito a risolvere.
Massimiliano
2018-01-16 08:41:30
Buongiorno! Sarebbe possibile aggiungere il campo "Data di nascita" al checkout? Come dovrei fare?
CODEPLUS ADMIN
2018-01-20 14:32:04
Buongiorno Massimiliano.
Purtroppo woocommerce permette l'inserimento di input di tipo: text, textarea, password, select.
Quindi non di tipo data. La soluzione in questo caso è di aggiungere un campo di tipo testo aggiungendo una classe all'input per collegarlo al datepicker di jQuery.
Potresti farlo in questo modo:

add_filter( 'woocommerce_billing_fields' , 'add_billing_custom_field' );

function add_billing_custom_field( $fields ) {
$fields['custom_field'] = array(
'type' => 'text',
'label' => __('Custom Field', 'woocommerce'),
'placeholder' => _x('Data di nascita', 'placeholder', 'woocommerce'),
'required' => true,
'input_class' => array('datepicker-class'),
'show' => true
);
return $fields;
}

Manuela
2018-05-23 14:48:31
Buonasera. Io vorrei cambiare la dicitura "fatturazione" in quanto non emettiamo fattura e quindi questa voce confonde anche se in tutto il negozio è specificato. Sarebbe possibile?
Luciano De Faveri
2018-06-08 19:16:58
Ho la necessità di aggiungere il capo E-Mail nello spazio Spedizione. Il tuo codice finzione e lo visulizza MA non me lo fa salvare ovvero nel relatoria che mostra alla fine dell'acquisto, nel lato spedizione non mostra l'indirizzo e-mail. Questo è il codice usato //Campo aggiuntivo spedizioni Woocommerce add_filter( 'woocommerce_shipping_fields' , 'add_shipping_custom_field' ); function add_shipping_custom_field( $fields ) { $fields['email'] = array( 'type' => 'text', 'label' => __('E-mail', 'woocommerce'), 'placeholder' => _x('E-mail', 'placeholder', 'woocommerce'), 'required' => true, 'class' => array('custom-class'), 'show' => true ); return $fields; } Volevo inoltre chiederti se è possibile salvare, per poi richiamarli per una campagna di marketing per esempio, i dati di spedizione o se mi sai consigliare un plugin per questo. Grazie
Paolo
2018-11-23 07:07:26
Buongiorno, vorrei eliminare il campo "indirizzo di fatturazione" è possibile?. grazie e buona giornata
Stefano Baraldo
2018-12-04 12:03:50
È possibile limitare i caratteri inseriti in un campo nei form fatturazione e spedizione? Alcuni corrieri non permettono di aggiungere indirizzi o nomi troppo lunghi, quindi sarebbe utile poter limitare i campi di inserimento per evitare indirizzi tipo: "via del mare 11, interno 6 primo piano citofonare se possibile campanello giallo MARIO ROSSI" cosa che purtroppo talvolta succede. Grazie.
Giovanni
2019-01-08 11:31:33
Salve, vorrei inserire 2 nuovi campi sia in fatturazione che spedizione relativi alla fatturazione elettronica ossia: Pec e codice destinatario, rendendo obbligatorio almeno uno dei due (o uno o l'altro). Si può fare? E se si, come? Grazie!
Davide
2019-02-05 07:57:05
Sto cercando di aggiungere quattro campi alla sezione indirizzi de "il mio account". Ho seguito le indicazioni e creato la funzione: add_action('woocommerce_billing_fields', function($fields) { $fields['billing']['billing_fiscalcode'] = array( 'type' => 'text', 'placeholder' => _x('Codice Fiscale', 'placeholder', 'woocommerce'), 'label' => __('Codice Fiscale per fattura', 'fatt-24'), // edited label Davide Iandoli 24.01.2019 'required' => get_flag(ABK_FISCODE_REQ), 'class' => array('form-row-wide'), 'show' => true ); $fields['billing']['billing_vatcode'] = array( 'type' => 'text', 'placeholder' => _x('Partita IVA', 'placeholder', 'woocommerce'), 'label' => __('Partita IVA / VAT per fattura', 'fatt-24'), // edited label Davide Iandoli 24.01.2019 'required' => get_flag(ABK_VATCODE_REQ), 'class' => array('form-row-wide'), 'show' => true ); $fields['billing']['billing_recipientcode'] = array( 'type' => 'text', 'placeholder' => _x('Codice Destinatario', 'placeholder', 'woocommerce'), 'label' => __('Codice destinatario', 'fatt-24'), 'class' => array('form-row-wide','inv_create_elecinvoice'), 'show' => true ); $fields['billing']['billing_pecaddress'] = array( 'type' => 'email', 'placeholder' => _x('Indirizzo PEC', 'placeholder', 'woocommerce'), 'label' => __('Indirizzo PEC', 'fatt-24'), 'validate' => array('email'), 'class' => array('form-row-wide','inv_create_elecinvoice'), // change field order in checkout - Davide Iandoli 22.01.2019 'show' => true ); return $fields; }); I quattro campo sono già nel checkout personalizzato del mio plugin (vi accedo tramite un file denominato hooks.php), tuttavia nella sezione il mio account non appaiono. Dov'è l'errore? Grazie Davide
ilaria
2019-03-01 15:17:54
Devo cambiare email su un sito ma non ci riesco perchè mi esce "nome visualizzato è un campo obbligatorio" in una parte della pagina in alto dove in realtà non c'è nessuno spazio per inserire questo "nome" quindi la mia domanda è posso togliere questo dato in modo che io possa cambiare email su questo sito? come posso fare?
Michele
2019-06-06 19:03:18
Buonasera e complimenti per l'ottimo lavoro! vorrei chiedervi come eliminare del tutto il campo della spedizione dal carrello? nel mio caso woocommerce serve per acquistare dei biglietti per un traghetto quindi una volta acquistata la merce non va spedita ma basta presentare la ricevuta d'acquisto fatta on line al botteghino. grazie in anticipo.
Alberto
2019-11-30 14:58:31
Ciao, se dovessi cancellare più campi billing field come posso fare? Facendo copia e incolla e cambiando ciò che devo eliminare mi da errore. Grazie
Luca
2020-03-28 08:40:14
Ciao Vorrei togliere solo il codice fiscale per i privati Uso plugin Woocommerce P.iva e Codice fiscale per Italia Grazie

Lascia un commento: