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.

War es hilfreich?

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

Siehe den folgenden Link

Für dies mit einem dafür erstellten Modul

Das ist die Verbindung

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top