解决 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日

相关推荐

  • Mihomo Party-WIN&苹果电脑图文新手教程

    Mihomo Party是一款功能强大的代理客户端,旨在为用户提供便捷的网络代理服务。其友好的用户界面和丰富的功能,使其成为许多用户的首选。 Mihomo Party是基于 Cla…

    网络资源 2025年8月20日
  • 我们的Ai集合站 — TPAI正式上线运营

    TPAI智能助手 我们的“Ai集合站”——TPAI(简称“T派”,Text+Picture+Ai)正式上线运营啦!诚邀您注册体验! TPAI已经对接GPT3.5、GPT4.0和Mi…

    网络资源 2025年7月14日
  • 记录一次私人服务器的搭建过程

    前言 我一直有一个自建服务器的打算。正好前几天在二手市场花百来块钱淘到了一套老旧的台式机。 查了一下配置,双核+2GB内存+500GB硬盘,用来做服务器已经足够了。 下面就开始我的…

    网络资源 2025年8月31日
  • 不要买小米打印机,会变得不幸…

    小米米家连供喷墨打印一体机,没记错的话是 2022 年 3 月首发买的,1299 大洋。 现在的价格依然坚贞不屈 彼时正好有些打印需求!为了迎合所谓的 “米家生态” ,顺便支持一下…

    2025年5月28日
  • 将本地网站源码上传到Github并使用Netlify搭建静态网站

    前言 很多人都想搭建自己的网站,但是如果按照常规的方法(域名+服务器)不仅成本高,而且搭建过程也很复杂(使用国内的服务器还要备案域名才能正常访问)。现在郎哥分享一套超低成本的建站方…

    网络资源 2025年9月18日
  • 防止 SSL 证书泄露源站 IP

    前言 虽然咱这种小破站没有什么攻击的价值,不过嘛,最好是稍微防一防 ( ̄ ‘i  ̄;) 本新手站长因近期不幸遭到 dd,被迫去学习了一点点网络安全知识,刚刚才了解到 SSL 证书还…

    网络资源 2025年6月15日
  • 2025年Clash for Android 使用教程

    1. 简介展开目录 Clash 是一个使用 Go 语言编写,基于规则的跨平台代理软件核心程序。Clash for Android 是安卓系统上的一款 Clash 客户端。需要订阅可…

    2025年8月14日
  • 用 h5ai 搭建一个极简网盘/下载站

    h5ai 提供了一个直观且简洁的界面,方便其他人下载你在服务器上提供的文件。 与 Cloudreve 那种意义上的「网盘」这些不同,h5ai 就是相当于把服务器的文件目录美化了一下…

    网络资源 2025年6月2日
  • KSWEB,让废旧手机变身 Linux 服务器

    ⚠ 注意: 原文章发布于 2022/7/11 这是一篇从旧博客导入的文章,排版可能存在问题。若影响阅读可留言反馈。 介绍 发现了一个挺有趣的俄罗斯软件:KSWEB,可以在安卓手机上…

    网络资源 2025年5月30日
  • 关于CMD和DOS,你真的了解吗?

    前言 初中时候的信息课上,我们一开始就接触到了CMD。还记得那时候郎哥用得最多的命令就是 12 color adir /s 输入这两个命令后,看着滚动的屏幕,感觉那逼隔瞬间就有了 …

    网络资源 2025年10月31日

发表回复

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