纯代码如何实现WordPress评论回复邮件提醒功能及回复邮件样式美化好代码教程

风,从水中掠过,留下粼粼波纹;阳光,从云中穿过,留下丝丝温暖;岁月,从树林中走过,留下圈圈年轮。

很多网站都有评论邮件提醒功能,这样不仅可以提高用户回站的机率,还可以让评论者第一时间知道所评论内容的最新情况,一举两得。为wordpress添加评论回复邮件提醒功能很多人已经了解过,这个功能可以使用插件来实现,但我们一贯遵循“能用代码就用代码”的原则。本文将介绍下“免插件仅代码添加评论邮件提醒的几种实现方法以及我所推荐的清新邮件模版”。

评论回复邮件提醒实现方法

使用前,请确定你的主机是否支持 mail() 函数。下面的代码都是打开主题的funtions.php文件,在末尾最后一个 ?>输入的。来自 @willin kan

第一种:所有回复都发邮件通知

  1. /*comment_mail_notifyv1.0bywillinkan.(所有回复都发邮件)*/
  2. functioncomment_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='no-reply@'.preg_replace('#^www.#','',strtolower($_SERVER['SERVER_NAME']));//e-mail发出点,no-reply可改为可用的e-mail.
  8. $to=trim(get_comment($parent_id)->comment_author_email);
  9. $subject='您在['.get_option("blogname").']的留言有了回复';
  10. $message='
  11. <divstyle="background-color:#eef2fa;border:1pxsolid#d8e3e8;color:#111;padding:015px;-moz-border-radius:5px;-webkit-border-radius:5px;-khtml-border-radius:5px;">
  12. <p>'.trim(get_comment($parent_id)->comment_author).',您好!</p>
  13. <p>您曾在《'.get_the_title($comment->comment_post_ID).'》的留言:<br/>'
  14. .trim(get_comment($parent_id)->comment_content).'</p>
  15. <p>'.trim($comment->comment_author).'给您的回复:<br/>'
  16. .trim($comment->comment_content).'<br/></p>
  17. <p>您可以点击查看回复完整内容</p>
  18. <p>欢迎再度光临'.get_option('blogname').'</p>
  19. <p>(此邮件由系统自动发送,请勿回复.)</p>
  20. </div>';
  21. $from="From:"".get_option('blogname').""<$wp_email>";
  22. $headers="$fromnContent-Type:text/html;charset=".get_option('blog_charset')."n";
  23. wp_mail($to,$subject,$message,$headers);
  24. //echo'mailto',$to,'<br/>',$subject,$message;//fortesting
  25. }
  26. }
  27. add_action('comment_post','comment_mail_notify');
  28. //--END-

第二种:让访客自己选择是否邮件通知

在评论框下方显示一个勾选框,让评论人自己决定是否接收邮件通知。不过要注意的是,具体的#comment_mail_notify 需要你自己定义css以符合你的主题样式。

  1. functioncomment_mail_notify($comment_id){
  2. $admin_notify='1';//admin要不要收回复通知('1'=要;'0'=不要)
  3. $admin_email=get_bloginfo('admin_email');//$admin_email可改为你指定的e-mail.
  4. $comment=get_comment($comment_id);
  5. $comment_author_email=trim($comment->comment_author_email);
  6. $parent_id=$comment->comment_parent?$comment->comment_parent:'';
  7. global$wpdb;
  8. if($wpdb->query("Describe{$wpdb->comments}comment_mail_notify")=='')
  9. $wpdb->query("ALTERTABLE{$wpdb->comments}ADDCOLUMNcomment_mail_notifyTINYINTNOTNULLDEFAULT0;");
  10. if(($comment_author_email!=$admin_email&&isset($_POST['comment_mail_notify']))||($comment_author_email==$admin_email&&$admin_notify=='1'))
  11. $wpdb->query("UPDATE{$wpdb->comments}SETcomment_mail_notify='1'WHEREcomment_ID='$comment_id'");
  12. $notify=$parent_id?get_comment($parent_id)->comment_mail_notify:'0';
  13. $spam_confirmed=$comment->comment_approved;
  14. if($parent_id!=''&&$spam_confirmed!='spam'&&$notify=='1'){
  15. $wp_email='no-reply@'.preg_replace('#^www.#','',strtolower($_SERVER['SERVER_NAME']));//e-mail发出点,no-reply可改为可用的e-mail.
  16. $to=trim(get_comment($parent_id)->comment_author_email);
  17. $subject='您在['.get_option("blogname").']的留言有了回复';
  18. $message='
  19. <divstyle="background-color:#eef2fa;border:1pxsolid#d8e3e8;color:#111;padding:015px;-moz-border-radius:5px;-webkit-border-radius:5px;-khtml-border-radius:5px;">
  20. <p>'.trim(get_comment($parent_id)->comment_author).',您好!</p>
  21. <p>您曾在《'.get_the_title($comment->comment_post_ID).'》的留言:<br/>'
  22. .trim(get_comment($parent_id)->comment_content).'</p>
  23. <p>'.trim($comment->comment_author).'给您的回复:<br/>'
  24. .trim($comment->comment_content).'<br/></p>
  25. <p>您可以点击查看回复的完整内容</p>
  26. <p>还要再度光临'.get_option('blogname').'</p>
  27. <p>(此邮件由系统自动发送,请勿回复.)</p>
  28. </div>';
  29. $from="From:"".get_option('blogname').""<$wp_email>";
  30. $headers="$fromnContent-Type:text/html;charset=".get_option('blog_charset')."n";
  31. wp_mail($to,$subject,$message,$headers);
  32. //echo'mailto',$to,'<br/>',$subject,$message;//fortesting
  33. }
  34. }
  35. add_action('comment_post','comment_mail_notify');
  36. /*自动加勾选栏*/
  37. functionadd_checkbox(){
  38. echo'<inputtype="checkbox"name="comment_mail_notify"id="comment_mail_notify"value="comment_mail_notify"checked="checked"style="margin-left:20px;"/><labelfor="comment_mail_notify">有人回复时邮件通知我</label>';
  39. }
  40. add_action('comment_form','add_checkbox');

