WordPress & Webwork

Fehlermeldungen von Contact Form 7 richtig verstehen

Mit einer kleinen Funktion wird Contact Form 7 gesprächig und gibt Hinweise auf mögliche Fehlerursachen beim Versenden von Formularen.

Contact Form 7 ist wohl das Plugin, wenn es um das Erstellen von Formularen für WordPress-Websites geht. Das Plugin ist auf der einen Seite sehr übersichtlich und klar aufgebaut, bietet aber trotzdem genügend Optionen um auch anspruchsvolle Formulare zu erstellen.

Nur eine Sache ist wohl nicht so gut gelöst und das ist die Fehlersuche, wenn etwas mal nicht so funktioniert wie es sollte. Wenn der Versand des Formulars nämlich nicht funktioniert erhält man zwar eine Nachricht darüber, aber die genaue Ursache erfährt man nicht. Dabei wäre es als Betreiber einer Website natürlich hilfreich, wenn man etwas mehr Informationen über die Fehlerursache hätte, als die Standard-Ausgabe von Contact Form 7 hergibt.

Oft lautet die nämlich lediglich:

Beim Versuch, deine Mitteilung zu versenden, ist ein Fehler aufgetreten. Bitte versuche es später noch einmal.

Wenig aussagekräftige Fehlermeldung von Contact Form 7

Fehlermeldungen gibt es im übrigen noch mit gelbem und orangenem Rahmen. Das gibt einem schon einmal einen Hinweis auf die Ursache, denn die Farben sind bestimmten Fehlergruppen zugeordnet. Dabei kennzeichnet gelb Validierungsfehler (ein Feld wurde fehlerhaft oder gar nicht ausgefüllt) und orange sind Spam-Fehler.

Rot umrandete Fehler lassen allerdings auf andere Ursachen schließen. Aber welche?

Um dieser Antwort näher zu kommen benötigt man ein wenig Code (oder das entsprechende Plugin) und die Möglichkeit eine Ajax-Antwort auszulesen.

Aber der Reihe nach. Zunächst erweitert man seine functions.php mit dem folgenden Code von Bernhard Kau

function debug_cf7_add_error( $items, $result ) {

	if ( 'mail_failed' == $result['status'] ) {
		global $phpmailer;
		$items['errorInfo'] = $phpmailer->ErrorInfo;
	}

	return $items;
}
add_action( 'wpcf7_ajax_json_echo', 'debug_cf7_add_error', 10, 2 );

Wer sich beim Arbeiten mit der functions.php unsicher ist, kann auch sein entsprechendes Plugin nutzen.

Beides führt dazu, dass eine Fehlermeldung als Ajax-Antwort ausgegeben wird. Aber wie gelangt man nun daran? Zum Auslesen benötigt man einen Debugger wie z. B. das Entwickler Tool im Firefox. Man öffnet es entweder über das Menü "Web-Entwickler" oder mit der Tastenkombination Strg+Umsch+i. Dann wechselt man auf den Reiter "Netzwerkanalyse" und dort wiederum auf "XHR".

Wenn man nun versucht das Formular zu senden, erscheint auf dem Bildschirm die Fehlermeldung und im Entwickler-Tool der Hinweis auf ein Feedback.

Klickt man dies an erhält man die Fehlermeldung.

Ohne (!) die oben genannte Funktion lautet sie dann:

{"into":"#wpcf7-f120-p121-o1","status":"mail_failed","message":"Beim Versuch, deine Mitteilung zu versenden, ist ein Fehler aufgetreten. Bitte versuche es sp\u00e4ter noch einmal."}

Und das hilft einem nicht wirklich weiter, denn es ist genauso wenig aussagekräftig, wie der Hinweis im Frontend.

Mit der oben genannten Funktion sieht das ganze schon anders aus:

{"into":"#wpcf7-f120-p121-o1","status":"mail_failed","message":"Beim Versuch, deine Mitteilung zu versenden, ist ein Fehler aufgetreten. Bitte versuche es sp\u00e4ter noch einmal.","errorInfo":"Invalid address:  (setFrom) kunden.net"}

oder aber so

 {"into":"#wpcf7-f2223-p2221-o1","status":"mail_failed","message":"Die Nachricht konnte nicht gesendet werden. Bitte versuchen Sie es noch einmal zu einem sp\u00e4teren Zeitpunkt oder informieren Sie den Administrator der Webseite.","errorInfo":"Could not instantiate mail function."}

Beides sind natürlich keine detaillierten Anleitungen zur Fehlerbehebung, aber sie geben auf jeden Fall mehr Auskunft als die von Contact Form 7 selber generierten Fehlermeldungen. So wird man bei der Fehlersuche zumindest schon einmal in die richtige Richtung geschubst und weiß dann in welchem Heuhaufen man suchen muss 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

WordPress-Wartung & Betreuung

Wir kümmern uns um Ihre WordPress-Website:

WordPress-Wartung und Betreuung

 WordPress-Wartung und Betreuung