我正在编辑一些包含在 Magento 交易电子邮件中的 phtml 文件,但为了测试更改,我必须实际发送电子邮件。在(例如)订单确认电子邮件的情况下,这意味着我每次想要测试电子邮件时都必须下订单!
在后端选择“预览电子邮件”没有帮助,因为电子邮件不包含可见的订单数据。
有没有办法预览交易电子邮件,但让它与订单数据一起呈现?
原文由 WackGet 发布,翻译遵循 CC BY-SA 4.0 许可协议
以下代码段将呈现“新销售订单”电子邮件并针对任何给定订单显示它。例如,将以下内容放在 /test.php 中,然后浏览到正确的位置,例如 http://www.example.com/test.php
require_once 'app/Mage.php';
Mage::app();
// loads the proper email template
$emailTemplate = Mage::getModel('core/email_template')
->loadDefault('sales_email_order_template');
// All variables your error log tells you that are missing can be placed like this:
$emailTemplateVars = array();
$emailTemplateVars['usermessage'] = "blub";
$emailTemplateVars['store'] = Mage::app()->getStore();
$emailTemplateVars['sendername'] = 'sender name';
$emailTemplateVars['receivername'] = 'receiver name';
// order you want to load by ID
$emailTemplateVars['order'] = Mage::getModel('sales/order')->load(673);
// load payment details:
// usually rendered by this template:
// web/app/design/frontend/base/default/template/payment/info/default.phtml
$order = $emailTemplateVars['order'];
$paymentBlock = Mage::helper('payment')->getInfoBlock($order->getPayment())
->setIsSecureMode(true);
$paymentBlock->getMethod()->setStore(Mage::app()->getStore());
$emailTemplateVars['payment_html'] = $paymentBlock->toHtml();
//displays the rendered email template
echo $emailTemplate->getProcessedTemplate($emailTemplateVars);
原文由 chickahoona 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答3.1k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
1 回答1.3k 阅读✓ 已解决
2 回答920 阅读✓ 已解决
3 回答1.2k 阅读
2 回答1.2k 阅读
来自用户 RS:
这是我在使用模板时发现的最接近快速重新测试电子邮件的方法。谢谢 RS!