Ответ 1
Первое, что я сделал, это поиск в исходном коде 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
. Это указывает на дальнейшую логику заполнения платежного блока посредством платежной информации. Это создает блок, и похоже, что это непросто расширить/изменить/изменить на первый взгляд.
Да, мы можем применить шаблон к типу конкретного (платежного) блока, так как theres созданный блок, но мы не можем легко проверить, какой блок мы хотим загрузить. Также шаблон отклоняется в конструкции Mage_Payment_Block_Info
Позволяет проверить другой способ.
Давайте сделаем что-нибудь классное, почему мы не добавляем блок в электронное письмо, которое содержит правильную информацию, но более важно, где можно сделать переход к правильному делу. Поскольку синтаксический анализатор шаблонов используется для разбора переменных и макетов, мы могли бы добавить следующее вместо блока {{var payment_html}}
и получить эту информацию в самом блоке.
{{block type='core/template' template='email/templatename.phtml'}}
Вышеприведенный код обрабатывает email/templatename.phtml в электронном письме, что означает, что вы можете сделать что-либо в этом шаблоне, чтобы показать правильные данные. Прежде чем мы сможем получить данные оплаты в этом шаблоне, мы должны добавить аргумент order с данными заказа. Это довольно просто:
{{block type='core/template' order=$order template='email/templatename.phtml'}}
В шаблоне мы можем сделать $this->getOrder()->getPayment()
для получения платежной информации или $this->getOrder->getPayment()->toHtml()
или обработать данные по-другому.
Bonus; Другое решение работает с макетами и устанавливает правильный шаблон и вводит в layout.xml, ниже пример для элементов заказа в том же письме. Он работает так же, как и блок, но только с некоторыми настройками в макете xml.
{{layout handle="sales_email_order_items" order=$order}}