原文鏈接:https://www.louishe.com/2019/12/25/doc-6598.html
作為用wordpress系統(tǒng)搭建網(wǎng)站的站長來說,經(jīng)常會(huì)遇到幾個(gè)問題:
用戶在文章中提交評(píng)論后,我們無法及時(shí)獲取用戶評(píng)論的內(nèi)容,同時(shí)也就沒辦法及時(shí)回復(fù);
從后臺(tái)發(fā)現(xiàn)用戶評(píng)論,雖然回復(fù)了,但是用戶已經(jīng)離開網(wǎng)站,無法接受到您給他的評(píng)論回復(fù)。
這在一定程度上就影響了網(wǎng)站的用戶體驗(yàn),那么是否有方法解決這兩個(gè)問題呢?
通過二次開發(fā)wordpress系統(tǒng),啟用評(píng)論通過郵件提醒功能
第一步:啟用 WordPress SMTP 郵件功能
這個(gè)步驟其實(shí)可以通過WordPress Mail SMTP插件來完成,通過在插件上進(jìn)行配置會(huì)很簡單。

WordPress Mail SMTP
雖然本人對(duì)wordpress插件沒有說不好,只是覺得自己用代碼實(shí)現(xiàn)Wordpress SMTP功能會(huì)更好,下面教大家怎么使用代碼來實(shí)現(xiàn)wordpress SMTP功能。
首先你得找到主題(theme)文件夾下的functions.php,然后在 functions.php 文件中添加如下代碼:
//使用 smtp 發(fā)郵件
add_action('phpmailer_init', 'fanly_mail_smtp');
function fanly_mail_smtp( $phpmailer ) {
$phpmailer->IsSMTP();
$phpmailer->SMTPAuth = true;//啟用 SMTPAuth 服務(wù)
$phpmailer->Port = 465;//SMTP 郵件發(fā)送端口,這個(gè)和下面的 SSL 驗(yàn)證對(duì)應(yīng),如果這里填寫 25,則下面參數(shù)為空
$phpmailer->SMTPSecure ="ssl";//是否驗(yàn)證 ssl,與 MTP 郵件發(fā)送端口對(duì)應(yīng),如果不填寫,則上面的端口須為 25
$phpmailer->Host = "smtp.qq.com";//郵箱的 SMTP 服務(wù)器地址,目前 smtp.qq.com 為 QQ 郵箱 SMTP
$phpmailer->Username = "example@qq.com";//你的郵箱地址
$phpmailer->Password ="***************";//以前是郵箱登錄密碼,現(xiàn)在是一個(gè)授權(quán)碼
}
//發(fā)件地址記得和 smtp 郵箱一致即可
add_filter( 'wp_mail_from', 'fanly_wp_mail_from' );
function fanly_wp_mail_from() {
return 'example@qq.com';
}
注意:上面的備注提醒,修改好自己的參數(shù)。如果遇到配置問題也可以參考我的另一篇文章:解決Odoo系統(tǒng)新用戶無法使用郵件的問題,這篇文章其中有一個(gè)段落是專門教大家如何配置QQ郵箱及126郵箱的各項(xiàng)參數(shù)。
原文鏈接:https://www.louishe.com/2019/12/25/doc-6598.html
第一步完成之后,其實(shí)你就解決了文章開頭的第一個(gè)問題。當(dāng)再收到用戶評(píng)論時(shí),你將會(huì)收到一條郵件提醒。提醒內(nèi)容大致如下:

上面的郵件內(nèi)容模板是wordpress默認(rèn)的格式,其實(shí)沒必要對(duì)其內(nèi)容格式修改,畢竟只是針對(duì)站點(diǎn)管理員的。
圖片上還提到了一個(gè)問題:收件人和發(fā)件人地址為何相同?
因?yàn)槲以谏厦媾渲?wordpress SMTP 時(shí)用的1434×××84@qq.com郵箱作為發(fā)件地址。同時(shí)我在wordpress后臺(tái)設(shè)置的管理員地址也是 1434×××84@qq.com 。所以才會(huì)出現(xiàn)發(fā)件地址和收件地址相同的情況。至于為什么收件地址與發(fā)件地址相同還能收到郵件,具體俺也不是很清楚,就不去深究了。
下圖就是能收到用戶評(píng)論的通知郵件地址,管理員可以修改。

