Riassunto AI
Desideri personalizzare i messaggi di errore che appaiono durante la registrazione dell'utente? WPForms ti consente di creare messaggi più utili come "Nome utente già esistente" o "Email già esistente" per guidare i tuoi visitatori attraverso il processo di registrazione.
Questa guida ti mostrerà come personalizzare questi messaggi di convalida utilizzando PHP.
Configurazione del modulo di registrazione
Innanzitutto, assicurati di aver installato l'addon Registrazione Utente per WPForms. Questo addon fornisce due modelli predefiniti: Modulo di accesso utente e Modulo di registrazione utente. Poiché ci concentriamo sui messaggi di registrazione, crea un nuovo modulo utilizzando il modello Registrazione Utente.
Questi moduli possono visualizzare diversi tipi di messaggi di convalida per aiutare a guidare i tuoi utenti. Personalizziamo ogni tipo di messaggio.
Modifica dei messaggi di convalida
Per modificare i messaggi di convalida, dovrai aggiungere uno degli snippet seguenti al tuo sito.
Se non sei sicuro di come aggiungere codice personalizzato, consulta la nostra guida su come aggiungere snippet di codice al tuo sito.
Messaggio nome utente già esistente
Il messaggio predefinito è Esiste già un utente con questo nome utente. 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 email già esistente
Il messaggio predefinito è Esiste già un utente con questa email. 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 password errata
Il messaggio predefinito è Errore: la password inserita per il nome utente non è corretta. Hai dimenticato la password? Ecco come personalizzarlo con un link di reimpostazione 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 per il modulo di accesso
Puoi anche personalizzare i messaggi per il modulo di accesso 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 );
Messaggio link di reimpostazione password non valido o scaduto
Se stai utilizzando il modello di reimpostazione password e desideri modificare il messaggio di errore che appare quando un utente apre un link di reimpostazione non valido o scaduto, puoi utilizzare lo snippet seguente.
/**
* Customize the error message shown on the WPForms Password Reset form
* when the reset link is invalid or expired.
*
* @link https://wpforms.com/developers/change-validation-messages-for-user-registration-addon/
*
* @param string $message The default error message.
* @return string
*/
function wpf_custom_password_reset_invalid_link_message( $message ) {
return wp_kses(
__( '<strong>Error:</strong> Your password reset link is invalid or has expired. Please request a new link below.', 'text-domain' ),
[ 'strong' => [] ]
);
}
add_filter( 'wpforms_user_registration_frontend_reset_invalid_link_message', 'wpf_custom_password_reset_invalid_link_message', 10, 1 );
Messaggi di errore specifici del modulo
Puoi impostare messaggi di errore diversi per moduli diversi. Ecco come personalizzare i messaggi in base all'ID del modulo. Se hai bisogno di aiuto per trovare i tuoi ID modulo, consulta 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, PHP viene eseguito nell'ordine in cui vengono aggiunti gli snippet o nell'ordine di priorità impostato sulla funzione. Se hai aggiunto per primo lo snippet wpforms_user_registration_username_exists sul tuo sito, una volta inviato il modulo, eseguirà i tuoi snippet nell'ordine in cui sono stati aggiunti e visualizzerà il messaggio per il primo snippet che fallisce.
E questo è tutto ciò che devi aggiungere per aggiungere messaggi di convalida aggiuntivi per il componente aggiuntivo Registrazione utente. Desideri accedere automaticamente ai tuoi utenti una volta completata la registrazione? Dai un'occhiata alla nostra guida su come accedere automaticamente agli utenti dopo la registrazione o scopri come aggiungere campi personalizzati per i metadati utente ai moduli di registrazione.
D: Posso cambiare il messaggio di conferma mostrato dopo che un utente reimposta la password?
Sì. Se stai utilizzando il modello Reimposta password e desideri personalizzare il messaggio di conferma che appare dopo che un utente ha reimpostato correttamente la password, puoi utilizzare lo snippet seguente.
function wpf_custom_reset_confirmation_message( $message, $form_data ) {
// Modify the confirmation message based on the presence of a specific field type for grabbing the username or email.
if ( true === wpforms_has_field_type( 'text', $form_data ) ) {
$message = esc_html__( 'Please check your email to reset your password.', 'wpforms' );
} else {
$message = esc_html__( 'Your new password has been set successfully!', 'wpforms' );
}
return $message;
}
add_filter( 'wpforms_frontend_confirmation_message', 'wpf_custom_reset_confirmation_message', 10, 2 );