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

WordPress 评论回复邮件通知的实现,第1张

概述说实话蛮久没有好好捣鼓 WordPress 了,这几天一直在考虑 WordPress 评论回复邮件通知的实现。 由于之前管理员邮箱 (webmaster[at]mangguo.org) 架在 Google Apps 上面,导致一直收不到 WordPress 系统邮件。关于这个蛋疼无比的问题,可详细参考:http://ooxx.me/fail-to-receive-emails-with-googl…

说实话蛮久没有好好捣鼓 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/

总结

以上是内存溢出为你收集整理的WordPress 评论回复邮件通知的实现全部内容,希望文章能够帮你解决WordPress 评论回复邮件通知的实现所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/998329.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存