Implementierung einer benutzerdefinierten Passwortüberprüfung in WPForms

Möchten Sie eine strenge Passwortrichtlinie in Ihren WPForms durchsetzen, die eine Kombination aus Großbuchstaben, Kleinbuchstaben, Zahlen und Symbolen erfordert? Während WPForms "eingebauten Strong Password Option nicht streng diese Anforderungen umzusetzen, können Sie dies mit einem benutzerdefinierten Code-Snippet zu erreichen.

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

Hinzufügen des Codeschnipsels

Um die benutzerdefinierte Passwortüberprüfung zu implementieren, müssen Sie einen benutzerdefinierten Codeschnipsel zu Ihrer Website hinzufügen. Wenn Sie Hilfe beim Hinzufügen von benutzerdefiniertem Code benötigen, lesen Sie bitte unser Tutorial über Hinzufügen von Code-Snippets.

Fügen Sie den folgenden Codeschnipsel in Ihre Website ein:

/**
 * 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 speziellen Bedürfnisse anpassen:

  1. Feld-ID: Ersetzen Sie 100 im if ( $field_id == 100 && $field['type'] === 'password' ) { Zeile mit der tatsächlichen ID Ihres Kennwortfeldes. Um Ihre Feld-ID zu finden, lesen Sie bitte unseren Leitfaden unter wie man Feld-IDs findet.
  2. Fehlermeldung: Sie können die Fehlermeldung anpassen, indem Sie den Text im Feld esc_html__() Funktion.
  3. Passwort-Anforderungen: Wenn Sie die Kennwortanforderungen ändern möchten, können Sie die regulären Ausdrücke in der preg_match() Funktionen oder Hinzufügen/Entfernen von Prüfungen nach Bedarf.

Nachdem Sie das Snippet hinzugefügt haben, sollten Sie Ihr Formular gründlich testen, um sicherzustellen, dass die Kennwortvalidierung wie erwartet funktioniert. Versuchen Sie, das Formular mit verschiedenen Kennwortkombinationen zu übermitteln, um zu überprüfen, ob die benutzerdefinierte Validierung korrekt durchgesetzt wird.

Und das war's! Sie haben nun eine benutzerdefinierte Passwortvalidierung in Ihre WPForms implementiert. Dadurch wird sichergestellt, dass Benutzer sichere Passwörter erstellen, die Ihren spezifischen Anforderungen entsprechen.

Möchten Sie mehr über die Validierungsmeldungen erfahren, die in Ihren Formularen erscheinen? In unserem Tutorial zum Ändern von Validierungsmeldungen finden Sie weitere Details.