Home > Technology, WordPress > 评论短信提醒 (补充)

评论短信提醒 (补充)

之前我写了个插件用飞信来提醒有新评论.但是很多的博客主机并不支持其中的一些函数.鱼叔说用Snoop这个类来实现.但是我对飞信的通信协议还没有弄明白.它是混合协议的,以我现在的能力还无法对它做全面的了解,目前也没有这个时间.所以我今天给大家介绍个新的办法.也能很好的解决留言提醒的问题.

这个替代的办法就是给139邮箱发邮件.这个也是免费的服务.其实现在已经有不少的博友开始使用这个了.前提是你激活了邮箱,并且设置了新邮件短信提醒.

具体的实现思路是用 comment_post 这个钩子调用个发邮件的函数.并向它传递参数以获得评论的相关内容.你可以将以下代码放入你主题的functions.php中.

add_action('comment_post', create_function('$cmid', 'return philna_comment_send_mail($cmid);'));
function philna_comment_send_mail($cmid){
/*
这个是从官方找到的get_commentdata的用法:
get_commentdata( $comment_ID, $no_cache = 0, $include_unapproved = false )
*/
$commentdata = get_commentdata($cmid,1,true);
$comment_author=$commentdata['comment_author'];
$commentcontent=$commentdata['comment_content'];
$post_id=$commentdata['comment_post_ID'];
$post=get_post($post_id);
$post_title=$post->post_title;
$message=$comment_author.' 在日志: <em>'.$post_title.'  </em><strong>说 :</strong>  '.$commentcontent;
 
$blogname = get_option('blogname');
$charset = get_option('blog_charset');
$mail_headers  = "From: $blogname \n" ;
$mail_headers .= "MIME-Version: 1.0\n";
$mail_headers .= "Content-Type: text/html;charset=\"$charset\"\n";
 
$to='你的手机号@139.com';
$subject='博客评论提醒 来自:'.$comment_author;
@wp_mail($to, $subject,$message,$mail_headers);
}

扩展

给多个用户提醒

很多的朋友对我插件提出了意见.要求给多个人发短信,因为他的网站有多个管理员,这里很容易实现的,你可以修改$to变量.每个邮箱以半角的逗号分开即可.就像这样:

$to='第一个手机号@139.com,第二个手机号@139.com';

对Spam不进行提醒

这个也容易实现,我们对$commentdata这个数组中的comment_approved键值判断一下就好.你可在获取到$commentdata后,追加如下代码:

$comment_state=$commentdata['comment_approved'];
if($comment_state=='spam'){
return;
}

只针对我指定的朋友提醒

也有人和我说到这个了.他的博客评论太多,骚扰的很厉害,他只想收到他很关注的朋友们的评论信息.这个要求也不难实现,你可在$comment_author后面追加以下代码:

$my_friends_list=array('朋友的名字1','朋友的名字2','朋友的名字3');
//上面的数组你还可以追加多些名字.
if(!in_array($comment_author,$my_friends_list)){
return;
}

嗯,基本的扩展就是这么多了.关于时间段的限制没有必要到这里实现,因为移动的短信提醒有自己的设置的.

要注意的事项.代码里面出现了中文,所以你最好保存成UTF-8无BOM的格式.

补充说明.

这个替换的方式因该要比我之前写的插件要好些也没有什么延时.因为不需要考虑移动飞信端口的稳定性,以及你的博客服务器等复杂因素了.只是发个邮件.仅此而已.

如果你的主机不支持发送邮件!那我真的很囧.你找个SMTP的插件试试吧.

关于Comment Fetion Alert(评论飞信提醒)这个插件我真的没有更新的打算.其中的fetion类也不是我写的.我只是修改了一下.如果谁知道作者一定要告诉我啊,先谢谢了.我的能力非常有限.php还没有学好呢,对于那种混合性的通信模式真是无能为力.如果你有好的实现办法,倒是很欢迎和我讨论.有机会的话,我们可以继续开发一下这个插件.哈哈. :grin:

  1. Brhum May 5th, 2009 @ 04:10 | #26

    不错很适合我

  2. Kid May 6th, 2009 @ 22:59 | #27

    我直接在插件里加入
    $comment_state=$commentdata['comment_approved'];
    if($comment_state==’spam’){
    return;
    }
    不就行了?

  3. leaveoff Sep 4th, 2009 @ 14:00 | #28

    这个好像会把待审的评论也提醒吧? :?:

  4. seri Sep 19th, 2009 @ 21:10 | #29

    关键,管理员回复也发短信 =。=如何屏蔽 – - (ps:偶在别的地方下到了别人加过防止spam的飞信提醒插件!=。=

Submitting Comment, Give me a second...
Comment pages 1 2

Leave a comment

Allowed tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">
Trackbacks & Pingbacks ( 2 )
  1. Apr 29th, 2009 @ 18:23 | #1
    Pingback: 给WordPress增加留言评论的短信提醒功能 | FanBing.NET 范冰
  2. Sep 4th, 2009 @ 14:09 | #2
    Pingback: Leaveoff's blog » WP手记:评论实时短信提醒