Untitled
unknown
plain_text
3 years ago
1.3 kB
7
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...