feat: 重构邮件模板系统,支持多类型模板自定义

- 新增可扩展的邮件类型系统(评论通知、回复通知、用户注册、密码重置、通用邮件)
- 每种邮件类型支持自定义主题和内容模板
- 实现占位符系统,支持动态数据替换(如 {{blog_name}}、{{post_title}} 等)
- 添加邮件类型启用/禁用开关
- 设置页面新增模板编辑器,支持切换不同邮件类型
- 可用占位符点击即可插入到编辑框
- 支持恢复默认模板功能
- 保留向后兼容的旧版 API
- 通过 filter 钩子支持扩展更多邮件类型
This commit is contained in:
2026-01-15 15:17:47 +08:00
parent 60daa43fb9
commit 5c2f5514c0
4 changed files with 424 additions and 129 deletions

View File

@@ -1,6 +1,6 @@
<?php
/**
* Argon 评论通知邮件模板
* Argon 评论通知邮件
*
* 当博客收到新评论时发送给管理员的通知邮件
*/
@@ -34,25 +34,17 @@ function argon_send_comment_notify_email($comment) {
return false;
}
$settings = argon_get_email_settings();
// 准备邮件内容
$content = argon_get_comment_notify_content(array(
'commenter_name' => $comment->comment_author,
// 准备模板变量
$vars = array(
'post_title' => $post->post_title,
'post_url' => get_permalink($post->ID),
'commenter_name' => $comment->comment_author,
'commenter_email' => $comment->comment_author_email,
'comment_content' => $comment->comment_content,
'comment_url' => get_comment_link($comment),
'theme_color' => $settings['theme_color']
));
// 邮件主题
$subject = sprintf(
'[%s] 新评论:%s',
$settings['blog_name'],
$post->post_title
'comment_date' => get_comment_date(get_option('date_format') . ' ' . get_option('time_format'), $comment),
);
// 发送邮件
return argon_send_email($admin_email, $subject, $content, 'comment');
return argon_send_email($admin_email, 'comment_notify', $vars);
}