WooCommerce al momento della registrazione permette di inserire pochissimi campi (di default), i più comuni sono l’email, lo username e la password.
D’altronde per una comune registrazione sono più che sufficienti, ma se volessimo inserire dei campi personalizzati (cosa che può servire per svariati motivi) dovremmo scrivere noi un codice oppure affidarci a dei plugin che permettono di estendere questa funzionalità.
In questo specifico articolo vedremo come inserire il campo “CONFERMA EMAIL”, nel caso volessimo che l’utente confermasse la propria email effettuando un doppio controllo. Questo perchè, può succedere, che l’utente causa errori di battitura digiti l’email sbagliata e nel momento in cui noi riceviamo l’ordine/registrazione, se l’email non è corretta non possiamo risalire alla persona.
Vediamo Step By Step come fare:
Fondamentale: Assicuriamoci di avere il tema child installato e attivato
La prima cosa e sicuramente la più importante è quella di verificare di avere un tema child installato; dato che andremo a modificare un file di WooCommerce, possiamo farlo in tutta tranquillità e al prossimo aggiornamento la nostra modifica non verrà sovrascritta.
Se avete bisogno di una guida per installare il tema child potete guardare direttamente qui.
- Colleghiamoci via ftp all’interno del nostro sito e rechiamoci all’interno del plugin WooC0mmerce in questo esatto percorso: wp-content/plugins/woocommerce/templates/myaccount/form-login.php.
- Qui è presente un file dal nome form-login.php, che contiene il form di registrazione, e dovremo farne una copia. Scarichiamolo e salviamolo sul desktop.
- Ora modifichiamo il file e aggiungiamo sotto alla riga 88 il seguente codice:
<!--AGGIUNGO CAMPO CONFERMA REGISTRAZIONE--> <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide"> <label for="confirm_reg_email"><?php esc_html_e( 'Conferma Indirizzo E-mail', 'woocommerce' ); ?> <span class="required">*</span></label> <input type="email" class="woocommerce-Input woocommerce-Input--text input-text" name="confirm_email" id="confirm_reg_email" autocomplete="email" value="<?php echo ( ! empty( $_POST['confirm_email'] ) ) ? esc_attr( wp_unslash( $_POST['confirm_email'] ) ) : ''; ?>" /><?php // @codingStandardsIgnoreLine ?> </p> <!--FINE CAMPO CONFERMA REGISTRAZIONE--> - Rechiamoci all’interno del nostro tema child e creiamo le cartelle che mancano, dobbiamo avere un percorso cosi: /wp-content/themes/il-vostro-tema-child/woocommerce/myaccount. Qui inseriamo il nostro file form-login.php aggiornato.

- Ora effettuiamo il controllo sul campo e verifichiamo se l’indirizzo email e quello di conferma coincidono. Inseriamo questo codice all’interno del file functions.php:
function aggiunta_conferma_registrazione_form_registrazione_woocommerce( $username, $email, $validation_errors ) { if ( !isset( $_POST['confirm_email'] ) ) { $validation_errors->add( 'confirm_email_error', __( '<strong>Error</strong>: Il campo Conferma E-mail è obbligatorio', 'woocommerce' ) ); } if ( isset( $_POST['confirm_email'] ) && $_POST['confirm_email'] !== $_POST['email'] ) { $validation_errors->add( 'confirm_email_error', __( '<strong>Error</strong>: Il campo non corrisponde', 'woocommerce' ) ); } return $validation_errors; } add_action( 'woocommerce_register_post', 'aggiunta_conferma_registrazione_form_registrazione_woocommerce', 10, 3 );
Il risultato dovrebbe essere il seguente:
Come funziona il codice?
La prima parte di codice serve semplicemente per inserire il campo Conferma Email.
Nella seconda parte del codice, l’ultima funziona, alla riga 4 viene effettuato il controllo della compilazione del campo. Se non viene compilato appare un messaggio di errore. Qui potete modificare il testo con uno personale.
Alla riga 8 viene effettuata la vera validazione, ovvero vengono controllati entrambi i campi (email e conferma e-mail) per vedere se corrispondono, in caso contrario appare un messaggio di errore. Qui potete modificare il testo con uno personale.
Avete soluzioni differenti? Commentate e discutiamone insieme!




