WordPress实现评论回复邮件通知(2)

2018年4月28日18:52:45 发表评论 467 阅读
摘要

接着上文WordPress实现评论回复邮件通知(1),上文写的是,评论后通知网站管理员,本文写的是,评论回复后会邮件通知用户,我觉得这是一件有意义的事情,对用户以及管理员来说,在互联网+时代,这是很有必要的。

添加回复邮件通知用户代码

  1. /* 邮件回复通知*/
  2. function comment_mail_notify($comment_id) {
  3.   $comment = get_comment($comment_id);
  4.   $parent_id = $comment->comment_parent ? $comment->comment_parent : '';
  5.   $spam_confirmed = $comment->comment_approved;
  6.   if (($parent_id != '') && ($spam_confirmed != 'spam')) {
  7.     $wp_email = 'xxxxx@163.com'; //e-mail 发出点, no-reply 可改为可用的 e-mail.
  8.     $to = trim(get_comment($parent_id)->comment_author_email);
  9.     $subject = '您在 [' . get_option("blogname") . '] 的留言有了回复';
  10.     $message = '
  11.     <div style="background-color:#eef2fa; border:1px solid #d8e3e8; color:#111; padding:0 15px; -moz-border-radius:5px; -webkit-border-radius:5px; -khtml-border-radius:5px;">
  12.       <p>' . trim(get_comment($parent_id)->comment_author) . ', 您好!</p>
  13.       <p><strong>您曾在《' . get_the_title($comment->comment_post_ID) . '》的留言:</strong><br />'
  14.        . trim(get_comment($parent_id)->comment_content) . '</p>
  15.       <p><strong>' . trim($comment->comment_author) . ' 给您的回复:</strong><br />'
  16.        . trim($comment->comment_content) . '<br /></p>
  17.       <p>您可以点击 <a href="' . htmlspecialchars(get_comment_link($parent_id)) . '" target="_blank">查看回复完整內容</a></p>
  18.       <p>欢迎再度光临 <a href="http://www.yelook.com" target="_blank">' . get_option('blogname') . '</a></p>
  19.       <p>(此邮件由系统自动发送,请勿回复.)</p>
  20.     </div>';
  21.       $from = "From: \"" . get_option('blogname') . "\" <$wp_email>";
  22.       $headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
  23.       wp_mail( $to, $subject, $message, $headers );
  24.   }
  25. }
  26. add_action('comment_post', 'comment_mail_notify');

以上代码添加到functions.php中(警告!如果主题自带了评论回复代码,再添加此段代码将会导致后台出现空白现象,因为不能同时出现两个邮件通知用户代码,如果出现冲突,需要进入服务器把更改的文件复原就会恢复原样

因为本人用的知更鸟主题,所以主题中自带了回复评论的代码,在主题下notify.php中,但是评论样式不好看,所以编辑了一下样式代码,可以参考一下:

  1. <?php
  2. function comment_mail_notify($comment_id) {
  3.     $admin_notify = '1'; // admin 要不要收回复通知 ( '1'=要 ; '0'=不要 )
  4.     $admin_email = get_bloginfo ('admin_email');
  5.     $comment = get_comment($comment_id);
  6.     $comment_author_email = trim($comment->comment_author_email);
  7.     $parent_id = $comment->comment_parent ? $comment->comment_parent : '';
  8.     global $wpdb;
  9.     if ($wpdb->query("Describe {$wpdb->comments} comment_mail_notify") == '')
  10.     $wpdb->query("ALTER TABLE {$wpdb->comments} ADD COLUMN comment_mail_notify TINYINT NOT NULL DEFAULT 0;");
  11.     if (($comment_author_email != $admin_email && isset($_POST['comment_mail_notify'])) || ($comment_author_email == $admin_email && $admin_notify == '1'))
  12.     $wpdb->query("UPDATE {$wpdb->comments} SET comment_mail_notify='1' WHERE comment_ID='$comment_id'");
  13.     $notify = $parent_id ? get_comment($parent_id)->comment_mail_notify : '0';
  14.     $spam_confirmed = $comment->comment_approved;
  15.     if ($parent_id != '' && $spam_confirmed != 'spam' && $notify == '1') {
  16.         $wp_email = 'haohaitao28@163.com'; // e-mail 发出点, no-reply 可改为可用的 e-mail.
  17.         $to = trim(get_comment($parent_id)->comment_author_email);
  18.         $subject = '您在 [' . get_option("blogname") . '] 的留言有了新回复';
  19.         $message = '
  20.         <p style="color: #4F4F4F;font-size:15px;line-height:24px;font-weight: bolder;">' . trim(get_comment($parent_id)->comment_author) . ', 您好!</p>
  21.                 <p style="color: #6e6e6e;font-size:13px;line-height:24px;">您在《' . get_the_title($comment->comment_post_ID) . '》的留言:<br />
  22.                 <p style="color: #6e6e6e;font-size:13px;line-height:24px;padding:10px 20px;background:#f8f8f8;margin:0px">'. trim(get_comment($parent_id)->comment_content) . '</p>
  23.                 <p style="color: #4F4F4F;font-size:15px;line-height:24px;font-weight: bolder;">' . trim($comment->comment_author) . ' 给你的回复:<br />
  24.                 <p style="color: #6e6e6e;font-size:13px;line-height:24px;padding:10px 20px;background:#f8f8f8;margin:0px">'. trim($comment->comment_content) . '</p>
  25.                 <p style="color: #6e6e6e;font-size:13px;line-height:24px;">你可以点击<a href="' . htmlspecialchars(get_comment_link($parent_id)) . '">查看完整回复內容</a></p>
  26.                 <p style="color: #6e6e6e;font-size:13px;line-height:24px;">欢迎您再度光临<a href="' . home_url() . '">' . get_option('blogname') . '</a>!</p>
  27.         <p style="color: #6e6e6e;font-size:13px;line-height:24px;">(此邮件由系统自动发出, 请勿回复。)</p>';
  28.         $from = "From: \"" . get_option('blogname') . "\" <$wp_email>";
  29.         $headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
  30.         wp_mail( $to, $subject, $message, $headers );
  31.     }
  32. }
  33. add_action('comment_post', 'comment_mail_notify');

注意!代码中的邮箱地址以及网站地址要改成自己的!

邮箱样式对比。

样式未改之前:

WordPress实现评论回复邮件通知(2)

更改过后:

WordPress实现评论回复邮件通知(2)

最后,需要特殊说明一下,本人没有设置其他的什么东西,比如class-smtp.php,以及allow_url_fopen,allow_url_fopen为 Off状态(网上有的说需要开启fopen,以及打开class-smtp.php设置mail函数未打开状态,但是本文没有用到)

本文综合参考文章:

https://liuyanzhao.com/4417.html

http://www.yelook.com/1113.html

  • 我的微信号
  • 深入交流一下吧
  • weinxin
  • 我的微信公众号
  • 添加公众号了解更多动态
  • weinxin
舍得

发表评论

不高兴 彩虹 吃瓜 丢翔 乖 滑稽 花心 惊哭 惊讶 挤眼 酷 伤心 帅吗? 礼物 玫瑰 怒 生气 喷 睡觉 太开心 小九九 啊
太阳 吐舌 委屈 笑眼 星星月亮 心碎 咦 阴险 疑问 真棒 偷笑 斜眼笑 震惊 略 哈欠 无奈哭 抠鼻 哼 期待 懒得理你 爱心 蜡烛