搬码资源网广告位 搬码资源网广告位

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/

声明:
本站发布的文章及附件仅限用于学习和研究目的;不得将上述内容用于商业或非法用途,否则后果请用户自负。
本站资源来自网络收集,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。
如果您喜欢该程序,请支持正版软件,得到更好的正版服务。
本文链接:https://www.abnma.com/9926.html,转载请注明出处。
如有侵权,请邮件联系我们删除处理。

0
搬码资源网广告位

评论0

请先

没有账号? 注册  忘记密码?