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:
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.
