我有在用户注册后发送的确认电子邮件。现在,我希望管理员能够自定义此电子邮件,更改内容。等(不想硬编码)
但这里的问题是我将生成的激活链接。我想我可以将电子邮件内容保存在数据库中。问题在于我必须添加到电子邮件中的动态元素,例如激活链接、站点名称等。
最好的方法是什么,我想我会像 wordpress 那样添加所谓的“短代码”。这个蓝图是什么以及如何整合它?
我有在用户注册后发送的确认电子邮件。现在,我希望管理员能够自定义此电子邮件,更改内容。等(不想硬编码)
但这里的问题是我将生成的激活链接。我想我可以将电子邮件内容保存在数据库中。问题在于我必须添加到电子邮件中的动态元素,例如激活链接、站点名称等。
最好的方法是什么,我想我会像 wordpress 那样添加所谓的“短代码”。这个蓝图是什么以及如何整合它?
您可以使用基于搜索和替换的简单模板系统来解决它;我在下面包含了一个非常基本的示例和一个简短的示例。希望它可以帮助你:)
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/',
));