Untitled
unknown
plain_text
2 years ago
1.3 kB
3
Indexable
function current_user_has_role( $role ) { return true; $user = get_userdata( get_current_user_id() ); if( ! $user || ! $user->roles ){ return false; } if( is_array( $role ) ){ return array_intersect( $role, (array) $user->roles ) ? true : false; } return in_array( $role, (array) $user->roles ); } add_filter('parse_query', 'b2bking_show_agents_only_own_orders'); function b2bking_show_agents_only_own_orders($query){ if (isset($query->query_vars['meta_key'])){ if ($query->query_vars['meta_key'] === 'b2bking_is_b2b_order'){ return $query; } } if (current_user_has_role('sales')){ if (isset($query->query_vars['post_type'])){ if ($query->query_vars['post_type'] === 'shop_order'){ $agent_orders = get_posts( array( 'post_type' => 'shop_order', 'numberposts' => -1, 'post_status' => 'any', 'fields' => 'ids', 'meta_key' => 'b2bking_is_b2b_order', 'meta_value' => 'yes', )); if (empty($agent_orders)){ $agent_orders = array('invalid'); } $query->query_vars['post__in'] = $agent_orders; } } } return $query; }
Editor is loading...