Teil des Checkout Nutzerformulars erst in payment.tpl abfragen

Hallöchen,

ich würde gerne ein Feld des Benutzerdaten-Formulars missbrauchen (nämlich das etwas in die Jahre gekommene Fax-Feld) und würde daraus gerne eine Datumseingabe für den Nutzer basteln. Diese Datumseingabe ist abhängig von der gewählten Versandart, weshalb ich das Input-Feld erst in der payment.tpl genutzt werden kann.

Die optische Implementierung hat auch schon super geklappt, nur das Speichern des eingegebenen Werts in die Datenbank klappt nicht so ganz.

Was muss ich hinzufügen, damit der Wert in die Datenbank gespeichert wird? Vielen lieben Dank euch! :slight_smile:

Ich weiß nicht wieso, aber ich bekomme den Error 403, wenn ich meinen Code hier im Forum posten will.

Daher habe ich den Code mal hier gespeichert:
https://www.w3schools.com/code/tryit.asp?filename=GDX4WIDC3U90

Nur dass ich das richtig verstehe: Du hast ein Feld, das normalerweise bei den Adresseinstellungen angepasst werden kann und willst das jetzt einen Schritt weiter nutzen um Informationen zu sammeln?

So wird das nicht funktionieren, weil der Payment Controller mit dem invadr Array überhaupt nix anfangen kann. Da musst Du dir das Handling selber erweitern. Da würde ich dann aber empfehlen ein eigenes Feld hinzuzufügen, damit man da nicht in andere Probleme mit Überschneidungen läuft…

Grüße,
Thorsten

Vielen Dank für deine Antwort :slightly_smiling_face: auch wenn du mir leider nicht die heile Botschaft überliefern kannst :persevere::sweat_smile:

Mein prinzipielles Vorhaben hast du richtig verstanden. Wie kann ich das mit dem neuen Feld umsetzen? Gibt’s da eine halbwegs schmale Lösung, die auch ein Rookie, wie ich versteht? :sweat_smile:

Danke nochmal! :innocent:

Hmm, einfach wird das nicht, wenn Du wirklich ein Rookie bist. Hab jetzt gerade auch keinen passenden Code zu Hand. Aber wenn MVC kein Fremdwort für dich ist dann sei dir das mal an die Hand gegeben:

  • Neues Datenbankfeld anlegen, wo Du es brauchst (würde dafür nix altes verwursten)
  • An der Stelle an der Du das Feld abfragen möchtest, das Template anpassen, und das input Feld hinzufügen. Je nachdem kannst Du ein vorhandenes Formular verwenden oder musst ein eigenes bauen.
  • Im Formular brauchst Du zwei hidden fields “cl” und “fnc” (einfach mal bei den standard-Formularen schauen). cl gibt die Klasse und fnc die Funktion innerhalb der klasse an, die aufgerufen wird, wenn das Formular gesendet wird.
  • In der Controller Klasse “cl” definierst Du dann deine eigene Funktion fnc und schreibst den Wert aus dem Feld in die Datenbank. Danach musst Du dann entscheiden, was Du weiter machen willst, redirect oder wieder auf die ausgangsseite
  • Den Warenkorbprozess anzupassen ist dabei oft noch ein bisschen komplizierter.

Lass dich nicht entmutigen. Wenn man das Prinzip mal geblickt hat, geht es meist recht zügig von der Hand…

1 Like