Jump to content
xt:Commerce Community Forum

Formular Kundenregistrierung erweitern


Recommended Posts

Hallo zusammen,

ich habe vor, das Standardformular zur Neukundenregistrierung um ein Formularfeld zu erweitern. Inzwischen habe ich mich in die Starterguide Pluginentwicklung gut eingelesen und bin soweit, dass ich ein Plugin erstellt habe, was die Tabelle "TABLE_CUSTOMERS" nach meinen  Vorstellungen ergänzt und auch das Ansprechen des Hooks im Registrierungsformular klappt. 

Ein Problem bleibt allerdings noch:
Im Template werden Formularfelder z.B. durch

{form id=default_address_customers_company type=text name=default_address[customers_company] value=$default_address.customers_company}

gesetzt. An welcher Stelle wird das Ganze verarbeitet, wenn der Kunde die Eingaben absendet? Bzw. wie findet das den Weg in die Datenbank?
Ich habe mir mal intuitiv die Datei class.customer.php angesehen, die Bezeichner passen soweit ganz gut, hier finde ich aber keinen INSERT Befehl.

Hat hier jemand einen Tipp für mich, wo und wie ich ein ergänztes Formularfeld auswerten und in die Datenbank schreiben kann?
 

Danke im Voraus und viele Grüße
Martin

 

Link to comment
Share on other sites

Danke für die schnelle Antwort, aber ich glaube, ich benötige noch einen Tipp. Über das versteckte Feld wird als "action" "add_customer" übergeben. In xtCore/pages/customer.php taucht das aber wiederum nur in Zeile 391 auf, was lediglich für die Übergabe an "_registerCustomer" sorgt: 

            $customer_data =  array();
            if (isset ($_POST['action']) && $_POST['action']=='add_customer'){
                $customer_data = $_SESSION['customer']->_registerCustomer($_POST);
            }

_registerCustomer verarbeitet das wiederum mit _checkCustomerAddressData und _buildCustomerAddressData weiter bis alles mit _writeCustomerData den Weg in die DB findet. An welcher stelle setze ich hier am besten an? Hat jemand schonmal das gleiche bewerkstellig und ein Beispiel für mich?

Link to comment
Share on other sites

Erledigt!
Falls noch jemand vor dem Problem steht, das Kunden Registrierungsformular in xtCommerce um ein weiteres Formularfeld erweitern zu wollen: Es ist tatsächlich einfacher, als man mit durchschnittlichen PHP Kenntnissen zunächst annimmt. 

Ich habe mich Stück für Stück durch die Funktionen in class.customer.php gehangelt. Der ergänzte Wert lässt sich direkt in den gegebenen Arrays finden, eine Weiterverarbeitung ist also ziemlich einfach. Ich habe zunächst einfach in der Datei selbst entwickelt und am Ende alles in das PlugIn ausgelagert. In _checkCustomerData überprüfe ich, ob eine Eingabe vorhanden ist und ob die Plausibel ist. (einfaches if-Konstrukt). Wenn nicht, kann man über die Globalvariable $info eine Fehlermeldung ausgeben. Anschließend wird mein neues Formularfeld einfach unter _buildCustomerData mit in das Array aufgenommen, welches in die DB geschrieben wird. Hier kann man das ganze noch nach Fällen unterscheiden, für mich war es z.B. nur interessant, das Feld bei Neukunden auszuwerten...

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...