- 新增可扩展的邮件类型系统(评论通知、回复通知、用户注册、密码重置、通用邮件)
- 每种邮件类型支持自定义主题和内容模板
- 实现占位符系统,支持动态数据替换(如 {{blog_name}}、{{post_title}} 等)
- 添加邮件类型启用/禁用开关
- 设置页面新增模板编辑器,支持切换不同邮件类型
- 可用占位符点击即可插入到编辑框
- 支持恢复默认模板功能
- 保留向后兼容的旧版 API
- 通过 filter 钩子支持扩展更多邮件类型
53 lines
1.5 KiB
PHP
53 lines
1.5 KiB
PHP
<?php
|
|
/**
|
|
* Argon 评论回复通知邮件
|
|
*
|
|
* 当评论收到回复时发送给原评论者的通知邮件
|
|
*/
|
|
|
|
if (!defined('ABSPATH')) {
|
|
exit;
|
|
}
|
|
|
|
/**
|
|
* 发送评论回复通知邮件
|
|
*
|
|
* @param WP_Comment $reply 回复评论对象
|
|
* @param WP_Comment $parent 被回复的评论对象
|
|
* @return bool 发送是否成功
|
|
*/
|
|
function argon_send_reply_notify_email($reply, $parent) {
|
|
// 检查父评论是否存在
|
|
if (!$parent || empty($parent->comment_author_email)) {
|
|
return false;
|
|
}
|
|
|
|
// 获取文章信息
|
|
$post = get_post($reply->comment_post_ID);
|
|
if (!$post) {
|
|
return false;
|
|
}
|
|
|
|
// 不给自己发通知
|
|
$reply_author_email = strtolower($reply->comment_author_email);
|
|
$parent_author_email = strtolower($parent->comment_author_email);
|
|
if ($reply_author_email === $parent_author_email) {
|
|
return false;
|
|
}
|
|
|
|
// 准备模板变量
|
|
$vars = array(
|
|
'post_title' => $post->post_title,
|
|
'post_url' => get_permalink($post->ID),
|
|
'original_comment' => wp_trim_words($parent->comment_content, 50, '...'),
|
|
'replier_name' => $reply->comment_author,
|
|
'replier_email' => $reply->comment_author_email,
|
|
'reply_content' => $reply->comment_content,
|
|
'comment_url' => get_comment_link($reply),
|
|
'reply_date' => get_comment_date(get_option('date_format') . ' ' . get_option('time_format'), $reply),
|
|
);
|
|
|
|
// 发送邮件
|
|
return argon_send_email($parent->comment_author_email, 'reply_notify', $vars);
|
|
}
|