Implementierung benutzerdefinierter Passwortvalidierung in WPForms

Möchten Sie in Ihren WPForms eine strenge Passwortrichtlinie erzwingen, die eine Kombination aus Großbuchstaben, Kleinbuchstaben, Zahlen und Symbolen erfordert? Während die integrierte Option „Starkes Passwort“ von WPForms diese Anforderungen nicht strikt umsetzt, können Sie dies mit einem benutzerdefinierten Code-Snippet erreichen.

In diesem Tutorial zeigen wir Ihnen, wie Sie benutzerdefinierte Passwortvalidierung zu Ihren WPForms hinzufügen.

Hinzufügen des Code-Snippets

Um eine benutzerdefinierte Passwortvalidierung zu implementieren, müssen Sie Ihrer Website einen benutzerdefinierten Code-Snippet hinzufügen. Wenn Sie Hilfe beim Hinzufügen von benutzerdefiniertem Code benötigen, lesen Sie bitte unser Tutorial zum ThemaHinzufügen von Code-Snippets.

Fügen Sie Ihrer Website den folgenden Code-Snippet hinzu:

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

Anpassen des Snippets

Sie können dieses Snippet an Ihre spezifischen Bedürfnisse anpassen:

  1. Feld-ID: Ersetzen Sie 100 in der Zeile if ( $field_id == 100 && $field['type'] === 'password' ) { durch die tatsächliche ID Ihres Passwortfelds. Um Ihre Feld-ID zu finden, lesen Sie bitte unseren Leitfaden zum Thema Finden von Feld-IDs.
  2. Fehlermeldung: Sie können die Fehlermeldung anpassen, indem Sie den Text in der Funktion esc_html__() ändern.
  3. Passwortanforderungen: Wenn Sie die Passwortanforderungen ändern möchten, können Sie die regulären Ausdrücke in den preg_match()-Funktionen ändern oder nach Bedarf Prüfungen hinzufügen/entfernen.

Nachdem Sie das Snippet hinzugefügt haben, testen Sie Ihr Formular gründlich, um sicherzustellen, dass die Passwortvalidierung wie erwartet funktioniert. Versuchen Sie, das Formular mit verschiedenen Passwortkombinationen einzureichen, um zu überprüfen, ob die benutzerdefinierte Validierung korrekt erzwungen wird.

Und das ist alles! Sie haben jetzt eine benutzerdefinierte Passwortvalidierung in Ihren WPForms implementiert. Dies stellt sicher, dass Benutzer starke Passwörter erstellen, die Ihren spezifischen Anforderungen entsprechen.

Möchten Sie mehr über die Validierungsmeldungen erfahren, die in Ihren Formularen angezeigt werden? Lesen Sie unser Tutorial zum Thema Ändern von Validierungsmeldungen für weitere Details.