热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

WordPress添加评论回复邮件提醒通知功能

评论回复后,自动发一封邮件提醒评论人,是提高用户体验的一大举措。倡萌一直都在使用WillinKan大师的评论回复邮件提醒通知代码,相信很多人也在使用,如果你还没有使用,不妨试试。根据自己的需要,选择一种自己需要的代码,添加在主题的functions.php或者pluggable.php(推荐)文件的最后一

评论回复后,自动发一封邮件提醒评论人,是提高用户体验的一大举措。倡萌一直都在使用Willin Kan大师的评论回复邮件提醒通知代码,相信很多人也在使用,如果你还没有使用,不妨试试。

根据自己的需要,选择一种自己需要的代码,添加在主题的 functions.php 或者 pluggable.php(推荐)
 文件的 最后一个 ?> 前面即可:

方法一:所有回复都发送邮件通知

默认所有填写了邮箱的评论都将发邮件提醒评论人,没有任何勾选设置。

/* comment_mail_notify v1.0 by willin kan. (所有回复都发邮件) */
function comment_mail_notify($comment_id) {
  $comment = get_comment($comment_id);
  $parent_id = $comment->comment_parent ? $comment->comment_parent : '';
  $spam_cOnfirmed= $comment->comment_approved;
  if (($parent_id != '') && ($spam_confirmed != 'spam')) {
    $wp_email = 'no-reply@' . preg_replace('#^www.#', '', strtolower($_SERVER['SERVER_NAME'])); //e-mail 发出点, no-reply 可改为可用的 e-mail.
    $to = trim(get_comment($parent_id)->comment_author_email);
    $subject = '您在 [' . get_option("blogname") . '] 的留言有了回复';
    $message = '
    

' . trim(get_comment($parent_id)->comment_author) . ', 您好!

您曾在《' . get_the_title($comment->comment_post_ID) . '》的留言:
' . trim(get_comment($parent_id)->comment_content) . '

' . trim($comment->comment_author) . ' 给您的回复:
' . trim($comment->comment_content) . '

您可以点击 查看回复完整內容

欢迎再度光临 ' . get_option('blogname') . '

(此邮件由系统自动发送,请勿回复.)

&#39;; $from = "From: \"" . get_option(&#39;blogname&#39;) . "\" <$wp_email>"; $headers = "$from\nContent-Type: text/html; charset=" . get_option(&#39;blog_charset&#39;) . "\n"; wp_mail( $to, $subject, $message, $headers ); } } add_action(&#39;comment_post&#39;, &#39;comment_mail_notify&#39;); // -- END ----------------------------------------

方法二:让访客自己选择是否邮件通知

在评论框下方显示一个勾选框,让评论人自己决定是否接收邮件通知。

/* 开始*/
function comment_mail_notify($comment_id) {
  $admin_notify = &#39;1&#39;; // admin 要不要收回复通知 ( &#39;1&#39;=要 ; &#39;0&#39;=不要 )
  $admin_email = get_bloginfo (&#39;admin_email&#39;); // $admin_email 可改为你指定的 e-mail.
  $comment = get_comment($comment_id);
  $comment_author_email = trim($comment->comment_author_email);
  $parent_id = $comment->comment_parent ? $comment->comment_parent : &#39;&#39;;
  global $wpdb;
  if ($wpdb->query("Describe {$wpdb->comments} comment_mail_notify") == &#39;&#39;)
    $wpdb->query("ALTER TABLE {$wpdb->comments} ADD COLUMN comment_mail_notify TINYINT NOT NULL DEFAULT 0;");
  if (($comment_author_email != $admin_email && isset($_POST[&#39;comment_mail_notify&#39;])) || ($comment_author_email == $admin_email && $admin_notify == &#39;1&#39;))
    $wpdb->query("UPDATE {$wpdb->comments} SET comment_mail_notify=&#39;1&#39; WHERE comment_ID=&#39;$comment_id&#39;");
  $notify = $parent_id ? get_comment($parent_id)->comment_mail_notify : &#39;0&#39;;
  $spam_cOnfirmed= $comment->comment_approved;
  if ($parent_id != &#39;&#39; && $spam_confirmed != &#39;spam&#39; && $notify == &#39;1&#39;) {
    $wp_email = &#39;no-reply@&#39; . preg_replace(&#39;#^www.#&#39;, &#39;&#39;, strtolower($_SERVER[&#39;SERVER_NAME&#39;])); // e-mail 发出点, no-reply 可改为可用的 e-mail.
    $to = trim(get_comment($parent_id)->comment_author_email);
    $subject = &#39;您在 [&#39; . get_option("blogname") . &#39;] 的留言有了回复&#39;;
    $message = &#39;
    

&#39; . trim(get_comment($parent_id)->comment_author) . &#39;, 您好!

您曾在《&#39; . get_the_title($comment->comment_post_ID) . &#39;》的留言:
&#39; . trim(get_comment($parent_id)->comment_content) . &#39;

&#39; . trim($comment->comment_author) . &#39; 给您的回复:
&#39; . trim($comment->comment_content) . &#39;

您可以点击查看回复的完整內容

还要再度光临 &#39; . get_option(&#39;blogname&#39;) . &#39;

(此邮件由系统自动发送,请勿回复.)

&#39;; $from = "From: \"" . get_option(&#39;blogname&#39;) . "\" <$wp_email>"; $headers = "$from\nContent-Type: text/html; charset=" . get_option(&#39;blog_charset&#39;) . "\n"; wp_mail( $to, $subject, $message, $headers ); } } add_action(&#39;comment_post&#39;, &#39;comment_mail_notify&#39;); /* 自动加勾选栏 */ function add_checkbox() { echo &#39;&#39;; } add_action(&#39;comment_form&#39;, &#39;add_checkbox&#39;);

方法三:让博客管理员决定什么情况下发邮件

你可以根据自己的需求,配置下面代码(看代码注释),决定什么情况才发邮件。

/* comment_mail_notify v1.0 by willin kan. (无勾选栏) */
function comment_mail_notify($comment_id) {
  $admin_email = get_bloginfo (&#39;admin_email&#39;); // $admin_email 可改为你指定的 e-mail.
  $comment = get_comment($comment_id);
  $comment_author_email = trim($comment->comment_author_email);
  $parent_id = $comment->comment_parent ? $comment->comment_parent : &#39;&#39;;
  $to = $parent_id ? trim(get_comment($parent_id)->comment_author_email) : &#39;&#39;;
  $spam_cOnfirmed= $comment->comment_approved;
  if (($parent_id != &#39;&#39;) && ($spam_confirmed != &#39;spam&#39;) && ($to != $admin_email) && ($comment_author_email == $admin_email)) {
    /* 上面的判断式,决定发出邮件的必要条件:
    ($parent_id != &#39;&#39;) && ($spam_confirmed != &#39;spam&#39;): 回复的, 而且不是 spam 才可发, 必需!!
    ($to != $admin_email) : 不发给 admin.
    ($comment_author_email == $admin_email) : 只有 admin 的回复才可发.
    可视个人需修改上面的条件.
    */
    $wp_email = &#39;no-reply@&#39; . preg_replace(&#39;#^www.#&#39;, &#39;&#39;, strtolower($_SERVER[&#39;SERVER_NAME&#39;])); // e-mail 发出点, no-reply 可改为可用的 e-mail.
    $subject = &#39;您在 [&#39; . get_option("blogname") . &#39;] 的留言有了回复&#39;;
    $message = &#39;
    

&#39; . trim(get_comment($parent_id)->comment_author) . &#39;, 您好!

您曾在《&#39; . get_the_title($comment->comment_post_ID) . &#39;》的留言:
&#39; . trim(get_comment($parent_id)->comment_content) . &#39;

&#39; . trim($comment->comment_author) . &#39; 给您的回复:
&#39; . trim($comment->comment_content) . &#39;

您可以点击 查看回复的完整內容

还要再度光临 &#39; . get_option(&#39;blogname&#39;) . &#39;

(此邮件由系统自动发送,请勿回复.)

&#39;; $from = "From: \"" . get_option(&#39;blogname&#39;) . "\" <$wp_email>"; $headers = "$from\nContent-Type: text/html; charset=" . get_option(&#39;blog_charset&#39;) . "\n"; wp_mail( $to, $subject, $message, $headers ); } } add_action(&#39;comment_post&#39;, &#39;comment_mail_notify&#39;); // -- END ----------------------------------------

方法四:支持嵌套和@用户方式的评论提醒

此方法转载自zww.me,这版本的评论回复通知是支持嵌套和@用户方式的。有什么问题,请到作者页面反馈。

/* 邮件通知 by Qiqiboy */
 function comment_mail_notify($comment_id) {
     $comment = get_comment($comment_id);//根据id获取这条评论相关数据
     $cOntent=$comment->comment_content;
     //对评论内容进行匹配
     $match_count=preg_match_all(&#39;/

备注说明

发送邮件,需要主机支持 mail() 函数,如果你发现没办法收到邮件,可以询问你的主机商。由于每个人的主机环境不一样,有些朋友在添加这个功能的时候,总是不能成功,这时候,你可以试试 SMTP 发送邮件的方式。




推荐阅读
  • 使用Numpy实现无外部库依赖的双线性插值图像缩放
    本文介绍如何仅使用Numpy库,通过双线性插值方法实现图像的高效缩放,避免了对OpenCV等图像处理库的依赖。文中详细解释了算法原理,并提供了完整的代码示例。 ... [详细]
  • QUIC协议:快速UDP互联网连接
    QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 2023 ARM嵌入式系统全国技术巡讲旨在分享ARM公司在半导体知识产权(IP)领域的最新进展。作为全球领先的IP提供商,ARM在嵌入式处理器市场占据主导地位,其产品广泛应用于90%以上的嵌入式设备中。此次巡讲将邀请来自ARM、飞思卡尔以及华清远见教育集团的行业专家,共同探讨当前嵌入式系统的前沿技术和应用。 ... [详细]
  • 国内BI工具迎战国际巨头Tableau,稳步崛起
    尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ... [详细]
  • 深入理解 Oracle 存储函数:计算员工年收入
    本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • CSS 布局:液态三栏混合宽度布局
    本文介绍了如何使用 CSS 实现液态的三栏布局,其中各栏具有不同的宽度设置。通过调整容器和内容区域的属性,可以实现灵活且响应式的网页设计。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • python的交互模式怎么输出名文汉字[python常见问题]
    在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就进入到Python交互模式,它的提示符是>>>,此时我们可以使用print() ... [详细]
  • 火星商店问题:线段树分治与持久化Trie树的应用
    本题涉及编号为1至n的火星商店,每个商店有一个永久商品价值v。操作包括每天在指定商店增加一个新商品,以及查询某段时间内某些商店中所有商品(含永久商品)与给定密码值的最大异或结果。通过线段树分治和持久化Trie树来高效解决此问题。 ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
author-avatar
蔡志哲皇宇
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有