Magento电子邮件模板:阻止不通过adminhtml呈现

|| 我担心我跌入了未知的Magento领土。我已经用尽了谷歌搜索功能所剩无几的东西,而且还差一点,所以我想我会在这里碰碰运气。 我们的平台是Magento Enterprise 1.9.1.1。 我们使用了一种古老的打印解决方案,该解决方案通过ODBC读取订单。因此,我们无法直接从Magento的MySQL数据库中读取它(由于更改的可能性很高)。我所做的是在返回parent :: _ beforeSave()之前,通过直接SQL查询到另一个数据库来扩展Mage_Sales_Model_Order以拦截_beforeSave()函数。可能有更好的方法来执行此操作,但是现在完成了,并且功能正常,无论这不是我的问题所在。 如果引发任何SQL错误,则会回滚更新,并将错误和订单数据传递到一个函数,该函数将带有错误信息的电子邮件发送到邮件列表。 / locale / en_US / template / email /中的电子邮件模板文件调用.phtml文件来处理数据数组,如下所示:
{{block type=\'core/template\' area=\'frontend\' template=\'/email/errors/order/beforesave.phtml\' orderdata=$orderdata errors=$errors}} 
这是我从/locale/en_US/template/email/sales/shipment_new.phtml借来的​​功能。这也是我遇到障碍的地方。如果在用户处理订单时遇到错误,则电子邮件可以从前端正常发送。如果您通过adminhtml进行订单更改,则会发送电子邮件,但不会包含上述阻止。 我尝试在块调用中使用和不使用area = \'frontend \',并且脚本无论如何都表现出相同的行为。 我认为问题可能出在我的XML中,尽管它发现模板本身在admin和前端中都很好(并且不需要在我的XML中的任何位置定义此块)。我也找不到在Magento自己的文件中或互联网上任何地方的任何示例。 任何帮助将不胜感激。这是我的头脑! 麦克风     
已邀请:
您是否要为实际的电子邮件模板设置“区域”?例如。:
$emailTemplate = Mage::getModel(\'core/email_template\');    
$emailTemplate
  ->setDesignConfig(array(\'area\' => \'frontend\', \'store\' => $storeId));
    
magento中前端和后端(admin或adminhtml)之间共享模板的可能副本。 并不是要重提一个死定的问题;只是绑松散的一端。 @ColinM:我的想法与您的想法相同,但是某种程度上对我没有用。也许我不了解setDesignConfig()的目的。无论如何,上面的链接在与原始海报相同的情况下对我来说非常有效。     

要回复问题请先登录注册