加载Magento邮件模板并从代码中填充其变量?

EOB*_*EOB 4 php magento email-templates magento-1.4

我正在加载我的邮件模板,如下所示:

$mailTemplate = Mage::getModel('core/email_template');
$myTemplate = $mailTemplate->load($templateId);
Run Code Online (Sandbox Code Playgroud)

现在我可以使用以下方式获取模板内容:

$text = $myTemplate ->getData('template_text');
Run Code Online (Sandbox Code Playgroud)

这样可行,但$ text仍然包含变量的占位符,例如{{var myvar}}或{{store url =""}}.有没有办法在加载模板时填充这些占位符而不发送邮件?我想向用户显示文本,但填充占位符.

可能?

谢谢 :)

Jür*_*len 8

是的,这是可能的.

这个班Mage_Core_Model_Email_Template有一个方法getProcessedTemplate().您只需要为占位符传递适当的变量.

例如,如果您的模板包含这样的占位符:

{{var firstname}} {{var lastname}}
Run Code Online (Sandbox Code Playgroud)

您可以使用:

$sTemplate = Mage::getModel('core/email_template')
    ->load($templateId)
    ->getProcessedTemplate(array(
        'firstname' => 'John',
        'lastname' => 'Doe'
    ));
Run Code Online (Sandbox Code Playgroud)

让你的占位符得到解决.