Comment modifier les messages de validation pour l'addon d'enregistrement des utilisateurs

Souhaitez-vous personnaliser les messages d'erreur qui apparaissent lors de l'enregistrement d'un utilisateur ? WPForms vous permet de créer des messages plus utiles comme "Username Already Exists" ou "Email Already Exists" pour guider vos visiteurs à travers le processus d'enregistrement.

Ce guide vous montrera comment personnaliser ces messages de validation en utilisant PHP.

Mise en place du formulaire d'inscription

Tout d'abord, assurez-vous que vous avez installé le module complémentaire User Registration pour WPForms. Cet addon fournit deux modèles pré-faits : Formulaire de connexion de l'utilisateur et Formulaire d'enregistrement de l'utilisateur. Puisque nous nous concentrons sur les messages d'enregistrement, créez un nouveau formulaire en utilisant le modèle Enregistrement d'utilisateur.

Si vous avez besoin d'aide pour créer votre formulaire d'inscription, consultez notre guide sur la création de formulaires d'inscription pour les utilisateurs.

Ces formulaires peuvent afficher plusieurs types de messages de validation pour guider vos utilisateurs. Personnalisons chaque type de message.

Modification des messages de validation

Pour modifier les messages de validation, vous devez ajouter l'un des extraits ci-dessous à votre site.

Si vous ne savez pas comment ajouter du code personnalisé, consultez notre guide sur l'ajout d'extraits de code à votre site.

Message "Username Already Exists" (Le nom d'utilisateur existe déjà)

Le message par défaut est Un utilisateur avec ce nom d'utilisateur existe déjà. Voici comment le personnaliser et ajouter un lien de connexion :

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

L'email existe déjà Message

Le message par défaut est Un utilisateur avec cet email existe déjà. Voici comment le personnaliser avec un lien de connexion :

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

Message de mot de passe incorrect

Le message par défaut est Erreur : Le mot de passe que vous avez saisi pour le nom d'utilisateur est incorrect. Vous avez perdu votre mot de passe ? Voici comment le personnaliser avec un lien de réinitialisation du mot de passe :

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

Lorsque vous ajoutez des URL en PHP, vous devez les échapper avec des doubles barres obliques. De plus, si vous modifiez l'URL de réinitialisation du mot de passe, les utilisateurs ne pourront pas utiliser la fonctionnalité intégrée de réinitialisation du mot de passe de WordPress.

Messages personnalisés du formulaire de connexion

Vous pouvez également personnaliser les messages pour le formulaire de connexion de l'utilisateur. Voici comment créer un message générique pour tous les formulaires :

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

Messages d'erreur spécifiques au formulaire

Vous pouvez définir différents messages d'erreur pour différents formulaires. Voici comment personnaliser les messages en fonction de l'identifiant du formulaire. Si vous avez besoin d'aide pour trouver les identifiants de vos formulaires, consultez notre guide sur la recherche des identifiants de formulaires et de champs.

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

Questions fréquemment posées

Q : Puis-je afficher tous les messages d'erreur en même temps ?

R : Non, PHP est exécuté dans l'ordre dans lequel les snippets ont été ajoutés ou dans l'ordre de priorité défini dans la fonction. Si vous avez ajouté le snippet wpforms_user_registration_username_exists en premier sur votre site, une fois le formulaire soumis, il exécutera vos snippets dans l'ordre où ils ont été ajoutés et affichera le message pour le premier snippet qui échoue.

C'est tout ce dont vous avez besoin pour ajouter des messages de validation supplémentaires pour le module complémentaire User Registration. Souhaitez-vous connecter automatiquement vos utilisateurs une fois qu'ils ont terminé leur inscription ? Consultez notre guide sur la connexion automatique des utilisateurs après l'inscription ou apprenez comment ajouter des méta-champs d'utilisateur personnalisés aux formulaires d'inscription.

Filtres de référence