Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 加载Magento邮件模板并从代码中填充其变量?_Php_Magento_Magento 1.4_Email Templates - Fatal编程技术网

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);
希望有人能使用它;-)

亲切问候,

马蒂恩