WordPress 评论回复邮件通知的实现

说实话蛮久没有好好捣鼓 WordPress 了,这几天一直在考虑 WordPress 评论回复邮件通知的实现。

由于之前管理员邮箱 (webmaster[at]mangguo.org) 架在 Google Apps 上面,导致一直收不到 WordPress 系统邮件。关于这个蛋疼无比的问题,可详细参考:http://ooxx.me/fail-to-receive-emails-with-google-apps.orz。

既然如此,为了强大的邮件通知功能,只好把邮局切换到主机供应商处,然后设置转发到 QQ 邮箱。保证 WordPress 邮件发送功能可用是实现这个邮件通知的首要条件。

关于实现评论回复邮件通知,百度一下你就知道。也有很多现成的插件可以使用。这里介绍的方法无需插件,只要一份 functions.php 文件和一小段 JavaScript 代码。

芒果采用了 Willin Kan 同学提供的方法,代码也很简单,只有二十几行:

<?php
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 = ‘webmaster@’ . preg_replace(‘#^www.#’, ”, strtolower($_SERVER[‘SERVER_NAME’]));
$to = trim(get_comment($parent_id)->comment_author_email);
$subject = ‘你在 [‘ . get_option("blogname") . ‘] 的留言有了回应’;
$message = ‘
<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;">
<p>’ . trim(get_comment($parent_id)->comment_author) . ‘, 你好!</p>
<p>你曾在《’ . get_the_title($comment->comment_post_ID) . ‘》的留言:<br />’
. trim(get_comment($parent_id)->comment_content) . ‘</p>
<p>’ . trim($comment->comment_author) . ‘ 给你的回应:<br />’
. trim($comment->comment_content) . ‘<br /></p>
<p>你可以点击 <a href="’ . htmlspecialchars(get_comment_link($parent_id)) . ‘">查看回应完整内容</a></p>
<p><strong>感谢你对 <a href="’ . get_option(‘home’) . ‘" target="_blank">’ . get_option(‘blogname’) . ‘</a> 的关注,欢迎<a href="’ . get_option(‘home’) . ‘/feed/" target="_blank">订阅本站</a></strong></p>
<p><strong>您可以直接回复此邮件与我联系~</strong></p>
</div>’;
$from = "From: "" . get_option(‘blogname’) . "" <$wp_email>";
$headers = "$fromContent-Type: text/html; charset=" . get_option(‘blog_charset’) . "";
wp_mail( $to, $subject, $message, $headers );
}
}
add_action(‘comment_post’, ‘comment_mail_notify’);
?>
拷贝以上代码,另存为 functions.php 上传至当前模板目录。

根据 WordPress 的评论机制,判断某条评论是否为回复类型,需要通过 comment_parent 字段来识别。所以当某条评论被回复时,我们需要获得这个被回复评论的唯一 ID,将其和回复关联。

这里我们选择在评论发布表单中设定一个隐藏域,来存放刚刚那个临时 ID,并通过 JavaScript 为每条评论的“回复”链接绑定事件,动态改变隐藏域的 value 属性值。

<input type="hidden" id="comment_parent" name="comment_parent" value="" />JavaScript 代码(芒果这里用的是 jQuery)也很简单:

$(‘.reply’).click(function(){
$(‘#comment_parent’).val($(this).attr(rel));
});每个“回复”链接的 “rel” 属性中存放了当前评论的唯一 ID,通过 $comment -> comment_ID 输出即可。芒果已经测试成功。o(∩_∩)o 哈哈,也没啥技术含量,仅供把玩。

出处:http://www.mangguo.org/

波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » WordPress 评论回复邮件通知的实现

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