第三种:管理员自行决定是否邮件通知

看代码注释,自己取舍。

  1. functioncomment_mail_notify($comment_id){
  2. $admin_email=get_bloginfo('admin_email');//$admin_email可改为你指定的e-mail.
  3. $comment=get_comment($comment_id);
  4. $comment_author_email=trim($comment->comment_author_email);
  5. $parent_id=$comment->comment_parent?$comment->comment_parent:'';
  6. $to=$parent_id?trim(get_comment($parent_id)->comment_author_email):'';
  7. $spam_confirmed=$comment->comment_approved;
  8. if(($parent_id!='')&&($spam_confirmed!='spam')&&($to!=$admin_email)&&($comment_author_email==$admin_email)){
  9. /*上面的判断式,决定发出邮件的必要条件:
  10. ($parent_id!='')&&($spam_confirmed!='spam'):回复的,而且不是spam才可发,必需!!
  11. ($to!=$admin_email):不发给admin.
  12. ($comment_author_email==$admin_email):只有admin的回复才可发.
  13. 可视个人需修改上面的条件.
  14. */
  15. $wp_email='no-reply@'.preg_replace('#^www.#','',strtolower($_SERVER['SERVER_NAME']));//e-mail发出点,no-reply可改为可用的e-mail.
  16. $subject='您在['.get_option("blogname").']的留言有了回复';
  17. $message='
  18. <divstyle="background-color:#eef2fa;border:1pxsolid#d8e3e8;color:#111;padding:015px;-moz-border-radius:5px;-webkit-border-radius:5px;-khtml-border-radius:5px;">
  19. <p>'.trim(get_comment($parent_id)->comment_author).',您好!</p>
  20. <p>您曾在《'.get_the_title($comment->comment_post_ID).'》的留言:<br/>'
  21. .trim(get_comment($parent_id)->comment_content).'</p>
  22. <p>'.trim($comment->comment_author).'给您的回复:<br/>'
  23. .trim($comment->comment_content).'<br/></p>
  24. <p>您可以点击查看回复的完整内容</p>
  25. <p>还要再度光临'.get_option('blogname').'</p>
  26. <p>(此邮件由系统自动发送,请勿回复.)</p>
  27. </div>';
  28. $from="From:"".get_option('blogname').""<$wp_email>";
  29. $headers="$fromnContent-Type:text/html;charset=".get_option('blog_charset')."n";
  30. wp_mail($to,$subject,$message,$headers);
  31. //echo'mailto',$to,'<br/>',$subject,$message;//fortesting
  32. }
  33. }
  34. add_action('comment_post','comment_mail_notify');

美化版评论回复提醒邮件样式

当你完成后,试一下效果,你会发现邮件的样式不怎么好看,甚至是丑陋的,所以我们非常有必要美化一下我们的提醒邮件的样式。

以上就是纯代码如何实现WordPress评论回复邮件提醒功能及回复邮件样式美化好代码教程。许多找借口的人,在享受了借口带来的短暂快乐后,起初有点自责,多多少少有点骗人的味道。可是重复的次数一多,也就变得无所谓了,原本有点良知的心变得麻木不仁。其实,正是借口绊住了前进的脚步,迷惑了原本聪慧的头脑,让成功离你而去。更多关于纯代码如何实现WordPress评论回复邮件提醒功能及回复邮件样式美化好代码教程请关注haodaima.com其它相关文章!

您可能有感兴趣的文章
WordPress站点Gravatar头像前后台不显示的如何解决办法

WordPress做公司官网好吗?会不会显得档次很低?

WordPress主题需要支持https吗?WordPress站点如何如何实现https?

WordPress站点的页面/标签/分类URL地址如何添加.html?

WordPress站点更换了域名后数据库应该如何操作替换新旧域名?