Lo primero que hice fue buscar en el código fuente de Magento. Suponiendo que el {{var payment_html}}
se procesa en algún lugar que busqué en payment_html
. Varios resultados coinciden con la búsqueda;
Mage_Sales_Model_Order
Mage_Sales_Model_Order_Creditmemo
Mage_Sales_Model_Order_Invoice
Mage_Sales_Model_Order_Shipment
Entonces la información para ese bloque de pago tiene que estar allí. Tomé Mage_Sales_Model_Order
y compruebe la variable $paymentBlockHtml
. Esto apunta a una lógica adicional para completar el bloque de pago mediante información de pago. Está creando un bloque y parece que esto no es fácil de ampliar/cambiar/modificar a primera vista. Sí, podemos aplicar una plantilla al tipo de bloque específico (de pago) ya que hay un bloque creado, pero no podemos verificar fácilmente qué bloque queremos cargar. Además, la plantilla se invalida en la construcción de Mage_Payment_Block_Info
Veamos la otra forma.
Hagamos algo interesante, por qué no agregamos un bloque al correo electrónico que contiene la información correcta pero más importante donde es posible cambiar al caso correcto. Como el analizador de plantillas se usa para analizar las variables y los controladores de diseño, podríamos agregar lo siguiente en lugar del bloque {{var payment_html}}
y recuperar esa información en el bloque mismo.
{{block type='core/template' template='email/templatename.phtml'}}
El código anterior es analizar el correo electrónico/templatename.phtml en el correo electrónico, lo que significa que se podía hacer nada en esa plantilla para mostrar los datos correctos. Antes de que podamos recuperar los datos de pago en esta plantilla, tenemos que agregar el argumento de orden con los datos de la orden. Eso es bastante simple;
{{block type='core/template' order=$order template='email/templatename.phtml'}}
En la plantilla que podemos hacer $this->getOrder()->getPayment()
para recuperar la información de pago, o $this->getOrder->getPayment()->toHtml()
o procesar los datos de otra manera.
Bonificación; Otra solución es trabajar con controladores de diseño y establecer la plantilla correcta y escribir en layout.xml, debajo de un ejemplo para los artículos de pedido en el mismo correo electrónico. Está funcionando igual que el bloque, pero solo con algunas configuraciones en el diseño xml.
{{layout handle="sales_email_order_items" order=$order}}