如何将短代码包含到php电子邮件模板中

时间:2012-09-03 16:11:39

标签: php

我有用户注册后发送的确认电子邮件。现在,我希望管理员能够自定义此电子邮件,更改内容。等(不想硬编码)

但问题在于我会生成激活链接。我想我可以在数据库中保存电子邮件内容。问题在于我必须添加到电子邮件中的动态元素,如激活链接,站点名称等。

这是最好的方法,我想我会像wordpress一样添加所谓的'短代码'。什么是蓝图,以及如何整合它?

1 个答案:

答案 0 :(得分:3)

您可以使用基于搜索&amp ;;的简单模板系统来解决它。更换;我在下面列举了一个非常基本的例子。希望它可以帮助你:)

class EmailTemplate
{
        private $body;

        public function __construct($template)
        {
                $this->body = $template;
        }

        public function render($context)
        {
                return preg_replace_callback('/%{(.*?)}%/', function($v) use ($context) {
                        return isset($context[$v[1]]) ? $context[$v[1]] : '';
                }, $this->body);
        }
}

$tpl = new EmailTemplate(<<<EOM
Hello %{user}%,

How are you doing. This is your link:

%{link}%

See ya!

EOM
);

echo $tpl->render(array(
        'user' => 'world',
        'link' => 'http://www.php.net/',
));