Come modificare i messaggi di convalida per l'addon di registrazione degli utenti

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.

Se avete bisogno di aiuto per creare il vostro modulo di registrazione, consultate la nostra guida sulla creazione di moduli di registrazione per gli utenti.

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 );

Quando si aggiungono gli URL in PHP, è necessario che siano preceduti da doppi slash. Inoltre, se si modifica l'URL di reimpostazione della password, gli utenti non saranno in grado di utilizzare la funzionalità di reimpostazione della password integrata in WordPress.

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.

Filtri di riferimento