第二步:回復(fù)評(píng)論通過郵件提醒用戶
下圖是本站管理員回復(fù)用戶的一個(gè)評(píng)論,通過郵件的形式提醒了評(píng)論者,他的評(píng)論有回復(fù)了。

當(dāng)然首先我們得確認(rèn)您的文章開啟了wordpress默認(rèn)的評(píng)論功能,并且有郵箱字段,否則回復(fù)評(píng)論系統(tǒng)也找不到評(píng)論者郵箱。

wordpress默認(rèn)的評(píng)論區(qū)
實(shí)現(xiàn)上面功能,只需要在你的主題文件中找到functions.php,在其上添加如下代碼即可:
//WordPress 評(píng)論回復(fù)郵件通知代碼
function fanly_comment_mail_notify($comment_id) {
? ? $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
? ? $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 = trim(get_comment($parent_id)->comment_author) . ',您在 [' . $blogname . '] 中的留言有新的回復(fù)啦!';
? ? ? ? $message = '<div style="color:#555;font:12px/1.5 微軟雅黑,Tahoma,Helvetica,Arial,sans-serif;max-width:550px;margin:50px auto;border-top: none;" ><table border="0" cellspacing="0" cellpadding="0"><tbody><tr valign="top" height="2"><td valign="top"><div style="background-color:white;border-top:2px solid #00A7EB;box-shadow:0 1px 3px #AAAAAA;12px;max-width:550px;color:#555555;font-family:微軟雅黑, Arial;;font-size:12px;">
<h2 style="border-bottom:1px solid #DDD;font-size:14px;font-weight:normal;padding:8px 0 10px 8px;"><span style="color: #00A7EB;font-weight: bold;">> </span>您在 <a style="text-decoration:none; color:#58B5F5;font-weight:600;" href="' . home_url() . '">' . $blogname . '</a> 的留言有回復(fù)啦!</h2><div style="padding:0 12px 0 12px;margin-top:18px">
<p>您好, ' . trim(get_comment($parent_id)->comment_author) . '! 您發(fā)表在文章 《' . get_the_title($comment->comment_post_ID) . '》 的評(píng)論:</p>
<p style="background-color: #EEE;border: 1px solid #DDD;padding: 20px;margin: 15px 0;">' . nl2br(strip_tags(get_comment($parent_id)->comment_content)) . '</p>
<p>' . trim($comment->comment_author) . ' 給您的回復(fù)如下:</p>
<p style="background-color: #EEE;border: 1px solid #DDD;padding: 20px;margin: 15px 0;">' . nl2br(strip_tags($comment->comment_content)) . '</p>
<p>您可以點(diǎn)擊 <a style="text-decoration:none; color:#5692BC" href="' . htmlspecialchars(get_comment_link($parent_id)) . '">查看完整的回復(fù)內(nèi)容</a>,也歡迎再次光臨 <a style="text-decoration:none; color:#5692BC"
href="' . home_url() . '">' . $blogname . '</a>。祝您生活愉快!</p>
<p style="padding-bottom: 15px;">(此郵件由系統(tǒng)自動(dòng)發(fā)出,請(qǐng)勿直接回復(fù)!)</p></div></div></td></tr></tbody></table></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', 'fanly_comment_mail_notify');
注意:如果你的主題中存在郵件通知或相似代碼,可以修改或者刪除,切勿重復(fù)添加。
原文鏈接:https://www.louishe.com/2019/12/25/doc-6598.html
推薦閱讀
在wordpress網(wǎng)站Astra主題底部新建友情鏈接小工具區(qū)域
WordPress更新升級(jí)插件提示輸入FTP信息的解決辦法