最新动态:感谢@所以呢,让笔者找到了原文作者,本文来源:http://kan.willin.org/?p=1295
下面的方法是一年多前在论坛上找到的。当时楼主用TXT文件把代码整理出来,供大家下载,笔者下载保存到本地了。笔者也是转载的,至今不知道版权是哪位老师的,时隔一年,重新整理了一下这篇文章,希望对各位有帮助。
访客评论被回复后能收到一封邮件,能留住访客,对网站的好处就不用说啦!我网上找了一圈,这样的插件很多,优点是方便,缺点嘛!大家都 知道!今天来介绍一下!可以通过简单的修改代码实现,效果见本站!
第一要服务器支持mail() 功能. 测试方式: 在登入页故意按下’忘记密码’, 收到邮件就有mail() 功能; 没收到邮件的就不要往下看啦!
第二步 把下面的代码粘贴到functions.php文件中,<?php后面
一、有勾选栏, 由访客决定是否要回应邮件通知: (会在模板自动加勾选栏, 如果不想自动加, 可把后面一小段删除.)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | function comment_mail_notify($comment_id) {
$admin = 'willin'; //
$admin_notify = '1'; //
$comment = get_comment($comment_id);
$comment_author = trim($comment->comment_author);
$parent_id = $comment->comment_parent;
$to = trim(get_comment($parent_id)->comment_author_email);
global $wpdb;
if ($wpdb->query("Describe {$wpdb->comments} comment_mail_notify") == '')
$wpdb->query("ALTER TABLE {$wpdb->comments} ADD COLUMN comment_mail_notify TINYINT NOT NULL DEFAULT 0;");
if (($comment_author != $admin && isset($_POST['comment_mail_notify'])) || ($comment_author == $admin && $admin_notify == '1'))
$wpdb->query("UPDATE {$wpdb->comments} SET comment_mail_notify='1' WHERE comment_ID='$comment_id'");
$notify = get_comment($parent_id)->comment_mail_notify;
$spam_confirmed = $comment->comment_approved;
if (($parent_id != '') && ($spam_confirmed != 'spam') && ($notify == '1')) {
$wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME'])); //.
$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>' . $comment_author . ' 給您的回复:<br />
' . trim($comment->comment_content) . '<br /></p>
<p>您可以点击 <a href="' . htmlspecialchars(get_comment_link($parent_id)) . '"> 查看回复完整內容</a></p>
<p>欢迎再度光临 <a href="' . get_option('home') . '">' . get_option('blogname') . '</a></p>
<p>今日推荐:2011年最佳十大<a href="http://www.hostjike.com/" target="_blank">美国主机排名</a></p>
<p>(此邮件由系統自动发出, 请勿回复.)</p>
</div>';
$from = "From: \"" . get_option('blogname') . "\" <$wp_email>";
$headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
wp_mail( $to, $subject, $message, $headers );
}
}
add_action('comment_post', 'comment_mail_notify');
/* 自動加勾選欄 */
function add_checkbox() {
echo '<input type="checkbox" name="comment_mail_notify" id="comment_mail_notify" value="comment_mail_notify" checked="checked" style="width:auto;" /><label for="comment_mail_notify">有人回复时邮件通知我</label>';
}
add_action('comment_form', 'add_checkbox');
// -- END ---------------------------------------- |
二、无勾选项, 由管理者決定在什么条件下发邮件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | function comment_mail_notify($comment_id) {
$admin = 'willin'; // 改為你的名字.
$comment = get_comment($comment_id);
$comment_author = trim($comment->comment_author);
$parent_id = $comment->comment_parent;
$to = trim( get_comment( $parent_id )->comment_author);
$spam_confirmed = $comment->comment_approved;
if (($parent_id != '') && ($spam_confirmed != 'spam') && ($to != $admin) && ($comment_author == $admin)) {
/* 上面的判斷式,決定發出郵件的必要條件:
($parent_id != '') : 回覆的才可發.
($to != $admin) : 不發給 admin.
($comment_author == $admin) : admin 的回覆才可發.
可視個人需求修改以上條件.
*/
$wp_email = 'no-reply@' . 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>' . $comment_author . ' 給您的回應:<br />
' . trim($comment->comment_content) . '<br /></p>
<p>您可以点击 <a href="' . htmlspecialchars(get_comment_link($parent_id)) . '"> 查看回應完整內容</a></p>
<p>欢迎再度光臨 <a href="' . get_option('home') . '">' . get_option('blogname') . '</a></p>
<p>今日推荐:2011年最佳十大<a href="http://www.hostjike.com/" target="_blank">美国主机排名</a></p>
<p>(此邮件由系統自动发出, 请勿回复.)</p>
</div>';
$from = "From: \"" . get_option('blogname') . "\" <$wp_email>";
$headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
wp_mail( $to, $subject, $message, $headers );
}
}
add_action('comment_post', 'comment_mail_notify');
// -- END ---------------------------------------- |
三、所有回复都发邮件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | function comment_mail_notify($comment_id) {
$comment = get_comment($comment_id);
$comment_author = trim($comment->comment_author);
$parent_id = $comment->comment_parent;
$spam_confirmed = $comment->comment_approved;
if (($parent_id != '') && ($spam_confirmed != 'spam')) {
$wp_email = 'no-reply@' . 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>' . $comment_author . ' 給您的回應:<br />
' . trim($comment->comment_content) . '<br /></p>
<p>您可以点击 <a href="' . htmlspecialchars(get_comment_link($parent_id)) . '"> 查看回應完整內容</a></p>
<p>歡迎再度光临 <a href="' . get_option('home') . '">' . get_option('blogname') . '</a></p>
<p>今日推荐:2011年最佳十大<a href="http://www.hostjike.com/" target="_blank">美国主机排名</a></p>
<p>(此邮件由系統自动发出, 请勿回复.)</p>
</div>';
$from = "From: \"" . get_option('blogname') . "\" <$wp_email>";
$headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
wp_mail( $to, $subject, $message, $headers );
}
}
add_action('comment_post', 'comment_mail_notify');
// -- END ---------------------------------------- |
才添加这个功能没多久。
博主怎么还没联系我?
Q:648287913,看来我的邮件回复你没有收到。
已加…
我用的是用插件。。但是郁闷的是用gmail收不到我的邮件。。。可能是因为以前建论坛。注册时就发邮件到注册人的邮箱。结果gmail就认为我的是垃圾邮件了。。
Google的企业邮局收不到吧…Cpanel上面设置mx记录就好了
不是。。是所有gmail都收不到我发出来的通知。可能直接被拦截了。。
换个发信邮箱哈!
一语中的,,,原来真可以改。。我一直以为要在vps 中改。。。原来在wp中改。。测试成功、、。
学习一啊,看完了也不是很懂,继续学习
这个方法好像不适用于ZBLOG,看来我被 WordPress 包围了!
都什么年代了? 还Zblog?嘿嘿
热,转载的wii大师的@!还加了自己的链接进去
惭愧惭愧!谢谢您,我已经将原文链接加上!
哈,博主你真的太客气了。或许你还不知道我是谁,不知你还记得以前你和我交换友情链接【站点是美国主机评测网】,后来出去工作没时间管理就出售了。博主现在做得不错嘛,我有时间也来了你的博客的,以后互相学习啊!
已经出售了?一直把评测网链接挂着呢,最近才发现很久没更新了,所以转移到了内页…以后互相学习啊!
恩,出售了5个月之多!那人拿去把描述改了,就被百度降权了,收录也少老!现在专心在搞这个博客,感觉自己做广泛了,也老火啊!
BD太奇怪了…卖了多少,能否透露下?哈哈
win主机是不是不能实现?
求教….
WIN主机肯定是可以实现的,具体怎么做,我也没具体操作过
来关注了额 嘿嘿
嗯 學習了
代码狠让人头疼 呵呵
复杂过去就好了
这个法子还是太复杂了点。
不是吧!老兄先看看我的效果吧!
这还叫简单呢。那么一大堆字母。
复制 粘贴就搞定了
测试一下 嘻嘻 看看你做的成不成功
老兄还不相信我…
测试一下~~~~~~~~~~~~~
放心,肯定没问题
博主的文章真好,支持!
呀 不会又发不出去吧!
哈哈!不存在吧! 先试试
又是代码 真是怕怕了!
复制》》粘贴 就搞定了
我的添加了也没用 哈哈 限制了php脚本访问网络 只能本地访问 wp后台更新提示都不好有的
本地测试?看到贵博添加了啊!哈哈
不是 我的空间 商限制了php 脚本访问的 后台wp更新提示都永远不会有 免费的空间没办法
这个太好了,一直想找个不用插件、文章评论不发邮件、评论被回复发邮件的方法,去试试。
成功了,记得回来下,哈哈
搞好了,不过貌似你没加原文链接啊。
邮件里面的,查看回复完整內容。这个就是原文链接
我是说这仨函数的出处,你没给原作者留链接。
你还邪恶地在邮件里加了推广链接啊,好办法,哈哈。
我不知道是哪位写的函数,日志是我写的,所以没留原文链接啊。日志开头特别说明了一下
邮箱里面经常被塞满
垃圾邮件挺多的吧,哈哈! 能不能收到邮件呢?
这东东看起来还不错,不过我貌似不会搞,太多代码,纠结
简单复制粘贴就好了…
楼上貌似测试成功了,我也搞到我代码中去试试。。。
哈哈!能不能收到邮件?
这些代码忒难的。
复制》粘贴 就好了,不难的
我的在登录界面可以收到邮件,可是就是不能让别人收到我评论时的邮件.郁闷,
完全没看懂,能收到邮件就OK啊!
这是willin的无插件版本,昨天试了一下,在我的主题下貌似没啥反应,只能放弃了..
这个和主题没关系的! 只要主机支持就好了!
仔细看了一下代码,没看明白,wp_mail这个函数,是WP系统自带的吗?,add_action(‘comment_form’, ‘add_checkbox’);还有这个是不是应该放在comments里~ 怪怪的,刚开始玩WP,对结构还不是很了解…
这也是朋友教我的!我也看不懂,我用起来还是蛮舒服的!
如果担心编码问题,,留个邮箱给你!我用记事本,打包发给你!
邮箱后台可以看到啊,我想仔细再看看是怎么回事~
能收到邮件吗? (*^__^*) 嘻嘻……
这个怎么实现的,请详细告诉下.多谢了,
登录后台>>外观>>编辑>>functions.php
把相应的代码粘贴到functions.php文件<?php后面,就搞定了!
你再试试!
偶自己就这样弄的,你能收到邮件吗?
我能收到你的回复邮件通知,可是我这里让你刚才说的也那样做了,现在访问http://www.liangkun.net出现这样的错误提示:
Fatal error: Call to undefined function add_action() in /wp-includes/functions.php on line 37
你先把functions.php还原,把上面代码中全角换成半角!再试试!
这么好的东西 可惜我的空间不支持 –
确实挺可惜的!哈哈!
可以收到 真是太奇妙了~~
那个要怎么改?我的怎么不能收?
把下面的代码粘贴到 functions.php文件<?php后面,就好了!
if (($parent_id != ”) && ($spam_confirmed != ’spam’) && ($notify == ‘1′)) {
$wp_email = ‘no-reply@’ . preg_replace(‘#^www\.#’, ”, strtolower($_SERVER['SERVER_NAME'])); //e-mail 发出点, no-reply 可改为可用的e-mail.
这里要怎么改?
测试一下 嘻嘻 看看你做的成不成功~~快点回复啊~~
嘻嘻!能收到邮件吗?