A-A+

WordPress无插件代码实现评论回复邮件通知

2013年08月18日 编程技术 暂无评论

在 wordpress 后台的 设置>讨论 的地方有关于 wordpress 博客系统的评论功能的设置,其中有一项是关于 “何时发送电子邮件”的设置,一共有两项选择 (1),有人发表评论时 (2)有评论等待审核时,这两项都是默 认选中的,也就是当有访客在博客上进行留言时,系统会发通知到管理员的邮箱当中,请注意,这里是发送到 管理员的邮箱里面,跟我们所讨论的“wordpress无插件代码实现评论回复邮件通知”的功能是不一样的,我 们这里要讨论的是给访客进行回复,也就是访客在博客上进行提问问题,我们在进行回复时,访客会第一时间 通过邮箱接受到回复的内容。

这对于网站的互访很有必要,还可以提高访客的黏度,所以这个功能得赶紧给实现了,要实现这个功能,得需 要空间支持 mail() 函数,一般的 linux 空间都是支持这个 mail() 函数的。下面的源码就是给访客发送邮件 的一个函数了,将其放到 wordpress 主题下面的 functions.php 中就可以了,有一点要说明的是,其实现在 许多主题都已经给加上这段代码了,在使用之前,可以先检查一下 functions.php 中有没有下面的代码:

[code lang="php"]
//comment_mail_notify(所有的回复都会发邮件通知)
function comment_mail_notify($comment_id) {
$comment = get_comment($comment_id);
$parent_id = $comment->comment_parent ? $comment->commen
t_parent : '';
$spam_confirmed = $comment->comment_approved;
if (($parent_id != '') && ($spam_confirmed != 'spam')) {
$wp_email = 'no-reply@' . preg_replace('#^www\.#', '', st
rtolower($_SERVER
['SERVER_NAME']));//发件人e-mail地址
$to = trim(get_comment($parent_id)->comment_author_email);
$subject = '您在['.get_option("blogname").']的留言有了回复';
$message = '

'.trim(get_comment($parent_id)->comment_autho
r).', 您好!

这是您在《'.get_the_title($comment->comment_pos
t_ID).'》中的留言:
'
.trim(get_comment($parent_id)->comment_conten
t).'

以下是'.trim($comment->comment_author).' 给您的
回复:
'
.trim($comment->comment_content).'

您可以点击这里查看回复
的完整内容.

欢迎再度光临 ' . get_option('blogname') .
'

(注:此邮件由系统自动发出,请勿回复!)

';
$from = "From: \"" . get_option('blognam
e') . "\" <$wp_email>";
$headers = "$from\nContent-Type: text/html
; charset=" . get_option('blog_charset') . "\n";
wp_mail( $to, $subject, $message, $headers );
//echo 'mail to ', $to, '
' , $subjec
t, $message; // for testing
}
}
add_action('comment_post', 'comment_mail_no
tify');
[/code]

标签:

评论已关闭!