Contact Form 7 sende bei Fehler unterbrechen

  • Guten Tag zusammen,

    ich arbeite gerade an einer Webseite und möchte Daten aus den Kontaktformularen an eine Datenbank (nicht die WP-DB) senden. Das ganze funktioniert auch ;-)

    Durch Fehlerhafte Eingaben werden in der Datenbank Trigger aktiviert. Diese Trigger Verarbeitung möchte ich nun an das Kontaktformular zurück senden um dem Benutzer zu signalisieren wo er ein Fehler gemacht hat.
    Das ganze geht über mehrere Tabellen in der Datenbank deswegen ist es nicht möglich die Eingabe vorher auszuwerten (auf Fehler zu untersuchen), zu mindestens ist mir nicht bekannt wie so etwas möglich wäre :-D

    Hoffentlich könnt ihr mir weiter helfen und hoffentlich ist meine Frage gut formuliert. Falls nicht kann ich euch genauer erklären was ich meine :-)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Wenn es jemand nicht schafft dein Kontaktformular auszufüllen, was willst du dann damit?

    Why did the programmer quit his job? Because he didn't get arrays.

  • Du musst die Eingaben bereits validieren bevor du sie in der Datenbank speicherst. Eine Rückmeldung von Triggern zu verarbeiten ist in MySQL nicht machbar (vlt. in Oracle).

  • Okay ich erkläre den Sachverhalt mal genauer ;)

    Also ich hab eine Datenbank in der ich Sportler verwalte, diese Sportler werden dann in einer Formation aufgestellt.
    Dort gibt es dann ein gewisses Alter was ein Sportler haben muss und Disziplinen.
    Wenn ich nun in einem Kontaktformular (so habe ich es jetzt gemacht, vielleicht geht es auch anders besser :)), die Altersklasse, Disziplin wähle und dann die Sportler hinzufüge schreibt er derzeit jeden Sportler überall rein. Das ist aber ja quatsch:D ich muss ja überprüfen ob die Sportler das richtige Alter haben und in der richtigen Disziplin (Disziplin ist gebunden an Alter und Geschlecht) drin stehen.

    Deswegen dachte ich nun nach dem Absenden des Kontaktformulars erfolgt die Überprüfung, weiß leider auch nicht wie ich vorher an die Daten ran komme die jemand eingegeben hat :oops: Dann sollte Überprüft werden ob alles geklappt hat und falls ja gut und wenn nicht sollte das Kontaktformular erneut aufgehen und angezeigt werden wo der Fehler ist. Vielleicht sollte das Kontaktformular gar nicht zu gehen.

    Kann man meine Frage verstehen und gibt es eine Lösung?
    Zur Not war User Unfreundlich wäre, müsste man eben nach dem Senden (Wie auch immer :D) ein roten Kasten anzeigen mit:
    Hey die Eingabe war nicht richtig versuch es doch noch mal o_O

  • Deswegen dachte ich nun nach dem Absenden des Kontaktformulars erfolgt die Überprüfung, weiß leider auch nicht wie ich vorher an die Daten ran komme die jemand eingegeben hat

    Ich nehme mal am das du die nicht bekommen kannst außer du hast eine Einwilligung der Betroffenen.

  • Ich nehme mal am das du die nicht bekommen kannst außer du hast eine Einwilligung der Betroffenen.

    Die Daten liegen doch in der Datenbank. Also das ist eine andere Datenbank als die von Wordpress. Doch ich frage mich ob ich vorher schon auswerten kann bevor man auf Senden im Kontaktformular klickt. Was eben auch "doof" wäre denn was ist wenn jemand erst einen Sportler A eingibt, sich vertippt und dann einen Sportler B eintippt, ... das kann man nun belieb weiter führen und im Hintergrund würde dann immer wieder Überprüft werden ob die Daten stimmen. Das ist eben auch nicht schön :-(

    Ist es möglich das man die Daten zurück in so ein Kontaktformular schreibt wenn so ein Trigger in der Datenbank ausgelöst wurde? Also das ganze wieder auf "Null" zurück stellen. Das wäre ja das was ich jetzt bräuchte. Wenn das zu spezifisch ist muss ich mir eine andere Möglichkeit einfallen lassen.

    Danke schon mal für die ganzen Antworten :-)

  • Kein einziger Sportler wird sich melden, nur
    SPAM SPAM, Brute Force and SPAM. SPAM, Boot Trafic and SPAM. Brute Force, Boot Trafic and SPAM. SPAM SPAM, Brute Trafic and SPAM. SPAM SPAM ...

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Why did the programmer quit his job? Because he didn't get arrays.

  • [size=14]b3317133[/SIZE] genau das was ich gebraucht habe ;)

    [PLAIN]
    add_filter( 'wpcf7_validate_email*', 'custom_email_confirmation_validation_filter', 20, 2 );
    function custom_email_confirmation_validation_filter( $result, $tag ) {
    if ( 'your-email-confirm' == $tag->name ) {
    $your_email = isset( $_POST['your-email'] ) ? trim( $_POST['your-email'] ) : '';
    $your_email_confirm = isset( $_POST['your-email-confirm'] ) ? trim( $_POST['your-email-confirm'] ) : '';
    if ( $your_email != $your_email_confirm ) {
    $result->invalidate( $tag, "Are you sure this is the correct address?" );
    }
    }
    return $result;
    }
    [/PLAIN]

    Über diesen Code kann man dann vorher Prüfen ob die Daten vernünftig zueinander passen :)

    Danke für all eure Antworten und für die schnelle Hilfe :):):)

  • Dieser aus dem o.g. Contact Form 7 Blog kopierte Code sollte so nur für Validation von E-Mail Feldern [FONT=Courier New]your-email[/FONT] und [FONT=Courier New]your-email-confirm[/FONT] verwendet werden.

    Für eigene Eingabefelder sollte man den Code noch wie im Blogbeitrag beschrieben auf a) den Feldtyp des Eingabefeldes im Filternamen [FONT=Courier New]wpcf7_validate_ + {type of the form-tag}[/FONT] und b) natürlich auch den/die Namen des validierten Feldes bei Vergleich mit [FONT=Courier New]$tag->name[/FONT] anpassen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!