/**
  * Get user reports
  * @param null $fields unused
  * @param array $filter
  * @param int $page
  * @return array
  */
 public function get_users_report($fields = null, $filter = array(), $page = 1)
 {
     $args = array('type' => 'users', 'page' => $page, 'limit' => !empty($filter['limit']) ? absint($filter['limit']) : get_option('posts_per_page'));
     $user_reports = FUE_Reports::get_reports($args);
     $report_data = array();
     $total_rows = Follow_Up_Emails::instance()->wpdb->get_var("SELECT FOUND_ROWS()");
     foreach ($user_reports as $report) {
         if (empty($report->email_address)) {
             continue;
         }
         $name = $report->customer_name;
         $sent = absint(FUE_Reports::count_emails_sent(null, null, $report->email_address));
         $opened = absint(FUE_Reports::count_opened_emails(array('user_email' => $report->email_address)));
         $clicked = absint(FUE_Reports::count_total_email_clicks(array('user_email' => $report->email_address)));
         if ($report->user_id != 0 && empty($name)) {
             $wp_user = new WP_User($report->user_id);
             $name = $wp_user->first_name . ' ' . $wp_user->last_name;
         }
         $report_data[] = array('id' => absint($report->user_id), 'name' => apply_filters('fue_report_customer_name', $name, $report), 'sent' => $sent, 'opens' => $opened, 'clicks' => $clicked);
     }
     // set the pagination data
     $query = array('page' => $page, 'single' => count($report_data) == 1, 'total' => $total_rows, 'total_pages' => ceil($total_rows / $args['limit']));
     $this->server->add_pagination_headers($query);
     return array('users' => apply_filters('fue_api_report_response', $report_data, $user_reports, $fields, $this->server));
 }