Résumé IA
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.
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 );
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 );
Message « Lien de réinitialisation de mot de passe invalide ou expiré »
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 );