Fügen Sie einer benutzerdefinierten Zahlungsmethode ein Feld hinzu (Frontend)
Frage
Ich möchte auf der Kasse ein Feld für eine benutzerdefinierte Zahlungsmethode hinzufügen.
Tatsächlich, weil meine Methode CC erweitert, wird das Formular automatisch generiert (ich habe keinen Layout -Set). Mage_Checkout_Block_Onepage_Payment_Methods
mit getPaymentMethodFormHtml()
Funktion:
public function getPaymentMethodFormHtml(Mage_Payment_Model_Method_Abstract $method)
{
return $this->getChildHtml('payment.method.' . $method->getCode());
}
Dies ist gut, aber ich möchte mit einem benutzerdefinierten Layout ein Kommentarformular (nur für diese Zahlungsmethode) hinzufügen: Halten Sie das aktuelle Formular und fügen Sie einen zusätzlichen Block mit einem Texteingangsfeld hinzu.
Lösung
In Ihrem Zahlungsmodell sollten Sie festlegen protected $_formBlockType = 'foo/form';
Klasse, der aus Mage_Payment_Model_Method_Cc
und erstellen Sie eine Vorlage/foo/form.phtml -Datei. Auf diese Weise können Sie Ihre eigene Formulardatei schreiben.
Dann müssen Sie überschreiben assignData($data)
Funktion (Zahlungsmodell), um diesen zusätzlichen Feldwert in der zu speichern $paymentInfo
obj.
Falls Sie dieses Feld auch in Informationen anzeigen müssen, können Sie dasselbe wie oben mit $ _infoboblocktype Variable tun.
Andere Tipps