Zum Inhalt springen
Startseite » CF7 Snippets » CF7 als Login-Formular

CF7 als Login-Formular

Um Contact Form 7 (CF7) als Login-Formular zu verwenden, kannst du eine benutzerdefinierte Funktion erstellen, die das Formular verarbeitet und den Benutzer basierend auf den eingegebenen Anmeldeinformationen anmeldet. Hier ist eine Schritt-für-Schritt-Anleitung, wie du das umsetzen kannst:

Schritt 1: Erstellen des CF7-Formulars

Erstelle zunächst ein neues Formular in Contact Form 7 mit den folgenden Feldern:

[text* username placeholder "Benutzername"]
[password* password placeholder "Passwort"]
[submit "Anmelden"]

Schritt 2: PHP-Funktion zum Verarbeiten des Login-Vorgangs hinzufügen

Füge den folgenden Code in die functions.php deines Themes oder in ein benutzerdefiniertes Plugin ein, um das Formular zu verarbeiten und den Benutzer anzumelden:

function cf7_login_form_processing($cf7) {
    $submission = WPCF7_Submission::get_instance();

    if ($submission) {
        $posted_data = $submission->get_posted_data();

        // Prüfe, ob das richtige Formular gesendet wurde (ersetzt FORM_ID mit der ID deines Formulars)
        if ($cf7->id() == FORM_ID) {
            $username = sanitize_text_field($posted_data['username']);
            $password = sanitize_text_field($posted_data['password']);

            $creds = array(
                'user_login'    => $username,
                'user_password' => $password,
                'remember'      => true
            );

            $user = wp_signon($creds, false);

            if (is_wp_error($user)) {
                // Fehlermeldung anzeigen, wenn die Anmeldung fehlschlägt
                $submission->set_status('validation_failed');
                $submission->set_response('<div class="cf7-error">Anmeldung fehlgeschlagen: Benutzername oder Passwort ist falsch.</div>');
            } else {
                // Umleiten nach erfolgreicher Anmeldung
                wp_redirect(home_url());
                exit;
            }
        }
    }
}
add_action('wpcf7_before_send_mail', 'cf7_login_form_processing');

Schritt 3: Ersetzen der Formular-ID

Ersetze FORM_ID im obigen Code durch die tatsächliche ID deines CF7-Formulars. Diese findest du im Backend von WordPress unter Contact Form 7 bei der Übersicht der Formulare.

Schritt 4: Optionales Styling

Du kannst den folgenden CSS-Code hinzufügen, um Fehlermeldungen oder andere Benachrichtigungen zu stylen:

.cf7-error {
    color: red;
    font-weight: bold;
    margin: 10px 0;
}

Schritt 5: Verwendung des Formulars

Füge das Contact Form 7-Formular mithilfe des Shortcodes in eine Seite oder einen Beitrag ein:



    [password* login-password "Passwort"]


    Ersetze FORM_ID mit der tatsächlichen ID deines Formulars.

    Zusammenfassung

    Mit dieser Lösung kannst du Contact Form 7 als einfaches Login-Formular in WordPress verwenden. Die Benutzeranmeldedaten werden verarbeitet, und der Benutzer wird angemeldet oder erhält eine Fehlermeldung, wenn die Anmeldedaten ungültig sind. Nach erfolgreicher Anmeldung wird der Benutzer zur Startseite (oder einer anderen angegebenen URL) weitergeleitet.