public function get_views() { $all_status = array(MS_Model_Invoice::STATUS_PAID => __('Paid', 'membership2'), MS_Model_Invoice::STATUS_NEW => __('Draft', 'membership2'), MS_Model_Invoice::STATUS_DENIED => __('Denied', 'membership2')); $views = array(); $orig_status = ''; if (isset($_REQUEST['status'])) { $orig_status = $_REQUEST['status']; } $_REQUEST['status'] = 'default'; $args = $this->get_query_args(); $_REQUEST['status'] = $orig_status; $base_url = esc_url_raw(remove_query_arg(array('status', 'msg'))); $count = MS_Model_Invoice::get_invoice_count($args); $views['all'] = array('url' => $base_url, 'label' => __('Default', 'membership2'), 'count' => $count); $url = esc_url_raw(add_query_arg('status', 'open', $base_url)); $args = $this->get_query_args(); $args['meta_query']['status']['value'] = array(MS_Model_Invoice::STATUS_BILLED, MS_Model_Invoice::STATUS_PENDING); $args['meta_query']['status']['compare'] = 'IN'; $count = MS_Model_Invoice::get_invoice_count($args); $views['open'] = array('url' => $url, 'label' => __('Billed or Pending', 'membership2'), 'count' => $count); foreach ($all_status as $status => $desc) { $args = $this->get_query_args(); $args['meta_query']['status']['value'] = $status; $count = MS_Model_Invoice::get_invoice_count($args); if ($count) { $status_url = esc_url_raw(add_query_arg(array('status' => $status), remove_query_arg(array('msg')))); } else { $status_url = false; $desc .= ' (0)'; if (MS_Model_Invoice::STATUS_DENIED != $status) { $desc .= ' |'; } $count = false; } $views[$status] = array('url' => $status_url, 'label' => $desc, 'count' => $count); } return apply_filters('ms_helper_listtable_billing_views', $views); }
public function get_views() { $all_status = MS_Model_Invoice::get_status_types(); $views = array(); $args = $this->get_query_args(); if (isset($args['meta_query']) && isset($args['meta_query']['status'])) { unset($args['meta_query']['status']); } $url = esc_url_raw(remove_query_arg(array('status', 'msg'))); $count = MS_Model_Invoice::get_invoice_count($args); $views['all'] = array('url' => $url, 'label' => __('All', MS_TEXT_DOMAIN), 'count' => $count); $url = esc_url_raw(add_query_arg('status', 'open', remove_query_arg(array('status', 'msg')))); $args = $this->get_query_args(); $args['meta_query']['status']['value'] = array(MS_Model_Invoice::STATUS_BILLED, MS_Model_Invoice::STATUS_PENDING); $args['meta_query']['status']['compare'] = 'IN'; $count = MS_Model_Invoice::get_invoice_count($args); $views['open'] = array('url' => $url, 'label' => __('Billed or Pending', MS_TEXT_DOMAIN), 'count' => $count); foreach ($all_status as $status => $desc) { if ('billed' == $status) { continue; } if ('pending' == $status) { continue; } $args = $this->get_query_args(); $args['meta_query']['status']['value'] = $status; $count = MS_Model_Invoice::get_invoice_count($args); $status_url = esc_url_raw(add_query_arg(array('status' => $status), remove_query_arg(array('msg')))); $views[$status] = array('url' => $status_url, 'label' => $desc, 'count' => $count); } return apply_filters('ms_helper_listtable_billing_views', $views); }