Php 加载Magento邮件模板并从代码中填充其变量?
我正在加载邮件模板,如下所示:Php 加载Magento邮件模板并从代码中填充其变量?,php,magento,magento-1.4,email-templates,Php,Magento,Magento 1.4,Email Templates,我正在加载邮件模板,如下所示: $mailTemplate = Mage::getModel('core/email_template'); $myTemplate = $mailTemplate->load($templateId); {{var firstname}} {{var lastname}} 现在,我可以使用以下方法获取模板内容: $text = $myTemplate ->getData('template_text'); 这是可行的,但$text仍然包含变量的
$mailTemplate = Mage::getModel('core/email_template');
$myTemplate = $mailTemplate->load($templateId);
{{var firstname}} {{var lastname}}
现在,我可以使用以下方法获取模板内容:
$text = $myTemplate ->getData('template_text');
这是可行的,但$text仍然包含变量的占位符,如{{var myvar}}或{{store url=”“}}。在加载模板而不发送邮件时,是否有方法填充这些占位符?我想向用户显示文本,但要使用填充的占位符
可能吗
谢谢:)是的,有可能
类Mage\u Core\u Model\u Email\u模板
有一个方法getProcessedTemplate()
。您只需要为占位符传递适当的变量
例如,如果模板包含如下占位符:
$mailTemplate = Mage::getModel('core/email_template');
$myTemplate = $mailTemplate->load($templateId);
{{var firstname}} {{var lastname}}
您可以使用:
$sTemplate = Mage::getModel('core/email_template')
->load($templateId)
->getProcessedTemplate(array(
'firstname' => 'John',
'lastname' => 'Doe'
));
要解析占位符。要加载电子邮件模板并用变量填充,可以执行以下操作:
$emailTemplate = Mage::getModel('core/email_template')
->loadDefault('<your_email_template>');
//create template variables
$emailTemplateVariables = array();
$emailTemplateVariables['firstname'] = <firstname_var>;
$emailTemplateVariables['lastname'] = <lastname_var>;
// in your tample tou can use {var firstname} and {var lastname}
//fill template variables in email template
$processedTemplate = $emailTemplate->getProcessedTemplate($emailTemplateVariables);
$emailTemplate->setSenderName('<name>');
$emailTemplate->setSenderEmail('<emailaddress>');
$emailTemplate->setTemplateSubject($this->__('<your subject>'));
//send mail
$emailTemplate->send(<receiver_emailaddress>, <receiver_name>, $emailTemplateVariables);
$emailTemplate=Mage::getModel('core/email_template'))
->加载默认值(“”);
//创建模板变量
$emailTemplateVariables=array();
$emailTemplateVariables['firstname']=;
$emailTemplateVariables['lastname']=;
//在tample中,您可以使用{var firstname}和{var lastname}
//在电子邮件模板中填写模板变量
$processedTemplate=$emailTemplate->getProcessedTemplate($emailTemplateVariables);
$emailTemplate->setSenderName(“”);
$emailTemplate->SetSenderMail(“”);
$emailTemplate->setTemplateSubject($this->_(“”));
//寄信
$emailTemplate->send(,$emailTemplateVariables);
希望有人能使用它;-)
亲切问候,
马蒂恩