Первое, что я сделал, - это поиск по исходному коду Magento. Предполагая, что {{var payment_html}}
обрабатывается где-то, что я искал на payment_html
.
Несколько результатов соответствуют поиску;
Mage_Sales_Model_Order
Mage_Sales_Model_Order_Creditmemo
Mage_Sales_Model_Order_Invoice
Mage_Sales_Model_Order_Shipment
Таким образом, информация для этого платежного блока должна быть там. Я взял Mage_Sales_Model_Order
и проверил переменную $paymentBlockHtml
. Это указывает на дальнейшую логику для заполнения блока оплаты информацией о платеже. Он создает блок и выглядит так, что его нелегко расширить / изменить / изменить с первого взгляда.
Да, мы можем применить шаблон к определенному типу (оплаты) блока, так как он создан, но мы не можем легко проверить, какой блок мы хотим загрузить. Также шаблон отменяется в конструкции Mage_Payment_Block_Info
Давайте проверим другой путь.
Давайте сделаем что-нибудь классное, почему мы не добавляем в электронное письмо блок, который содержит правильную информацию, но более важно, когда можно переключиться на правильный случай. Поскольку синтаксический анализатор шаблонов используется для анализа переменных и дескрипторов макета, мы можем добавить следующее вместо блока {{var payment_html}}
и получить эту информацию в самом блоке.
{{block type='core/template' template='email/templatename.phtml'}}
Приведенный выше код выполняет синтаксический анализ email / templatename.phtml в электронном письме, что означает, что вы можете сделать что-нибудь в этом шаблоне, чтобы показать правильные данные.
Прежде чем мы сможем получить данные платежа в этом шаблоне, мы должны добавить аргумент заказа с данными заказа. Это довольно просто;
{{block type='core/template' order=$order template='email/templatename.phtml'}}
В шаблоне мы можем сделать $this->getOrder()->getPayment()
для получения информации о платеже или $this->getOrder->getPayment()->toHtml()
или обработать данные другим способом.
Бонус;
Другое решение - работать с маркерами макета и установить правильный шаблон и ввести в layout.xml ниже пример для элементов заказа в том же электронном письме. Он работает так же, как блок, но только с некоторыми настройками в макете XML.
{{layout handle="sales_email_order_items" order=$order}}