Untitled

 avatar
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...