哇,又一次沾到小T的光了……Comment Mail Notify
人品不行就是不行……唉,试了两天,各种试发,不习惯在后台直接编辑代码,以为notepad++编辑会更为保险……也许从复制到那里的代码空格变为问号就注定这我失败了……我辗转两天……本来是一个没有技术含量的活也整得让我精疲力竭……
干什么事都不顺……玩古剑奇谭玩了两个小时愣是没玩出剧情……一直对话来对话去……要不是我分配好星蕴了,早就放弃,等下拨再重新来过呢……后来在QQ上发了牢骚,引来的回复才大彻大悟……在剧情地点是不需要找存档点的……我擦啊。我说偌大的城里面怎么没有存档点的……原来处处皆是存档点啊……我这个游戏外行……幸亏这两天没咋出门,按这运气,必是灾气横行啊…… 还好,按着小T发来的源文件,直接复制代码,竟然没有出现丝毫的问题……还那么顺利……不过小T根据他的主题改了该CSS样式,这里引过来的就不还原了,用时自行参考默认的……{按小T的这种把那个多选框给隐藏了,变成了不能任访客选择,倒成了原来用插件时的那种模式了……}
<?php
/**
* 评论邮件通知功能 v1.0
* 作者:willin kan
* 功能:通过勾选框让访客选择是否接收邮件通知
*/
/**
* 评论邮件通知处理函数
*
* @param int $comment_id 评论ID
*/
function comment_mail_notify($comment_id) {
// 管理员设置
$admin_notify = '1'; // 管理员是否接收回复通知 ('1'=接收 ; '0'=不接收)
$admin_email = get_bloginfo('admin_email'); // 可替换为指定邮箱
// 获取评论信息
$comment = get_comment($comment_id);
$comment_author_email = trim($comment->comment_author_email);
$parent_id = $comment->comment_parent ? $comment->comment_parent : '';
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_email != $admin_email && isset($_POST['comment_mail_notify'])) ||
($comment_author_email == $admin_email && $admin_notify == '1')) {
$wpdb->query("UPDATE {$wpdb->comments} SET comment_mail_notify='1' WHERE comment_ID='$comment_id'");
}
// 获取父评论的通知设置
$notify = $parent_id ? get_comment($parent_id)->comment_mail_notify : '0';
$spam_confirmed = $comment->comment_approved;
// 发送邮件通知条件判断
if ($parent_id != '' && $spam_confirmed != 'spam' && $notify == '1') {
// 设置发件人邮箱
$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; border-radius:5px;">
<p>' . trim(get_comment($parent_id)->comment_author) . ', 您好!</p>
<p>您曾在《' . get_the_title($comment->comment_post_ID) . '》的留言:<br />'
. nl2br(get_comment($parent_id)->comment_content) . '</p>
<p>' . trim($comment->comment_author) . ' 给您的回应:<br />'
. nl2br($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>(此邮件由系统自动发出,请勿回复。)</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);
// 测试用:显示邮件信息
// echo 'mail to ', $to, '<br/> ' , $subject, $message;
}
}
// 注册评论提交时的钩子
add_action('comment_post', 'comment_mail_notify');
/**
* 自动添加邮件通知勾选框
*/
function add_checkbox() {
echo '
<div style="margin: 10px 0;">
<input type="checkbox"
name="comment_mail_notify"
id="comment_mail_notify"
value="comment_mail_notify"
checked="checked"
style="margin-left: -45%; position: relative; top: 3px; *top: 10px !important; *top: 10px;" />
<label for="comment_mail_notify" style="margin-left: -45%;">
有人回复时邮件通知我
</label>
</div>';
}
// 注册评论表单钩子
add_action('comment_form', 'add_checkbox');
// -- 功能结束 ----------------------------------------
?>
原来一直失败到底是哪里的问题,就不考究了……避过这两天的先……%
© 转载需附带本文链接,依据 CC BY-NC-SA 4.0 发布。
猜你喜欢
💬 评论