Implémentation d'une validation personnalisée de mot de passe dans WPForms

Souhaitez-vous imposer une politique de mot de passe stricte dans vos formulaires WPForms qui exige une combinaison de lettres majuscules, de lettres minuscules, de chiffres et de symboles ? Bien que l’option Mot de passe fort intégrée à WPForms n’implémente pas strictement ces exigences, vous pouvez y parvenir à l’aide d’un extrait de code personnalisé.

Dans ce tutoriel, nous vous montrerons comment ajouter une validation de mot de passe personnalisée à vos formulaires WPForms.

Ajout de l’extrait de code

Pour implémenter une validation de mot de passe personnalisée, vous devrez ajouter un extrait de code personnalisé à votre site. Si vous avez besoin d’aide pour ajouter du code personnalisé, veuillez consulter notre tutoriel surl’ajout d’extraits de code.

Ajoutez l’extrait de code suivant à votre site :

/**
 * Implement Custom Password Validation.
 *
 * @link https://wpforms.com/developers/implementing-custom-password-validation-in-wpforms
 *
 */
add_action('wpforms_process', 'custom_password_validation', 10, 3);
function custom_password_validation($fields, $entry, $form_data) {
    foreach ( $fields as $field_id => $field ) {
        // Check if this is the correct field (replace 100 with your actual field ID) and it's a password field
        if ( $field_id == 100 && $field['type'] === 'password' ) {
            $password = $field['value'];
            
            // Define the password validation pattern
            $uppercase = preg_match('@[A-Z]@', $password);
            $lowercase = preg_match('@[a-z]@', $password);
            $number    = preg_match('@[0-9]@', $password);
            $symbol    = preg_match('@[\W]@', $password);

            // Check if password meets all requirements
            if ( !$uppercase || !$lowercase || !$number || !$symbol ) {
                wpforms()->process->errors[$form_data['id']][$field_id] = esc_html__( 'Password must include at least one uppercase letter, one lowercase letter, one number, and one symbol.', 'plugin-domain' );
            }
        }
    }
}

Personnalisation de l'extrait

Vous pouvez modifier cet extrait pour répondre à vos besoins spécifiques :

  1. ID du champ : Remplacez 100 dans la ligne if ( $field_id == 100 && $field['type'] === 'password' ) { par l’ID réel de votre champ de mot de passe. Pour trouver l’ID de votre champ, veuillez consulter notre guide sur comment trouver les ID de champ.
  2. Message d’erreur : Vous pouvez personnaliser le message d’erreur en modifiant le texte de la fonction esc_html__().
  3. Exigences du mot de passe : Si vous souhaitez modifier les exigences du mot de passe, vous pouvez modifier les expressions régulières dans les fonctions preg_match() ou ajouter/supprimer des vérifications selon vos besoins.

Après avoir ajouté l’extrait, assurez-vous de tester minutieusement votre formulaire pour vous assurer que la validation du mot de passe fonctionne comme prévu. Essayez de soumettre le formulaire avec différentes combinaisons de mots de passe pour vérifier que la validation personnalisée est correctement appliquée.

Et voilà ! Vous avez maintenant implémenté une validation de mot de passe personnalisée dans vos formulaires WPForms. Cela garantira que les utilisateurs créent des mots de passe forts qui répondent à vos exigences spécifiques.

Souhaitez-vous en savoir plus sur les messages de validation qui apparaissent dans vos formulaires ? Consultez notre tutoriel sur la modification des messages de validation pour plus de détails.