A-A+

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

2013年08月18日 PHP开源系统 评论 8 条 阅读 347 views 次

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

这对于网站的互访很有必要,还可以提高访客的黏度,所以这个功能得赶紧给实现了,要实现这个功能,得需 要空间支持 mail() 函数,一般的 linux 空间都是支持这个 mail() 函数的。下面的源码就是给访客发送邮件 的一个函数了,将其放到 wordpress 主题下面的 functions.php 中就可以了,有一点要说明的是,其实现在 许多主题都已经给加上这段代码了,在使用之前,可以先检查一下 functions.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 = '
<div style="background-color: #eef2fa; border: 1px soli&lt;br /&gt;&lt;br /&gt;
d #d8e3e8; color: #111; padding: 0 15px; &lt;br /&gt;&lt;br /&gt;
-moz-border-radius: 5px; -webkit-border-radius: 5px; -kh&lt;br /&gt;&lt;br /&gt;
tml-border-radius: 5px;">

'.trim(get_comment($parent_id)-&gt;comment_autho
r).', 您好!

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

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

您可以<a href="' . htmlspecialchars(get_comme&lt;br /&gt;&lt;br /&gt;
nt_link($parent_id)) . '">点击这里查看回复
的完整内容.</a>

欢迎再度光临 <a href="' . get_option('hom&lt;br /&gt;&lt;br /&gt;
e') . '">' . get_option('blogname') .
'</a>

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

</div>
';
$from = "From: \"" . get_option('blognam
e') . "\" &lt;$wp_email&gt;";
$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');
标签:

8 条留言  访客:8 条  博主:0 条

  1. 李明

    博主这里有很多关于WP的知识,有时间要建一个WP博客学习学习,以后会多些关注贵博。

  2. 博客大全

    比较喜欢用多说。

  3. onion

    阿。认真看了下,才看清原来是给访客发送的啊。好,

    • smiling

      给管理员发送邮件不用操作的,wordpress默认就有了。

      • onion

        嗯,但是有的服务器不支持邮件服务。得用插件。

  4. onion

    恩,看到php代码头大了.
    刚才我才设置完邮箱。

    恩,然后你刚刚评论我blog,就收到邮件了呵呵。
    这么还挺方便。不过我yeah.net端口645用不了,最后换到25用非加密才成功。多交流

  5. 牛逼思维

    想要回复邮件样式漂亮点的话还得用css美化下,不过你这个看上去还好

    • smiling

      这是默认主题的CSS样式,感觉还蛮不错的说!

评论已关闭!