轻松实现 WordPress 文章更新时给所有评论过的用户推送邮件通知
您的博客有很多读者,他们曾经在您的博客上发表过自己的评论,但时间长了,他们就忘记了您的博客?你可以选择给他们发邮件,提醒他们很久没来了;你的博客推出了活动和话题,或者内容有所更新,很多读者都不知道。这都不是问题,只需要一个 :该插件可以向所有在您的博客上发表评论的人填写的电子邮件地址发送电子邮件。当然,该人必须填写正确的电子邮件地址。
启用此插件后,将在设置菜单中创建 WP Mass Mailer 子菜单。单击它后,将打开邮件生成页面。邮件编辑器与默认的 WordPress 文章编辑器兼容,您都了解操作。 “收件人组”可以选择向所有评论者或注册用户发送电子邮件(详细选项见具体插件)。
发送邮件时浏览器不可以关闭,如果给这篇文章评论的人很多,Chrome 浏览器可以选择固定标签页,以防关闭。
发送完成会提示“All email sent successfully!”,然后就是等待你的注册会员再次来访!
如果你是一个追求精致的 WordPress 开发者,我相信您一定不喜欢使用插件来解决这个问题,那么跟我们一起纯代码实现 WordPress 给所有评论用户推送文章更新 吧!
-
1<span class="co4">/** </span>
-
1<span class="co4"> * WordPress 给所有评论用户推送文章更新 - 云模板</span>
-
1<span class="co4"> */</span>
-
1<span class="co1">//修改更新文章时邮件通知评论用户 </span>
-
1add_action<span class="br0">(</span> <span class="st_h">'submitpost_box'</span><span class="sy0">,</span> <span class="st_h">'lxtx_fo_submit_box'</span><span class="br0">)</span><span class="sy0">;</span>
-
1<span class="kw2">function</span> lxtx_fo_submit_box<span class="br0">(</span> <span class="br0">)</span><span class="br0">{</span>
-
123<span class="kw1">echo</span> <span class="st_h">'<div id="fo_side-sortables" class="meta-box-sortables ui-sortable">'<span class="sy0">;</span><li class="li1"><pre class="de1"> <span class="kw1">echo</span> <span class="st_h">'<div id="fo_submit_box" class="postbox ">'<span class="sy0">;</span><li class="li1"><pre class="de1"> <span class="kw1">echo</span> <span class="st_h">'<div class="handlediv" title="点击以切换"><br></div>'</span><span class="sy0">;</span>
-
1<span class="kw1">echo</span> <span class="st_h">'<h3 class="hndle"><span>邮件通知</span></h3>'</span><span class="sy0">;</span>
-
12<span class="kw1">echo</span> <span class="st_h">'<div class="inside"><div class="submitbox">'<span class="sy0">;</span><li class="li1"><pre class="de1"> <span class="kw1">echo</span> <span class="st_h">' <div style="padding: 10px 10px 0;text-align: left;"><label class="selectit" title="慎用此功能,重要文章才勾选嘛,以免引起读者反感哈"><input type="checkbox" name="FO_emaill_report_user" value="true" title="勾选此项,将邮件通知本文所有评论者">邮通知本文所有评论者</label></div>'</span><span class="sy0">;</span>
-
1<span class="kw1">echo</span> <span class="st_h">'</span>
';
1 |
<span class="kw1">echo</span> <span class="st_h">'</span> |
';
1 |
<span class="kw1">echo</span> <span class="st_h">'</span> |
';
1 |
<span class="br0">}</span> |
1 |
<span class="co1">//开始 </span> |
1 |
add_action<span class="br0">(</span> <span class="st_h">'publish_post'</span><span class="sy0">,</span> <span class="st_h">'wpsite_fo_emaill_report_users'</span> <span class="br0">)</span><span class="sy0">;</span> |
1 |
<span class="kw2">function</span> wpsite_fo_emaill_report_users<span class="br0">(</span><span class="re0">$post_ID</span><span class="br0">)</span> |
1 |
<span class="br0">{</span> |
1 |
<span class="co1">//如果未勾选保存,不进行任何操作 </span> |
1 |
<span class="kw1">if</span><span class="br0">(</span><span class="re0">$_POST</span><span class="br0">[</span><span class="st_h">'FO_emaill_report_user'</span><span class="br0">]</span> <span class="sy0">!=</span> <span class="st_h">'true'</span><span class="br0">)</span><span class="br0">{</span> |
1 |
<span class="kw1">return</span><span class="sy0">;</span> |
1 |
<span class="br0">}</span> |
1 |
1 |
<span class="co1">//修订版本不通知,以免滥用 </span> |
1 |
<span class="kw1">if</span><span class="br0">(</span> wp_is_post_revision<span class="br0">(</span><span class="re0">$post_ID</span><span class="br0">)</span> <span class="br0">)</span><span class="br0">{</span> |
1 |
<span class="kw1">return</span><span class="sy0">;</span> |
1 |
<span class="br0">}</span> |
1 |
1 |
<span class="co1">//获取 wp 数据操作类 </span> |
1 |
<span class="kw2">global</span> <span class="re0">$wpdb</span><span class="sy0">,</span><span class="re0">$post</span><span class="sy0">;</span> |
1 |
<span class="co1">// 读数据库,获取文章的所有用户的 email 并且不重复 </span> |
1 |
<span class="re0">$emailauthor</span> <span class="sy0">!=</span> <span class="st_h">'你自己的邮箱'</span><span class="sy0">;</span> |
1 |
<span class="re0">$wp_user_emails</span> <span class="sy0">=</span> <span class="re0">$wpdb</span><span class="sy0">-></span><span class="me1">get_results</span><span class="br0">(</span><span class="st0">"SELECT DISTINCT comment_author, comment_author_email FROM <span class="es4">$wpdb->comments</span> WHERE TRIM(comment_author_email) IS NOT NULL AND TRIM(comment_author_email) != '' AND TRIM(comment_author_email) != '<span class="es4">$emailauthor</span>' AND comment_post_ID = <span class="es4">$post->ID</span>"</span><span class="br0">)</span><span class="sy0">;</span> |
1 |
1 |
<span class="co1">// 获取博客名称 </span> |
1 |
<span class="re0">$blogname</span> <span class="sy0">=</span> wp_specialchars_decode<span class="br0">(</span>get_option<span class="br0">(</span><span class="st_h">'blogname'</span><span class="br0">)</span><span class="sy0">,</span> <span class="kw4">ENT_QUOTES</span><span class="br0">)</span><span class="sy0">;</span> |
1 |
<span class="co1">// 获取博客 URL </span> |
1 |
<span class="re0">$blogurl</span> <span class="sy0">=</span> get_bloginfo<span class="br0">(</span><span class="st0">"siteurl"</span><span class="br0">)</span><span class="sy0">;</span> |
1 |
1 |
<span class="co1">//文章链接 </span> |
1 |
<span class="re0">$post_link</span> <span class="sy0">=</span> get_permalink<span class="br0">(</span><span class="re0">$post_ID</span><span class="br0">)</span><span class="sy0">;</span> |
1 |
<span class="co1">//文章标题$post -> post_title </span> |
1 |
<span class="re0">$post_title</span> <span class="sy0">=</span> <span class="kw3">strip_tags</span><span class="br0">(</span><span class="re0">$_POST</span><span class="br0">[</span><span class="st_h">'post_title'</span><span class="br0">]</span><span class="br0">)</span><span class="sy0">;</span> |
1 |
<span class="co1">//文章内容$post->post_content </span> |
1 |
<span class="re0">$post_content</span> <span class="sy0">=</span> <span class="kw3">strip_tags</span><span class="br0">(</span><span class="re0">$_POST</span><span class="br0">[</span><span class="st_h">'post_content'</span><span class="br0">]</span><span class="br0">)</span><span class="sy0">;</span> |
1 |
<span class="co1">//文章摘要 </span> |
1 |
<span class="re0">$output</span> <span class="sy0">=</span> <span class="kw3">preg_replace</span><span class="br0">(</span><span class="st_h">'/^(?:[x00-x7F]|[xC0-xFF][x80-xBF]+){0,0}((?:[x00-x7F]|[xC0-xFF][x80-xBF]+){0,200}).*/s'</span><span class="sy0">,</span><span class="st_h">'1'</span><span class="sy0">,</span><span class="re0">$post_content</span><span class="br0">)</span><span class="sy0">.</span><span class="st_h">'......'</span><span class="sy0">;</span> |
1 |
1 |
<span class="co1">//邮件头,以免乱码 </span> |
1 |
<span class="re0">$message_headers</span> <span class="sy0">=</span> <span class="st0">"Content-Type: text/<span class="wp_keywordlink"></span>; charset=<span class="es1">"</span>utf-8<span class="es1">"</span><span class="es1">n</span>"</span><span class="sy0">;</span> |
1 |
<span class="co1">// 邮件标题 </span> |
1 |
<span class="re0">$subject</span> <span class="sy0">=</span> <span class="st_h">'您曾经来访过的《'</span><span class="sy0">.</span><span class="re0">$post_title</span><span class="sy0">.</span><span class="st_h">'》文章更新通知。'</span><span class="sy0">;</span> |
1 |
1 |
<span class="kw1">foreach</span> <span class="br0">(</span> <span class="re0">$wp_user_emails</span> <span class="kw1">as</span> <span class="re0">$wp_user_email</span> <span class="br0">)</span> |
1 |
<span class="br0">{</span> |
1 |
<span class="co1">// 邮件内容 </span> |
1 |
<span class="re0">$message</span> <span class="sy0">=</span> <span class="st_h">' </span> |
1 2 |
<span class="st_h"> <div style="MARGIN-RIGHT: auto; MARGIN-LEFT: auto;"> <li class="li1"><pre class="de1"><span class="st_h"> <strong style="line-height: 1.5; font-family:Microsoft YaHei;"> </strong></span> |
1 |
<span class="st_h"> 亲爱的'</span><span class="sy0">.</span><span class="re0">$wp_user_email</span><span class="sy0">-></span><span class="me1">comment_author</span><span class="sy0">.</span><span class="st_h">': </span> |
1 |
<span class="st_h"> </span> |
1 |
<span class="st_h"> <p style="FONT-SIZE: 14px; PADDING-TOP: 6px"> </p></span> |
1 |
<span class="st_h"> 您曾经来访过的《'</span><span class="sy0">.</span><span class="re0">$post_title</span><span class="sy0">.</span><span class="st_h">'》有更新,博主觉得有必要通知您,希望不会骚扰到您。 </span> |
1 |
<span class="st_h"> </span> |
1 |
<span class="st_h"> <p style="FONT-SIZE: 14px; PADDING-TOP: 6px"> </p></span> |
1 |
<span class="st_h"> 文章标题:</span><span class="re0">$post_title</span><span class="sy0">.</span><span class="st_h">'" href="'</span><span class="sy0">.</span><span class="re0">$post_link</span><span class="sy0">.</span><span class="st_h">'" target="_top" rel="noopener noreferrer">'</span><span class="sy0">.</span><span class="re0">$post_title</span><span class="sy0">.</span><span class="st_h">' </span> |
1 |
<span class="st_h"> <br></span> |
1 |
<span class="st_h"> 文章摘要:'</span><span class="sy0">.</span><span class="re0">$output</span><span class="sy0">.</span><span class="st_h">' </span> |
1 |
<span class="st_h"> </span> |
1 |
<span class="st_h"> <p style="FONT-SIZE: 14px; PADDING-TOP: 6px"> </p></span> |
1 |
<span class="st_h"> 您可以点击链接 </span> |
1 |
<span class="st_h"> </span><span class="re0">$blogurl</span><span class="sy0">.</span><span class="st_h">'" style="line-height: 1.5;">'</span><span class="sy0">.</span><span class="re0">$blogname</span><span class="sy0">.</span><span class="st_h">' </span> |
1 |
<span class="st_h"> > </span> |
1 |
<span class="st_h"> </span><span class="re0">$post_title</span><span class="sy0">.</span><span class="st_h">'" href="'</span><span class="sy0">.</span><span class="re0">$post_link</span><span class="sy0">.</span><span class="st_h">'" target="_top" rel="noopener noreferrer">'</span><span class="sy0">.</span><span class="re0">$post_title</span><span class="sy0">.</span><span class="st_h">' </span> |
1 |
<span class="st_h"> 详细查看 </span> |
1 |
<span class="st_h"> </span> |
1 |
<span class="st_h"> <p style="font-size: 14px; padding-top: 6px; text-align: left;"> </p></span> |
1 |
<span class="st_h"> <span style="line-height: 1.5; color: rgb(153, 153, 153);"> </span></span> |
1 |
<span class="st_h"> 来自: </span> |
1 |
<span class="st_h"> </span> |
1 |
<span class="st_h"> </span><span class="re0">$blogurl</span><span class="sy0">.</span><span class="st_h">'" style="line-height: 1.5;">'</span><span class="sy0">.</span><span class="re0">$blogname</span><span class="sy0">.</span><span class="st_h">' </span> |
1 |
<span class="st_h"> </span> |
1 2 |
<span class="st_h"> <div style="font-size: 12px; border-top-color: rgb(204, 204, 204); border-top-width: 1px; border-top-style: solid; height: 35px; width: 500px; color: rgb(102, 102, 102); line-height: 35px; background-color: rgb(245, 245, 245);"> <li class="li1"><pre class="de1"><span class="st_h"> 该邮件为系统发送邮件,请勿直接回复!如有打扰,请向博主留言反映。灰常感谢您的阅读! </span> |
1 |
<span class="st_h"> </span> |
1 |
<span class="st_h"> </span> |
';
1 |
wp_mail<span class="br0">(</span><span class="re0">$wp_user_email</span><span class="sy0">-></span><span class="me1">comment_author_email</span><span class="sy0">,</span> <span class="re0">$subject</span><span class="sy0">,</span> <span class="re0">$message</span><span class="sy0">,</span> <span class="re0">$message_headers</span><span class="br0">)</span><span class="sy0">;</span> |
1 |
<span class="br0">}</span> |
1 |
<span class="br0">}</span> |