0

我遇到了支付模块(librepag)的问题,女巫如下:

该模块有 2 个模板“信息块”(带有付款详细信息的块):

  1. 用于后端(app/design/ adminhtml /base/default/template/librepag/info/ cartao.phtml) - 它有一些客户不应该看到的操作按钮
  2. 用于电子邮件模板(app/design/ frontend /base/default/template/librepag/info/ cartao.phtml)

当客户下订单时,会发送正确的模板 (#2)。但是当我们在后端订单视图并单击发送电子邮件按钮时,将发送 #1。

我注意到在模块模型中有

protected $_formBlockType = 'librepag/form_cartao';
protected $_infoBlockType = 'librepag/info_cartao';

女巫对应于这个特定的块

class Weblibre_Librepag_Block_Info_Cartao extends Mage_Payment_Block_Info_Ccsave
{
protected function _construct()
{
    parent::_construct();
    $this->setTemplate('librepag/info/cartao.phtml');
}
...

为什么系统会为同一个 sendNewOrderEmail 方法发送不同的信息块? 我看到了一个类似的线程,但没有弄清楚如何在此模块的电子邮件模板上简单地指定另一个信息块。

任何帮助表示赞赏。

4

1 回答 1

0

当您在后端选择发送邮件功能时,每个操作的区域admin都不是frontend,因为它在商店前端。

这就是为什么相对路径librepag/info/cartao.phtml被解释为adminhtml/default/default/librepag/info/cartao.phtml

要解决这个问题,您可以在构造函数中调用$this->setArea('frontend');before setTemplate()

于 2013-01-09T14:09:56.933 回答