前言
之前就想要弄这个功能了,但是主题不支持,今天果核更新了主题终于支持了
教程
将如下代码放到子主题的function.php
中即可
/**
* 新评论回复邮件通知函数(带按钮,美化界面)
*/
function comment_mail_notify($comment_id) {
// 获取评论对象
$comment = get_comment($comment_id);
if (!$comment || $comment->comment_approved === 'spam') {
return; // 如果评论不存在或标记为垃圾评论,直接返回
}
// 获取父评论 ID
$parent_id = $comment->comment_parent ? $comment->comment_parent : '';
if (empty($parent_id)) {
return; // 如果没有父评论,直接返回
}
// 获取父评论对象
$parent_comment = get_comment($parent_id);
if (!$parent_comment || empty($parent_comment->comment_author_email)) {
return; // 如果父评论不存在或邮箱为空,直接返回
}
// 获取收件人邮箱
$to = trim($parent_comment->comment_author_email);
// 构造邮件内容
$wp_email = 'no-reply@' . preg_replace('#^www.#', '', strtolower($_SERVER['SERVER_NAME']));
$subject = '您在 [' . get_option("blogname") . '] 的留言有了回复';
$comment_link = get_comment_link($comment_id);
$message = '
<div style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto; padding: 20px; border: 1px solid #e0e0e0; border-radius: 8px; background-color: #f9f9f9;">
<h2 style="color: #333; font-size: 24px; margin-bottom: 20px;">' . trim($parent_comment->comment_author) . ', 您好!</h2>
<p style="color: #555; font-size: 16px; line-height: 1.6;">
您曾在文章《' . get_the_title($comment->comment_post_ID) . '》中留言:
</p>
<blockquote style="margin: 20px 0; padding: 10px 20px; background-color: #fff; border-left: 4px solid #0073aa; color: #666; font-style: italic;">
' . trim($parent_comment->comment_content) . '
</blockquote>
<p style="color: #555; font-size: 16px; line-height: 1.6;">
' . trim($comment->comment_author) . ' 给您的回复:
</p>
<blockquote style="margin: 20px 0; padding: 10px 20px; background-color: #fff; border-left: 4px solid #0073aa; color: #666; font-style: italic;">
' . trim($comment->comment_content) . '
</blockquote>
<p style="color: #555; font-size: 16px; line-height: 1.6; text-align: center;">
点击下方按钮查看完整回复内容:
</p>
<div style="text-align: center; margin: 20px 0;">
<a href="' . $comment_link . '" style="display: inline-block; padding: 12px 24px; font-size: 16px; color: #fff; background-color: #0073aa; border-radius: 4px; text-decoration: none;">
查看回复
</a>
</div>
<p style="color: #555; font-size: 16px; line-height: 1.6;">
感谢您对 ' . get_option('blogname') . ' 的支持!
</p>
<p style="color: #999; font-size: 14px; margin-top: 20px; text-align: center;">
此邮件由系统自动发送,请勿直接回复。
</p>
</div>';
// 设置邮件头
$headers = [
'From: "' . get_option('blogname') . '" <' . $wp_email . '>',
'Content-Type: text/html; charset=' . get_option('blog_charset'),
];
// 发送邮件
wp_mail($to, $subject, $message, $headers);
}
// 挂载钩子
add_action('comment_post', 'comment_mail_notify', 5, 1);
add_action('wp_insert_comment', 'comment_mail_notify', 5, 1);
© 版权声明
THE END
暂无评论内容