Attention !

Cet article contient du code PHP et est destiné aux développeurs. Nous fournissons ce code à titre de courtoisie, mais nous n'offrons pas de support pour les personnalisations de code ou le développement tiers.

Pour obtenir de l'aide supplémentaire, veuillez consulter le tutoriel de WPBeginner sur l'ajout de code personnalisé.

Ignorer

Comment modifier les messages de validation pour le module complémentaire d'inscription d'utilisateurs

Souhaitez-vous personnaliser les messages d'erreur qui apparaissent lors de l'inscription d'un utilisateur ? WPForms vous permet de créer des messages plus utiles comme « Nom d'utilisateur déjà existant » ou « E-mail déjà existant » pour guider vos visiteurs tout au long du processus d'inscription.

Ce guide vous montrera comment personnaliser ces messages de validation à l'aide de PHP.

Configuration de votre formulaire d'inscription

Tout d'abord, assurez-vous d'avoir installé le module complémentaire d'inscription d'utilisateurs pour WPForms. Ce module complémentaire fournit deux modèles prédéfinis : Formulaire de connexion d'utilisateur et Formulaire d'inscription d'utilisateur. Puisque nous nous concentrons sur les messages d'inscription, créez un nouveau formulaire en utilisant le modèle d'inscription 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 d'utilisateurs.

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

Modification des messages de validation

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

Si vous ne savez pas comment ajouter du code personnalisé, veuillez consulter notre guide sur la manière d'ajouter des extraits de code à votre site.

Message « Nom d'utilisateur déjà existant »

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

Message « E-mail déjà existant »

Le message par défaut est Un utilisateur avec cet e-mail 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 « 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. Mot de passe oublié ? Voici comment le personnaliser avec un lien de réinitialisation de 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 );

Lors de l'ajout d'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é de réinitialisation de mot de passe intégrée à WordPress.

Messages personnalisés du formulaire de connexion

Vous pouvez également personnaliser les messages du formulaire de connexion d'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 );

Si vous utilisez le modèle de réinitialisation de mot de passe et que vous souhaitez modifier le message d'erreur qui apparaît lorsqu'un utilisateur ouvre un lien de réinitialisation invalide ou expiré, vous pouvez utiliser l'extrait ci-dessous.

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

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'ID du formulaire. Si vous avez besoin d'aide pour trouver vos ID de formulaire, consultez notre guide sur la façon de trouver les ID de formulaire et de champ.

/**
 * 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, le PHP est exécuté dans l'ordre dans lequel les extraits sont ajoutés ou dans l'ordre de priorité défini sur la fonction. Si vous avez ajouté l'extrait wpforms_user_registration_username_exists en premier sur votre site, une fois le formulaire soumis, il exécutera vos extraits dans l'ordre où ils ont été ajoutés et affichera le message pour le premier extrait qui échoue.

Et voilà tout ce dont vous avez besoin pour ajouter des messages de validation supplémentaires pour le module complémentaire d'inscription d'utilisateurs. Souhaitez-vous connecter automatiquement vos utilisateurs une fois qu'ils ont terminé leur inscription ? Consultez notre guide sur comment connecter automatiquement les utilisateurs après l'inscription ou découvrez comment ajouter des champs de métadonnées personnalisés pour les utilisateurs aux formulaires d'inscription.

Q : Puis-je modifier le message de confirmation affiché après qu'un utilisateur a réinitialisé son mot de passe ?

Oui. Si vous utilisez le modèle Réinitialisation du mot de passe et que vous souhaitez personnaliser le message de confirmation qui apparaît après qu'un utilisateur a réinitialisé son mot de passe avec succès, vous pouvez utiliser l'extrait ci-dessous.

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

Filtres de référence