热门标签 | 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学院始终是我信赖的学习平台。 ... [详细]
  • 1函数1.1函数的定义  设xxx和yyy是两个变量,D,icod ... [详细]
  • 本文介绍如何在 Android 中通过代码模拟用户的点击和滑动操作,包括参数说明、事件生成及处理逻辑。详细解析了视图(View)对象、坐标偏移量以及不同类型的滑动方式。 ... [详细]
  • 程序员妻子吐槽:丈夫北漂8年终薪3万,存款情况令人意外
    一位程序员的妻子在网上分享了她丈夫在北京工作八年的经历,月薪仅3万元,存款情况却出乎意料。本文探讨了高学历人才在大城市的职场现状及生活压力。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • QBlog开源博客系统:Page_Load生命周期与参数传递优化(第四部分)
    本教程将深入探讨QBlog开源博客系统的Page_Load生命周期,并介绍一种简洁的参数传递重构方法。通过视频演示和详细讲解,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 在 Windows 10 中,F1 至 F12 键默认设置为快捷功能键。本文将介绍几种有效方法来禁用这些快捷键,并恢复其标准功能键的作用。请注意,部分笔记本电脑的快捷键可能无法完全关闭。 ... [详细]
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社区 版权所有