WordPress 文章发布时发邮件通知所有用户

很多WordPress主题应该没有这个功能,也就是在你发布文章时,发邮件通知已注册的用户,已经过测试,用户不想给邮箱打扰,可以在消息通知中取消掉文章评论该选项。

发布文章显示效果:

WordPress 文章发布时发邮件通知所有用户插图

具体使用

在网站主题目录中的functions.php中,添加改代码即可。

//邮件通知
function add_yx_box (){
add_meta_box('yx_box', '邮件通知', 'yx_box','post','normal','high');
}
add_action('add_meta_boxes','add_yx_box');
function yx_box(){
echo '<span style="margin:15px 20px 15px 0; display:inline-block;"><label><input type="checkbox" checked name="yx" value="1" title="勾选此项,将邮件通知博客所有注册用户"/> 给用户发送邮件通知</label></span></br>发布、更新文章会给用户发送邮件';
}
function newPostNotify($post_ID) {
// 判断yx是否为空
if(!isset($_POST['yx']))return;
if(wp_is_post_revision($post_ID))return;
global $wpdb;
$blogurl = get_bloginfo('url'); //获取首页链接
$get_post_info = get_post($post_ID);
if ( $get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish' ) {
// 读数据库,获取所有用户的email
$wp_user_email = $wpdb->get_results("SELECT DISTINCT * FROM $wpdb->users");
// 依次给每个Email发邮件
foreach ( $wp_user_email as $email ) {
$user_id = $email->ID;
//用户是否接收
if (!zib_msg_is_allow_receive($user_id, 'posts'))return;
$fsemail = $email->user_email;
// 邮件标题:博客有新文章
$subject = '大雄搜集站有新文章';
// 邮件内容:新文章网址:+ URL
$message = '尊敬的 '.$email->display_name.' :<br>您关注的大雄搜集站更新了一篇新文章:'.get_permalink($post_ID).'<br><br>如有打扰在<a href="'.$blogurl.'/user" rel="noopener" target="_blank">消息通知</a>中关闭掉文章评论选项即可';
// 发邮件
wp_mail($fsemail, $subject, $message);
}
}
}
// 钩子,一旦WordPress有新文章发布或文章被修改即刻执行newPostNotify函数
add_action('publish_post', 'newPostNotify');
//邮件通知
function add_yx_box (){
  add_meta_box('yx_box', '邮件通知', 'yx_box','post','normal','high');
}
add_action('add_meta_boxes','add_yx_box');
function yx_box(){
  echo '<span style="margin:15px 20px 15px 0; display:inline-block;"><label><input type="checkbox" checked name="yx" value="1" title="勾选此项,将邮件通知博客所有注册用户"/> 给用户发送邮件通知</label></span></br>发布、更新文章会给用户发送邮件';
}

function newPostNotify($post_ID) {
    // 判断yx是否为空
     if(!isset($_POST['yx']))return;
     if(wp_is_post_revision($post_ID))return;
     global $wpdb;
     $blogurl   = get_bloginfo('url');    //获取首页链接
     $get_post_info = get_post($post_ID);
     if ( $get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish' ) {
         // 读数据库,获取所有用户的email
         $wp_user_email = $wpdb->get_results("SELECT DISTINCT * FROM $wpdb->users");
         // 依次给每个Email发邮件
        foreach ( $wp_user_email as $email ) {
            $user_id = $email->ID;
            //用户是否接收
            if (!zib_msg_is_allow_receive($user_id, 'posts'))return;
            $fsemail = $email->user_email;
             // 邮件标题:博客有新文章
            $subject = '大雄搜集站有新文章';
             // 邮件内容:新文章网址:+ URL
            $message = '尊敬的 '.$email->display_name.' :<br>您关注的大雄搜集站更新了一篇新文章:'.get_permalink($post_ID).'<br><br>如有打扰在<a href="'.$blogurl.'/user" rel="noopener" target="_blank">消息通知</a>中关闭掉文章评论选项即可';
             // 发邮件
            wp_mail($fsemail, $subject, $message);
         }
     }
}
// 钩子,一旦WordPress有新文章发布或文章被修改即刻执行newPostNotify函数
add_action('publish_post', 'newPostNotify');
//邮件通知 function add_yx_box (){ add_meta_box('yx_box', '邮件通知', 'yx_box','post','normal','high'); } add_action('add_meta_boxes','add_yx_box'); function yx_box(){ echo '<span style="margin:15px 20px 15px 0; display:inline-block;"><label><input type="checkbox" checked name="yx" value="1" title="勾选此项,将邮件通知博客所有注册用户"/> 给用户发送邮件通知</label></span></br>发布、更新文章会给用户发送邮件'; } function newPostNotify($post_ID) { // 判断yx是否为空 if(!isset($_POST['yx']))return; if(wp_is_post_revision($post_ID))return; global $wpdb; $blogurl = get_bloginfo('url'); //获取首页链接 $get_post_info = get_post($post_ID); if ( $get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish' ) { // 读数据库,获取所有用户的email $wp_user_email = $wpdb->get_results("SELECT DISTINCT * FROM $wpdb->users"); // 依次给每个Email发邮件 foreach ( $wp_user_email as $email ) { $user_id = $email->ID; //用户是否接收 if (!zib_msg_is_allow_receive($user_id, 'posts'))return; $fsemail = $email->user_email; // 邮件标题:博客有新文章 $subject = '大雄搜集站有新文章'; // 邮件内容:新文章网址:+ URL $message = '尊敬的 '.$email->display_name.' :<br>您关注的大雄搜集站更新了一篇新文章:'.get_permalink($post_ID).'<br><br>如有打扰在<a href="'.$blogurl.'/user" rel="noopener" target="_blank">消息通知</a>中关闭掉文章评论选项即可'; // 发邮件 wp_mail($fsemail, $subject, $message); } } } // 钩子,一旦WordPress有新文章发布或文章被修改即刻执行newPostNotify函数 add_action('publish_post', 'newPostNotify');
© 版权声明
THE END
喜欢点个赞支持一下吧
点赞0赏币 分享
Time and experience heals pain.
时间和经历会抚平一切伤痛
评论交流 抢沙发

请登录后发表评论

    暂无评论内容