Wie übergebe ich Werte von einem Contact Form 7-Formular an ein anderes in WordPress?

Lesezeit: 4 Minuten

Ich habe eine Website, die 2 Formulare hat – ein kurzes Formular und ein langes Formular. Wenn Sie sich ansehen http://dforbesinsuranceagency.com Sie sehen das Kurzformular neben dem Impressum-Foto. Die Langform ist bei http://dforbesinsuranceagency.com/request-free-insurance-quotes/

Wenn der Benutzer auf dem Kurzformular auf „Senden“ klickt, wird er auf die Seite des Langformulars weitergeleitet, sodass dieser Teil einwandfrei funktioniert. Der Teil, der mir Anfälle gibt, ist, dass ich die in die Kurzformularfelder Vorname, Nachname, E-Mail-Adresse und Telefon eingegebenen Werte an die entsprechenden Felder im Langformular übergeben muss.

Wie mache ich das?

So leite ich das Kurzformular zum Langformular um (ich habe es dem Abschnitt Zusätzliche Einstellungen für das Kurzformular hinzugefügt):

on_sent_ok: "location = 'http://dforbesinsuranceagency.com//request-free-insurance-quotes';"

Jede Hilfe wäre willkommen.

Benutzeravatar des Abgesandten
Emissär

Hack, hack, hackety, hack, hack, hack… Ohne vorzuschlagen “keinen Formularersteller verwenden” Ich glaube nicht, dass es eine elegante Lösung gibt – Sie können die andere vorgeschlagene PHP-Methode nicht verwenden, ohne das Plugin selbst zu ändern (und das ist eine Dose mit Würmern). Ich werde eine Javascript-Lösung vorschlagen, aber es gibt einige Vorbehalte (unten):

jQuery(document).ready(function($){
  $('#quick-quote form:first').submit(function(){
    var foo = {};
    $(this).find('input[type=text], select').each(function(){
      foo[$(this).attr('name')] = $(this).val();
    });
    document.cookie="formData="+JSON.stringify(foo);
  });
  var ff = $('#container form:first');
  if(ff.length){
    var data = $.parseJSON(
      document.cookie.match('(^|;) ?formData=([^;]*)(;|$)')[2]
    );
    if(data){
      for(var name in data){
        ff.find('input[name="+name+"], select[name="+name+"]').val(data[name]);
      }
    }
  }
});

Was dies im Wesentlichen tun wird, ist: Speichern Sie bei der Übermittlung Ihre Miniformularoptionen in a cookie. Beim Laden der Seite sucht es dann im Hauptteil der Seite nach einem Formular und wendet alle gespeicherten Cookie-Daten an.

Anmerkungen

  • Die jQuery-Selektoren sind absichtlich mehrdeutig, um zukünftige Änderungen in Ihrem Admin-Panel/Plug-in zu vermeiden, die wahrscheinlich mit den Formular-IDs in Konflikt geraten (wodurch das Skript beschädigt wird).
  • Ich mache mir keine Gedanken über die Paarung von Feld-/Optionsnamen – zum Beispiel ist das Auswahlfeld in Ihrem Miniformular benannt insurance-type das passende Feld im Hauptformular wird jedoch benannt ins-typeSie müssen sicherstellen, dass sie den gleichen Namen haben.
  • Dies gilt auch für Auswahlfeldwerte – wenn es keinen übereinstimmenden Wert gibt, wird er ignoriert (z. B. haben einige Ihrer Werte im Hauptformular » » Zeichen voran (und stimmen daher nicht überein).

  • Sie können dieses Skript überall in Ihrer Vorlage (auf allen Seiten) hinzufügen, solange jQuery zuerst geladen wird – was bereits in Ihrer Vorlage verwendet wird.

    – Abgesandter

    18. März 2013 um 11:52 Uhr


  • @Cynthia Cool – es ist klobig, aber solange es richtig funktioniert … 🙂

    – Abgesandter

    18. März 2013 um 14:01 Uhr

  • Ich poste routinemäßig Lösungen für Probleme mit dem Kontaktformular 7 auf meiner Website – kann ich das posten? Viele Menschen haben nach einer Möglichkeit gesucht, dies zu tun.

    – Cynthia

    18. März 2013 um 14:06 Uhr

Versuche dies.

Setzen Sie die Aktion unseres ersten Formulars auf eine PHP-Datei namens xyz.php

<form method="post" action="xyz.php">
    <input type="text" name="name">
    <input type="text" name="email_address">
    <input type="submit" value="Go To Step 2">
</form>

Die Datei xyz.php erstellt ein neues Formular für Sie, das in diesem Fall Ihr zweites Formular (das große) ist. Legen Sie die Aktion des Formulars nach Bedarf fest. der Code Ihrer xyz.php sieht ungefähr so ​​aus.

<form method="post" action="form3.php">
   <input type="text" name="name" value="<?php echo $_POST['name']; ?>">
   <input type="text" name="email_address" value="<?php echo $_POST['email_address']; ?>">
   <input type="radio" group="membership_type" value="Free">

   <input type="radio" group="membership_type" value="Normal">

   <input type="radio" group="membership_type" value="Deluxe">

   <input type="checkbox" name="terms_and_conditions">  
   <input type="submit" value="Go To Step 3">
</form>

wobei die Eingabefelder des ersten Formulars bereits mit den Angaben des Benutzers im ersten Formular gefüllt sind.

Sie können das erste Formular selbst erstellen und das Kontaktformular das zweite Formular erstellen lassen, indem Sie die Standardwerte mit der oben beschriebenen Methode angeben.

Hoffe das hilft!

  • Wie funktioniert das mit dem Contact Form 7 Plugin für WordPress?

    – Cynthia

    18. März 2013 um 11:24 Uhr

1387300cookie-checkWie übergebe ich Werte von einem Contact Form 7-Formular an ein anderes in WordPress?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy