如果产品作者不是管理员,则从 WooCommerce 商店和存档页面隐藏产品
Hide products from WooCommerce shop and archive pages if product author is not Admin
这与当前用户是谁无关。如果产品的作者是管理员,我想要完成的是隐藏商店和存档页面上的任何产品。我尝试在这里和其他地方搜索,但我发现的任何内容都与当前用户是否登录或管理员有关。非常感谢任何帮助!
function hide_product_by_user_role( $query ) {
$authors = ( array ) $product->authors; // obtaining product author -- this is wrong
if ( $query->is_main_query() && is_woocommerce() && $authors[0] != 'administrator' ) {
.... what do I do here?
}
}
add_action( 'pre_get_posts', 'hide_product_by_user_role' );
- 查找管理员 ID
- 将它们包含在
query
add_action('pre_get_posts', 'hide_product_by_user_role', 999);
function hide_product_by_user_role($query){
$users_args = array(
'role__in' => array('Administrator'),
'fields' => 'ID'
);
$admins_ids = get_users($users_args);
if ($query->is_main_query() && is_woocommerce() ) {
$query->set('author__in', $admins_ids);
}
}
参考:
https://developer.wordpress.org/reference/classes/wp_query/#parameters
这与当前用户是谁无关。如果产品的作者是管理员,我想要完成的是隐藏商店和存档页面上的任何产品。我尝试在这里和其他地方搜索,但我发现的任何内容都与当前用户是否登录或管理员有关。非常感谢任何帮助!
function hide_product_by_user_role( $query ) {
$authors = ( array ) $product->authors; // obtaining product author -- this is wrong
if ( $query->is_main_query() && is_woocommerce() && $authors[0] != 'administrator' ) {
.... what do I do here?
}
}
add_action( 'pre_get_posts', 'hide_product_by_user_role' );
- 查找管理员 ID
- 将它们包含在
query
add_action('pre_get_posts', 'hide_product_by_user_role', 999);
function hide_product_by_user_role($query){
$users_args = array(
'role__in' => array('Administrator'),
'fields' => 'ID'
);
$admins_ids = get_users($users_args);
if ($query->is_main_query() && is_woocommerce() ) {
$query->set('author__in', $admins_ids);
}
}
参考:
https://developer.wordpress.org/reference/classes/wp_query/#parameters