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

Lascia un commento: