Bego Mario Garde

Contact Form 7: von zwei Feldern nur eines erforderlich

Wenn jemand mein Kontaktformular ausfüllt, soll zusätzlich zum Namen wenigstens die E-Mail-Adresse oder Telefonnummer angeben werden. Nur ein Feld ist erforderlich. Wie mache ich das?

Interessantes Thema, hatte ich mich bisher nicht mit beschäftigt. 🙂

Nach ein wenig Recherche bin ich auf diesen Beitrag gestoßen:
https://stackoverflow.com/questions/52408192/accept-either-one-of-two-fields-in-contact-form-7-php-wordpress

Das scheint prima zu klappen … und zwar so:

Contact Form 7 installieren.

Neues Formular aufsetzen:



Die Angabe deiner E-Mail-Adresse oder Telefonnummer ist erforderlich:








[submit "Absenden"]

Achte darauf, dass das „erforderlich“-Sternchen bei [email your-email] und [text your-telephone] entfällt.

Plugin Code Snippets installieren und ein neues Code-Schnipsel hinzufügen:

<?php
add_filter( 'wpcf7_validate', 'wpq_validate' );

function wpq_validate( $result ) {

$form = WPCF7_Submission::get_instance();
$email = $form->get_posted_data( 'your-email' );
$telephone = $form->get_posted_data( 'your-telephone' );
$errormsg = 'Die Eingabe eines Feldes ist erforderlich.';

if ( empty( $email ) && empty( $telephone ) ) {
$result->invalidate( 'your-email', $errormsg );
$result->invalidate( 'your-telephone', $errormsg );
}
return $result;

}

Nicht vergessen, das Code-Schnipsel zur Ausführung „Nur auf öffentlicher Seite“ zu aktivieren.

Vielen Dank an tobiasg für das Teilen seiner Lösung.

Ergebnis ist, dass unter den Eingabefeldern die Fehlermeldung ausgegeben wird, sobald keines der beiden Felder ausgefüllt wurde. Wird zumindest ein Feld ausgefüllt, wird das Formular ohne weitere Hinweise oder Fehlermeldungen abgeschickt.


Beitrag veröffentlicht

in

Schlagwörter:

Kommentare

3 Antworten zu „Contact Form 7: von zwei Feldern nur eines erforderlich“

    1. Bego Mario Garde

      Danke für den Hinweis, Torsten. Der Link war tatsächlich falsch, ist korrigiert.

  1. Bego Mario Garde

    Ich bekam heute noch den Hinweis, dass im E-Mail-Formular für die Weiterleitung der Kontaktanfrage ein Validierungsfehler für den Zusätzlichen Header angezeigt wird: „Reply-To: [your-email]“ erzeugt einen Fehler, wenn das E-Mail-Feld nicht ausgefüllt wird. Darauf wird auch in der Dokumentation von Contact Form 7 hingewiesen.
    In diesem Fall ist es wahrscheinlich besser, den zusätzlichen Header einfach wegzulassen. Gibt der Absender seine E-Mail-Adresse an, wird sie in der weitergeleiteten Nachricht mit der Zeile „From: [your-name] “ ohnehin angezeigt.

Diese Website ist werbefrei, unabhängig und ohne kommerzielle Absichten.

Für kostenlosen Support wende dich bitte an das deutschsprachige WordPress-Support-Forum.

Code auf dieser Website wurde unter der General Public License GPLv2 veröffentlicht.

© Bego Mario Garde 2016–2024