Volete personalizzare i messaggi di errore che appaiono durante la registrazione degli utenti? WPForms vi permette di creare messaggi più utili, come "Nome utente già esistente" o "Email già esistente", per guidare i vostri visitatori nel processo di registrazione.
Questa guida mostra come personalizzare questi messaggi di convalida utilizzando PHP.
Impostazione del modulo di registrazione
Per prima cosa, assicurarsi di aver installato l'addon Registrazione utente per WPForms. Questo addon fornisce due modelli predefiniti: Modulo di accesso utente e Modulo di registrazione utente. Dal momento che ci stiamo concentrando sui messaggi di registrazione, creiamo un nuovo modulo utilizzando il modello Registrazione utente.
Questi moduli possono visualizzare diversi tipi di messaggi di convalida per guidare gli utenti. Personalizziamo ogni tipo di messaggio.
Modifica dei messaggi di convalida
Per modificare i messaggi di convalida, è necessario aggiungere al sito uno degli snippet riportati di seguito.
Se non siete sicuri di come aggiungere codice personalizzato, consultate la nostra guida su come aggiungere snippet di codice al vostro sito.
Messaggio "Nome utente già esistente
Il messaggio predefinito è Un utente con quel nome utente esiste già. Ecco come personalizzarlo e aggiungere un link di accesso:
/**
* Change the User Registration Form error message for the already existing username
*
* @link https://wpforms.com/developers/change-validation-messages-for-user-registration-addon/
*/
function wpf_dev_user_registration_username_exists( $msg ) {
// This is the message that would appear
$msg = __( 'A user with that username already exists. Please <a href="http://yourdomain/wp-admin/">log in here</a> to your account.', 'text-domain' );
return $msg;
}
add_filter( 'wpforms_user_registration_process_registration_process_username_exists_error_message', 'wpf_dev_user_registration_username_exists', 10, 1 );
Messaggio e-mail già esistente
Il messaggio predefinito è Un utente con quell'e-mail esiste già. Ecco come personalizzarlo con un link di accesso:
/**
* Change the User Registration Form error message for already existing email address
*
* @link https://wpforms.com/developers/change-validation-messages-for-user-registration-addon/
*/
function wpf_dev_user_registration_email_exists( $msg ) {
// This is the message that would appear
$msg = __( 'A user with that username already exists. Please <a href="http://yourdomain/wp-admin/">log in here</a> to your account.', 'text-domain' );
return $msg;
}
add_filter( 'wpforms_user_registration_process_registration_process_user_email_exists_error_message', 'wpf_dev_user_registration_email_exists', 10, 1 );
Messaggio di password errata
Il messaggio predefinito è Errore: La password inserita per il nome utente non è corretta. Avete perso la password? Ecco come personalizzarla con un link per la reimpostazione della password:
/**
* Password is incorrect
*
* @link https://wpforms.com/developers/change-validation-messages-for-user-registration-addon/
*/
function wpf_dev_user_registration_login_error( $msg ) {
// This is the message that would appear in the email
$msg = __('Sorry something went wrong! ', 'text-domain');
$msg .= '<a href=\\"http://www.website.com\\">';
$msg .= __('Would you like to reset your password?', 'text-domain');
$msg .= '</a>';
return $msg;
}
add_filter( 'wpforms_user_registration_process_login_process_wp_error_message', 'wpf_dev_user_registration_login_error', 10, 1 );
Messaggi personalizzati del modulo di accesso
È possibile personalizzare i messaggi anche per il modulo di accesso dell'utente. Ecco come creare un messaggio generico per tutti i moduli:
/**
* Change the User Login Form error message
*
* @link https://wpforms.com/developers/change-validation-messages-for-user-registration-addon/
*/
function wpf_dev_user_registration_login_error($msg) {
// This is the message that would appear in the email
$msg = __( 'Sorry something went wrong! ', 'text-domain' );
$msg .= '<a href="'.esc_url( wp_lostpassword_url() ).'">';
$msg .= __( 'Would you like to reset your password?', 'text-domain' );
$msg .= '</a>';
return $msg;
}
add_filter( 'wpforms_user_registration_process_login_process_wp_error_message', 'wpf_dev_user_registration_login_error', 10, 2 );
Messaggi di errore specifici del modulo
È possibile impostare messaggi di errore diversi per i vari moduli. Ecco come personalizzare i messaggi in base all'ID del modulo. Se avete bisogno di aiuto per trovare gli ID dei moduli, consultate la nostra guida su come trovare gli ID dei moduli e dei campi.
/**
* Change the User Login Form error message specific per form
*
* @link https://wpforms.com/developers/change-validation-messages-for-user-registration-addon/
*/
function wpf_dev_form_login_errors( $fields, $entry, $form_data ) {
$form_id = (int) $form_data[ 'id' ];
add_filter(
'wpforms_user_registration_login_error',
function ( $message, $code ) use ( $form_id ) {
// This if for form ID 525
if ( $form_id === 525) {
// This is the specific message for form ID 525
return __( 'The error message here for form #525', 'text-domain' );
}
// This is for form ID 526
if ( $form_id === 526) {
// This is the specific message for form ID 526
return __( 'The error message here for form #526', 'text-domain' );
}
return $message;
},
10,
2
);
}
add_action( 'wpforms_process', 'wpf_dev_form_login_errors', 9, 3 );
Domande frequenti
D: Posso mostrare tutti i messaggi di errore contemporaneamente?
R: No, il PHP viene eseguito nell'ordine in cui sono stati aggiunti gli snippet o nell'ordine di priorità impostato nella funzione. Se si è aggiunto lo snippet wpforms_user_registration_username_exists per primo sul sito, una volta inviato il modulo, verrà eseguito lo snippet nell'ordine in cui è stato aggiunto e verrà visualizzato il messaggio per il primo snippet che fallisce.
Questo è tutto ciò che serve per aggiungere ulteriori messaggi di convalida per il componente aggiuntivo Registrazione utente. Volete registrare automaticamente i vostri utenti una volta completata la registrazione? Consultate la nostra guida su come registrare automaticamente gli utenti dopo la registrazione o scoprite come aggiungere meta-campi utente personalizzati ai moduli di registrazione.