在Woocommerce中,我尝试以“草稿”作为发布状态隐藏Admin中的所有产品。我所做的是:
function remove_draft_all_mine_products($views) {
unset($views['draft']);
unset($views['all']);
unset($views['mine']);
return $views;
}
add_filter('views_edit-product', 'remove_draft_all_mine_products');
我也删除了all
和mine
,因为无论我是否删除draft
,这些产品仍然可以在上述过滤器上看到。
现在,我的问题是,当我打开页面时,即使没有过滤器,默认视图仍然是all
,因此draft
产品是可见的。
我如何才能仅从管理员列表中有效删除草稿产品?
答案 0 :(得分:1)
您的代码将仅对状态在产品表上方的所有产品隐藏draft
,因此您必须使用该代码将其隐藏。
function remove_draft_all_mine_products($views) {
unset($views['draft']);
return $views;
}
add_filter('views_edit-product', 'remove_draft_all_mine_products');
并使用以下代码从表格中隐藏draft
个帖子
function wpse_288586_hide_products($query) {
// We have to check if we are in admin and check if current query is the main query and check if you are looking for product post type
if(is_admin() && $query->is_main_query() && $query->get('post_type') == "product") {
$query->set('post_status',array('publish', 'pending', 'future', 'private', 'inherit', 'trash'));
}
}
add_action('pre_get_posts', 'wpse_288586_hide_products');