如何调试电子邮件模板?


8

我正在修改电子邮件模板。 {themeName}/template/email/order/items/order/default.phtml

当用户(来宾或客户)下订单时,以上模板将触发。

在上面的模板中,有一些变量,例如:

$_item = $this->getItem();
$_order = $this->getItem()->getOrder(); 

如果我使用任何调试方法(例如Mage::log或)zend_debug::dump,则结帐页面将被挂起,并且订单将永远不会得到处理。

因此,我的问题是,在这里我应该使用什么来调试电子邮件模板?

我还使用了echo始终显示空字符串或array包含变量的数组。


有人可以告诉我如何从上述变量中​​获取order_id吗?
Mr_Green 2014年

您是否尝试Mage::log在块类(Mage_Sales_Block_Order_Email_Items_Order_Default)中使用?
nevvermind 2014年

@nevvermind我尝试Mage::logMage_Sales_Block_Items_Abstract。与我在帖子中提到的问题相同。我和你提到的课程没有关系。
Mr_Green 2014年

电子邮件tpl已发送给app/locale/en_US/template/email/sales/order_new_guest.html(来宾)。在那里,插入了一个布局句柄- sales_email_order_items。该句柄在中声明app/design/frontend/base/default/layout/sales.xml。您遇到问题的模板的块设置为sales/order_email_items_order_default-aka Mage_Sales_Block_Order_Email_Items_Order_Default
nevvermind 2014年

@nevvermind感谢您的信息。实际上,我正在从以下地址将产品html发送到电子邮件中{themeName}/template/email/order/items/order/default.phtml我已对其进行了彻底检查)电子邮件的另一部分,例如“谢谢您购买..等等等等”来自您上面提到的内容(我没有检查,但是我认为是)。坦率地说,我解决了这个问题,但我的问题是如何在这些电子邮件模板中进行调试?
Mr_Green 2014年

Answers:



2

您也可以尝试Mage::log($your_object->debug());这样做,希望能为您提供所需的信息。

它将以键=>值的数组的形式向您显示所有对象数据,并向您显示作为对象的任何子数据的类。

if (is_scalar($value)) {
    $debug[$key] = $value;
} elseif (is_array($value)) {
    $debug[$key] = $this->debug($value, $objects);
} elseif ($value instanceof Varien_Object) {
    $debug[$key.' ('.get_class($value).')'] = $value->debug(null, $objects);
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.