WPAS_Tickets_List::filter_staff PHP Method

filter_staff() public method

Filter tickets by assigned staff
Since: 3.3
public filter_staff ( WP_Query $wp_query ) : void
$wp_query WP_Query
return void
    public function filter_staff($wp_query)
    {
        global $pagenow;
        if ('edit.php' !== $pagenow || !isset($_GET['post_type']) || 'ticket' !== $_GET['post_type']) {
            return;
        }
        if (!$wp_query->is_main_query()) {
            return;
        }
        if (!isset($_GET['staff'])) {
            return;
        }
        $staff_id = (int) $_GET['staff'];
        $agent = new WPAS_Member_Agent($staff_id);
        if (!$agent->is_agent()) {
            return;
        }
        $meta_query = $wp_query->get('meta_query');
        if (!is_array($meta_query)) {
            $meta_query = (array) $meta_query;
        }
        $meta_query[] = array('key' => '_wpas_assignee', 'value' => $staff_id, 'compare' => '=');
        if (!isset($meta_query['relation'])) {
            $meta_query['relation'] = 'AND';
        }
        $wp_query->set('meta_query', $meta_query);
    }