解决 WordPress 未登录游客无法收到评论通知邮件

前言

这两天发现,如果未登录用户(游客)留下评论后,如果被其它人回复,Ta 是无法收到邮件通知的。一开始我还以为是主题的问题,后来网上搜索发现这是 WordPress 的特性。

图片[1] - 解决 WordPress 子比主题未登录游客无法收到评论通知邮件
图源知乎|https://zhuanlan.zhihu.com/p/673582762

预期行为

未登录的游客 A 在文章留下了评论,并被其他人回复,此时系统应当根据游客 A 评论时填写的邮件地址,向其发送邮件通知。

开始实践

网上相关的教程实在有点少,或者说几乎没有,寻来觅去,终于找到龙笑天下大佬 2016 年的一篇文章 讲过类似的问题,将代码稍作修改正好能符合我的需求。

直接上代码:

//访客评论邮件回复

function comment_mail_notify($comment_id) {
  $admin_notify = '1'; // 管理员是否接收回复通知 ( '1'=要 ; '0'=不要 )
  $admin_email = get_bloginfo ('admin_email'); // $admin_email 默认从wordpress获取,也可改为你指定的邮箱
  $comment = get_comment($comment_id);
  $comment_author_email = trim($comment->comment_author_email);
  $parent_id = $comment->comment_parent ? $comment->comment_parent : '';
  global $wpdb;
  if ( !$wpdb->query("Describe {$wpdb->comments} comment_mail_notify") )
    $wpdb->query("ALTER TABLE {$wpdb->comments} ADD COLUMN comment_mail_notify TINYINT NOT NULL DEFAULT 0;");
  if (($comment_author_email != $admin_email && isset($_POST['comment_mail_notify'])) || ($comment_author_email == $admin_email && $admin_notify == '1'))
    $wpdb->query("UPDATE {$wpdb->comments} SET comment_mail_notify='1' WHERE comment_ID='$comment_id'");
  $notify = $parent_id ? get_comment($parent_id)->comment_mail_notify : '0';
  $spam_confirmed = $comment->comment_approved;
  if ($parent_id != '' && $spam_confirmed != 'spam' && $notify == '1') {
    $wp_email = 'blog@' . preg_replace('#^www.#', '', strtolower($_SERVER['SERVER_NAME'])); // e-mail 发出点,需自行修改
    
    $to = trim(get_comment($parent_id)->comment_author_email);
    $subject = '您的评论收到了一条回复';
    $message = '尊敬的用户:
'; $message .= '您在' . get_the_title($comment->comment_post_ID) . '的评论收到了一条回复:' . '
'; $message .= '
您留下的评论:' . '
'; $message .= '
' . nl2br(get_comment($parent_id)->comment_content) . '
'; //$message .= '
评论于:' . $parent_comment->comment_date . '
'; $message .= '
' . trim($comment->comment_author) . ' 回复了您:' . '
'; $message .= '
' . nl2br($comment->comment_content) . '
'; $message .= '
回复时间:' . $comment->comment_date . '

'; //$from = "From: "" . get_option('blogname') . "" "; $headers = "$fromnContent-Type: text/html; charset=" . get_option('blog_charset') . "n"; wp_mail( $to, $subject, $message, $headers ); //echo 'mail to ', $to, '
' , $subject, $message; // for testing } } add_action('comment_post', 'comment_mail_notify');

将这段代码放入主题的 functions.php 文件底部,然后保存。

添加复选框

可能还会遇到一个问题,部分用户或是出于隐私考虑,在评论时会留下一个假邮箱。

如果设置一个复选框,让用户自主选择是否接收邮件通知,就更好了:

//增加复选框
function add_checkbox() {
  echo '';
}
add_action('comment_form', 'add_checkbox');

同样地,将上面这段代码放入主题的 functions.php 文件底部。

其它

复选框的样式如果与你的主题不契合,还可以自行修改 #comment_mail_notify 的 CSS 样式。

(本文很短,仅作备忘笔记,再次感谢龙笑天下大佬的知识分享!)

图片[2] - 解决 WordPress 子比主题未登录游客无法收到评论通知邮件
效果示例

参考资料

[1] 免插件仅代码实现 WordPress 评论回复邮件提醒 – 龙笑天下 https://www.ilxtx.com/wordpress-mail-reply-style.html

[2] 折腾访客邮件回复 – 登山亦有道 https://chenyan98.cn/2772.html

原创文章,作者:主机仓库,如若转载,请注明出处:https://zhujicangku.com/23.html

(0)
主机仓库主机仓库
上一篇 2025年6月10日
下一篇 2025年6月13日

相关推荐

  • 2025年最新Clash教程 For Windows 详细中文使用图文教程

    前言 clash算是近两年来比较高性能的代理软件,其支持vmess,ss,ssr等协议,通过自己的core来实现的相关代理协议。 这篇文章是配合机场使用订阅的一个教程,很基础的一个…

    2025年8月17日
  • 彻底清除电脑里所有的广告

    前言 郎哥看过很多人的电脑,不是“传奇”广告满屏飞,就是垃圾图标堆成堆,有时候用着用着还会突然弹出尺度很大的那种广告图片,一不小心点到又会下载一大堆垃圾软件…&#823…

    网络资源 2025年11月2日
  • 《自私的基因》——书摘📖

    物种可以被创新性地定义为:相互兼容的基因所组成的合作联合体的栖息地。 想必宇宙的最终命运确实没有意义,但无论如何,我们真有必要将我们生命的希望寄托在宇宙的最终命运上吗?当然不需要,…

    2025年12月31日
  • 10 分钟部署 Cloudreve:你的不限速私人云盘

    图源 Cloudreve 官网 引言 拥有一个自己的云盘,无论存照片、存视频,或者是临时给别人分享一个文件,这些场景都可以优雅应对。 为什么不选择百度/阿里云这些现有的云盘? 1.…

    网络资源 2025年6月4日
  • 优质设计资源:免费可商用,微软的开源表情合集 Fluent Emoji

    视频来源 YouTube|约 1800 个全新设计的 3D emoji 好像最早在 2021 年的时候,微软就发布了这套 “基于 Fluent 语言” 的全新 Emoji ,并宣称…

    网络资源 2025年6月7日
  • 安卓软件去除广告和更新弹窗

    前言 有时候好不容易找到一个实用的软件,打开后却是满屏的广告,或者旧版比新版更好用,但又会不断弹出更新弹窗,这些情况确实令人难受,所以现在就分享常用的软件破解方法——去除广告和更新…

    网络资源 2025年6月23日
  • 两种常见的U盘攻击手段

    前言 在数字化时代,U盘成为了我们日常生活中不可或缺的存储设备之一。然而,正是因为其普遍性和便携性,U盘也成为了黑客们进行攻击的理想工具。通过利用各种技术手段,他们可以在U盘中隐藏…

    网络资源 2025年7月18日
  • 设计之美——iOS设计主题 人机界面准则

    作为应用程序设计师,您有机会提供非凡的产品,将该产品升至App Store榜首作。为此,您需要在质量和功能上达到很高的期望。 iOS与其他平台的三个主要主题不同: • 尊敬 流畅的…

    2025年12月16日
  • 黑客常用操作系统–Kali Linux的安装与使用

    前言 大家可能经常在电影或电视中看到过黑客们各种炫酷的操作,羡慕之余你是否想过自己也可以成为他们呢?让我们从黑客使用的操作系统入手,慢慢进入刺激的黑客世界吧。 身为黑客,肯定要做到…

    网络资源 2025年10月10日
  • 搭建国内版的ChatGPT网站(文末有成品)

    前言 ChatGPT是由OpenAI研发的聊天机器人程序,也可能是当前互联网中最强大的自然语言处理模型,它不仅可以模拟人类的对话方式,甚至可以进行一些创造性的表达。但受大环境的影响…

    网络资源 2025年9月22日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注