1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

$_Post im Contact-form-7

Dieses Thema im Forum "Plugins und Widgets" wurde erstellt von NetOldie, 30. Mai 2020.

  1. NetOldie

    NetOldie Member

    Registriert seit:
    30. Mai 2020
    Beiträge:
    9
    Zustimmungen:
    0
    Hallo,

    ich bin neu hier und froh mal wieder ein Forum gefunden zu haben. Und dazu noch in deutscher Sprache!

    Zu meinem Problem:
    Feedbackformular hat 2 Submit Button. Jetzt will ich nach dem Absenden über die $_POST Variable ermitteln, welcher Button geklickt wurde.
    Wichtige Info hierzu. Ich arbeite mit dem Oxygenbuilder und ohne Theme/Child-Theme.

    Bei einem Formular händisch mit html/ PHP gemacht, bekomme ich über die $_POST das Button zurück geliefert wurde.
    Gleiches HTML-Formular über CF-7 abgefeuert und fehlt bei $_POST der String mit dem Submit namen.

    array(6) {
    ["_wpcf7"]=>
    string(3) "170"
    ["_wpcf7_version"]=>
    string(5) "5.1.9"
    ["_wpcf7_locale"]=>
    string(5) "de_DE"
    ["_wpcf7_unit_tag"]=>
    string(13) "wpcf7-f170-o1"
    ["_wpcf7_container_post"]=>
    string(1) "0"
    ["your-message"]=>
    string(0) ""
    }


    Wer weiß welche Hook ich ansetzen muß, bevor CF-7 den $_POST modifziert?
    wpcf7_before_send_mail und wpcf7_submit habe ich bereits ausprobiert.

    Eine URL zu einer Schemata in welcher Reihenfolge die Hooks abgearbeitet werden wäre auch hilfreich.

    Wer es sich ansehen will, kann gerne hier https://staging.medienhusky.com/husky-letter-abo/ nachschauen und probieren.

    Java-Script oder ein anderes Plugin ist keine Alternative!

    Ich freue mich über jeden Tipp, der mich weiter bringt.

    Danke für Eure Bemühungen.
     
  2. RTW

    RTW Member

    Registriert seit:
    29. Mai 2020
    Beiträge:
    18
    Zustimmungen:
    1
  3. NetOldie

    NetOldie Member

    Registriert seit:
    30. Mai 2020
    Beiträge:
    9
    Zustimmungen:
    0
    Danke für den Tipp, funktioniert leider auch nicht.

    Diese Hooks habe ich bereits erfolglos ausprobiert:
    wpcf7_submit
    wpcf7_before_send_mail
    wpcf7_mail_send

    und
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    liefert mir zwar alle Formulardaten und deren Inhalte, jedoch der input type="submit" und sein value ist nirgends mehr dabei.
     
  4. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    11.638
    Zustimmungen:
    1.778
    Contact Form 7 versendet die Formulare per Javascript in includes/js/scripts.js und nutzt dort u.a. new FormData(..) um die Formulardaten zu ermitteln. In diesen Daten ist der Submit Button nicht enthalten.

    Eine Lösungsmöglichkeit wäre ein hidden Feld im Formular und ein kleines Script mit dem Du auf dem Server in $_POST['your-button'] bzw. falls gewünscht auch in der E-Mail selbst den ID des Buttons bekommst.
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Habe durchaus gelesen, dass für Dich ein Script keine Alternative ist, für Mitleser mag das anders sein, daher hier mal so ein Lösungansatz.
     
    NetOldie und r23 gefällt das.
  5. mensmaximus

    mensmaximus Well-Known Member

    Registriert seit:
    24. Juli 2014
    Beiträge:
    8.857
    Zustimmungen:
    437
    Welche Daten erhälts Du über den Filter Hook wpcf7_posted_data?
     
    NetOldie gefällt das.
  6. NetOldie

    NetOldie Member

    Registriert seit:
    30. Mai 2020
    Beiträge:
    9
    Zustimmungen:
    0
    Danke für Deinen Lösungsansatz.

    Die selben Daten wie bei den anderen auch. Der Submit fehlt.

    Ich habe einen 4 Jahre alten Thread bei cf-7 gefunden, da schien es mal zu funktionieren. Anscheinend wurde es entfernt aus welchen Gründen auch immer.


    PS: Deine Signatur ist toll!
     
  7. NetOldie

    NetOldie Member

    Registriert seit:
    30. Mai 2020
    Beiträge:
    9
    Zustimmungen:
    0
    Danke für deinen Tipp! Ich werden jetzt beim Entwickler mal nachfragen, ob er die Funktion wieder einbauen/aktivieren kann. Es hatte zumindest mal funktioniert .

    Auch deinen Lösungsansatz finde ich gut, damit andere auch etwas davon haben. Wenn alle Stricke reißen, werde auch auf Java-Script umsteigen. Ich will mir die Einarbeitungszeit ersparen und ohne Java-Script bleibe ich Browserunabhängiger.
     
  8. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    11.638
    Zustimmungen:
    1.778
    Vor 4 Jahren wurde noch nicht FormData(..) beim Versand verwendet, schau Dir den Quellcode z.B. der Version 4.4 des Plugins mal an.
    Ohne JavaScript im Browser wird Dein Feld eintragen auf Deiner Testseite in $_POST mit an den Server übertragen:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Erst mit JavaScript im Browser entsteht durch FormData(..) der von Dir beschriebene Effekt.

    Allerdings ist in der aktuellen Version von Contact Form 7 ein name Feld bei Submit-Buttons gar nicht dokumentiert.
     
    NetOldie gefällt das.
  9. NetOldie

    NetOldie Member

    Registriert seit:
    30. Mai 2020
    Beiträge:
    9
    Zustimmungen:
    0
    Wow. Das beruhigt mich jetzt. Dann muss ich halt 2 Versionen für die Button Behandlung machen. Auf die Idee einfach mal im Browser Java-Script abzuschalten bin ich nicht gekommen. Stand zu tief im Wald. :)

    Danke für Deine Hilfe, das bringt mich jetzt weiter!
     
    #9 NetOldie, 31. Mai 2020
    Zuletzt von einem Moderator bearbeitet: 31. Mai 2020
  10. NetOldie

    NetOldie Member

    Registriert seit:
    30. Mai 2020
    Beiträge:
    9
    Zustimmungen:
    0
    Leider muss ich das jetzt doch nochmal aufgreifen. Ich komme gerade bei der Auswertung, welcher Button geklickt wurde nicht weiter. Dazu kommt noch, das ich so gut wie kein jQuerie oder javaScript kann.

    Wahrscheinlich ist das nur ein 3 Zeiler für die Abfrage ob "Senden1" oder "Senden2" geklickt wurde. Hier hänge ich, weil ich auch nicht weiß wie ich die Variablen oder das object auslesen kann.

    Kannst Du mir vielleicht mit dem 3-Zeiler aushelfen? Ich würde mich riesig freuen.
    Danke!
     
  11. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    11.638
    Zustimmungen:
    1.778
    Der Code steht eigentlich bereits fertig da und kann mit script Tags versehen z.B. mit in das Formularfeld bei Contact Form 7 kopiert werden.
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Dann bekommst Du in $_POST['your-button'] auf dem Server den ID, also hier button-1 oder button-2, wahlweise auch über das Feld [your-button] in der Contact Form 7 E-Mail.
     
    NetOldie gefällt das.
  12. NetOldie

    NetOldie Member

    Registriert seit:
    30. Mai 2020
    Beiträge:
    9
    Zustimmungen:
    0
    Herzlichen Dank! Jetzt habe ich das Script kapiert.

    Ich habe seit PHP5.3 nichts mehr damit gemacht und mir JavaScript habe ich nie etwas zu tun gehabt. Das war nie meine Baustelle.

    Eine letzte (hoffentlich) letzte Frage:
    Gibt es ein äquivalent in Javascript zu PHP var_dump()? So das man es sich alles als Alert() ausgeben lassen kann.
     
  13. SirEctor

    SirEctor Well-Known Member
    Ehrenmitglied

    Registriert seit:
    28. Oktober 2008
    Beiträge:
    12.361
    Zustimmungen:
    427
    schau dir mal console.log() an.
     
  14. NetOldie

    NetOldie Member

    Registriert seit:
    30. Mai 2020
    Beiträge:
    9
    Zustimmungen:
    0
    Keine Fehler, auch beim php Debuggen keine Fehler.

    im Supportforum des Entwicklers habe ich jetzt einen Hinweis gefunden, dass es Probleme mit dem redirect geben kann.

    Ich habe mich jetzt um entschieden und setze nun doch auf eine JavaScript-Lösung. Ich will nicht nach jedem Update wieder rumbasteln bis es wieder läuft..
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden