评论回复邮件通知是指:你回复了A的评论,A会收到相应的邮件通知。
新建一个插件,只需要一个php文件就可以了.
首先是add_action
add_action('comment_post', 'comment_notify');
然后实现我们的发送邮件函数。主要就是根据wordpress的API获取相关信息,然后调用wp_mail函数进行发送即可。
修改源邮件地址可以在header里面修改:
$message_headers = 'From: Acm之家 <no-reply@acmerblog.com>' . "\r\n\\";
注意区分 comment 和 old_comment。后者指被回复的评论。
这里以我的网站 ACM之家 www.acmerblog.com 为例:
<?php
add_action('comment_post', 'comment_notify');
function comment_notify($comment_reply_id)
{
$comment = get_comment($comment_reply_id);
if($comment->comment_parent != 0)
{
$old_comment = get_comment($comment->comment_parent);//被回复的评论
if($old_comment->user_id == 0)
{
$email = $old_comment->comment_author_email; //A评论者的邮箱,作为目的地址
$name = $comment->comment_author;
$content = $comment->comment_content;
$post = get_post($comment->comment_post_ID);
$title = $post->post_title;
$link = get_permalink($comment->comment_post_ID);
$bname=get_option('blogname'); //获取到网站的名称, ACM之家。 这里没有用这个变量,后面直接写死了
$blogname = wp_specialchars_decode($bname, ENT_QUOTES);
$subject = sprintf('[%1$s]在[%2$s]中回复了你', $name, $title ); //邮件的主题
//$subject = sprintf('[%1$s] 评论回复: "%2$s"', $blogname, $title );
$notify_message = sprintf('你在《%s》的评论有新回复', $title ) . "\r\n";
$notify_message .= sprintf( '评论者 : %1$s ', $name ) . "\r\n";
$notify_message .= '评论内容: ' . "\r\n" . $content . "\r\n\r\n";
$notify_message .= '您可在这里查看这篇文章的评论: ' . "\r\n";
$notify_message .= $link . "#comments\r\n\r\n";
$message_headers = 'From: Acm之家 <no-reply@acmerblog.com>' . "\r\n\\"; //header的应用可以更改邮件的源地址
$message_headers .= "Content-Type: text/plain; charset=\"" . get_option('blog_charset') . "\"\n";
wp_mail( $email, $subject, $notify_message, $message_headers );
}
}
}
?>