Добавьте поле в пользовательский метод оплаты (Frontend)

magento.stackexchange https://magento.stackexchange.com/questions/549

Вопрос

Я хотел бы добавить поле на странице оформления заказа для пользовательского метода оплаты.

На самом деле, потому что мой метод расширяет CC, форма автоматически генерируется (у меня нет набора макета). Посмотрите на -> Mage_Checkout_Block_Onepage_Payment_Methods с getPaymentMethodFormHtml() Функция:

    public function getPaymentMethodFormHtml(Mage_Payment_Model_Method_Abstract $method)
{
     return $this->getChildHtml('payment.method.' . $method->getCode());
}

Это хорошо, однако я хотел бы добавить форму комментариев (только для этого способа оплаты), используя пользовательский макет: сохраните текущую форму и добавьте дополнительный блок с полем ввода текста.

Это было полезно?

Решение

В вашей модели оплаты вы должны установить protected $_formBlockType = 'foo/form'; класс, который происходит от Mage_Payment_Model_Method_Cc и создайте шаблон/foo/form.phtml. Это позволяет вам написать свой собственный файл формы.

Тогда вам нужно переопределить assignData($data) функция (модель платежа) для сохранения этого дополнительного значения поля в $paymentInfo obj.

Если вам нужно будет показать это поле в информации, вы можете сделать то же самое, что и выше, с переменной $ _infoblocktype.

Другие советы

Отправьте следующую ссылку

Для выполнения этого с помощью модуля, созданного для него

это ссылка

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top