n('publish_post', $article_id, get_post($article_id));
$log_data['stats']['published_drafts']++;
$log_messages[] = " 📝 草稿已发布";
}
} else {
// 已发布文章:更新
$post_data = array(
'ID' => $article_id,
'post_modified' => current_time('mysql'),
'post_modified_gmt' => current_time('mysql', 1)
);
$result = wp_update_post($post_data);
if ($result && !is_wp_error($result)) {
do_action('post_updated', $article_id, get_post($article_id), get_post($article_id));
$log_data['stats']['updated_posts']++;
$log_messages[] = " 🔄 文章已更新";
}
}
$log_messages[] = "✅ 文章处理完成";
}
// 更新处理进度
$log_data['processed_count']++;
$log_data['processed_ids'][] = $article_id;
$log_data['current_article_id'] = $article_id;
$this->write_log_file($log_data);
wp_send_json_success(array(
'process_data' => $log_data,
'log_messages' => $log_messages
));
}
if ($step === 'finish') {
// 完成处理,返回统计信息但保留日志文件
$log_data = $this->read_log_file();
$stats = $log_data['stats'];
// 标记任务为已完成,但保留日志文件
$log_data['status'] = 'completed';
$log_data['completion_time'] = time();
$this->write_log_file($log_data);
wp_send_json_success($stats);
}
}
// 检查文章是否包含付费下载内容
private function has_paid_download_content($post_id) {
$content = get_post_field('post_content', $post_id);
// 检查常见的付费下载关键词
$paid_keywords = array(
'付费下载',
'付费资源',
'下载链接',
'百度网盘',
'网盘下载',
'资源下载',
'付费内容',
'会员下载',
'VIP下载',
'下载地址'
);
foreach ($paid_keywords as $keyword) {
if (strpos($content, $keyword) !== false) {
return true;
}
}
return false;
}
// 检查文章的设置状态
private function check_article_status($post_id) {
// 检查Members权限设置
$members_role = get_post_meta($post_id, '_members_access_role', true);
$has_members = false;
if (!empty($members_role)) {
if (is_array($members_role)) {
$has_members = in_array('um_custom_role_2', $members_role);
} else if (is_string($members_role)) {
$unserialized = maybe_unserialize($members_role);
if (is_array($unserialized)) {
$has_members = in_array('um_custom_role_2', $unserialized);
}
}
}
// 检查付费阅读设置
$pay_type = get_post_meta($post_id, 'posts_zibpay_pay_type', true);
$has_pay = ($pay_type == '1');
// 检查是否已有付费下载内容
$has_paid_content = $this->has_paid_download_content($post_id);
return array(
'has_members' => $has_members,
'has_pay' => $has_pay,
'has_paid_content' => $has_paid_content,
'both_set' => ($has_members && ($has_pay || $has_paid_content)),
'needs_processing' => (!$has_members || (!$has_pay && !$has_paid_content))
);
}
// 检查是否为排除的文章
private function is_excluded_post($post) {
return in_array($post->post_title, $this->excluded_titles);
}
}
// 初始化插件
new BulkMembersPermissionNew();
?>
Warning: Cannot modify header information - headers already sent by (output started at /www/wwwroot/xxm2161.com/wp-content/plugins/bulk-members-permission.php:828) in /www/wwwroot/xxm2161.com/wp-includes/sitemaps/class-wp-sitemaps-renderer.php on line 126
https://xxm2161.com/wp-sitemap-posts-post-1.xmlhttps://xxm2161.com/wp-sitemap-posts-post-2.xmlhttps://xxm2161.com/wp-sitemap-posts-post-3.xmlhttps://xxm2161.com/wp-sitemap-posts-post-4.xmlhttps://xxm2161.com/wp-sitemap-posts-post-5.xmlhttps://xxm2161.com/wp-sitemap-posts-post-6.xmlhttps://xxm2161.com/wp-sitemap-posts-post-7.xmlhttps://xxm2161.com/wp-sitemap-posts-post-8.xmlhttps://xxm2161.com/wp-sitemap-posts-post-9.xmlhttps://xxm2161.com/wp-sitemap-posts-post-10.xmlhttps://xxm2161.com/wp-sitemap-posts-post-11.xmlhttps://xxm2161.com/wp-sitemap-posts-post-12.xmlhttps://xxm2161.com/wp-sitemap-posts-post-13.xmlhttps://xxm2161.com/wp-sitemap-posts-post-14.xmlhttps://xxm2161.com/wp-sitemap-posts-post-15.xmlhttps://xxm2161.com/wp-sitemap-posts-post-16.xmlhttps://xxm2161.com/wp-sitemap-posts-post-17.xmlhttps://xxm2161.com/wp-sitemap-posts-post-18.xmlhttps://xxm2161.com/wp-sitemap-posts-post-19.xmlhttps://xxm2161.com/wp-sitemap-posts-post-20.xmlhttps://xxm2161.com/wp-sitemap-posts-page-1.xmlhttps://xxm2161.com/wp-sitemap-taxonomies-category-1.xmlhttps://xxm2161.com/wp-sitemap-users-1.xml