Mise en place d'une validation personnalisée du mot de passe dans WPForms

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

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

Ajout de l'extrait de code

Pour mettre en œuvre la validation personnalisée du mot de passe, vous devez ajouter un extrait de code personnalisé à votre site. Si vous avez besoin d'aide pour ajouter du code personnalisé, veuillez consulter notre tutoriel sur l'ajout d'extraits de code. l'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 l'adapter à vos besoins spécifiques :

  1. ID du champ: Remplacer 100 dans le if ( $field_id == 100 && $field['type'] === 'password' ) { avec l'identifiant réel de votre champ de mot de passe. Pour trouver l'identifiant de votre champ, veuillez consulter notre guide sur l'identification des champs de mots de passe. comment trouver les identifiants des champs.
  2. Message d'erreur: Vous pouvez personnaliser le message d'erreur en modifiant le texte dans le champ esc_html__() fonction.
  3. Exigences en matière de mot de passe: Si vous souhaitez modifier les exigences en matière de mot de passe, vous pouvez modifier les expressions régulières dans le fichier preg_match() ou ajouter/supprimer des chèques si nécessaire.

Après avoir ajouté le snippet, veillez à 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 appliquée correctement.

Et c'est tout ! Vous avez maintenant mis en place une validation de mot de passe personnalisée dans vos WPForms. Cela permettra de s'assurer que les utilisateurs créent des mots de passe forts qui répondent à vos besoins spécifiques.

Vous souhaitez 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.