如果我们的WordPress网站有交互性的评论功能,且网友能回复后我们能快速的响应回答是不是体现出来我们网站的互动性比较好,而且可以让网友看到我们的服务积极性,提高用户对于网站的体验度。有没有办法能够实现WordPress的评论后能快速的通知到我们的管理员,包括我们的管理员回答之后能快速通知到网友呢?
我们看看如何设置的。
/* comment_mail_notify v1.0
function comment_mail_notify($comment_id) {
$comment = get_comment($comment_id);
$parent_id = $comment->comment_parent ? $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>' . trim($comment->comment_author) . ' 给您的回复:<br />'
. trim($comment->comment_content) . '<br /></p>
<p>您可以点击 查看回复完整內容</p>
<p>欢迎再度光临 ' . get_option('blogname') . '</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 https://www.itbulu.com/wp-smtp-replay.html
我们将脚本代码添加到 Functions.php 文件中。
理论上是可以直接推送的,但是由于主机和服务器的兼容问题,有的是没有开启mail函数的,我们需要开启函数,或者我们直接用WP SMTP插件来解决这个问题。
WP SMTP插件下载地址:https://downloads.wordpress.org/plugin/wp-smtp.1.2.3.zip
这里我们设置参数。在前面如果我们不用这个插件是直接用服务器的MAIL功能发送的邮件,这里我们需要设置一个第三方发邮件的接口。前提是我们去申请一个邮件发送端。
比如我们可以申请一个163邮箱,并在邮箱设置开启POP3/SMTP服务、IMAP/SMTP服务。或者QQ邮箱也是可以的,最好是我们企业邮局的邮箱,因为免费邮箱SMTP可能有些是有限制的。
这里我们设置后,可以进行测试推送个邮箱看看是否可以收到邮件可以收到那就搞定这个问题。
最后,个人建议我们还是直接用第三方SMPT推送邮件,这样对于服务器是安全的。因为有些服务商不允许发邮件,如果你发多了,会被封主机。