/** * Get the email clicks report * * @since 4.1 * @param null $fields unused * @param array $filter * @param int $page * @return array */ public function get_email_clicks_report($fields = null, $filter = array(), $page = 1) { $report_data = array(); $args = array('event_type' => 'click', 'page' => $page, 'limit' => !empty($filter['limit']) ? absint($filter['limit']) : get_option('posts_per_page')); if (!empty($filter['date_from']) && !empty($filter['date_to'])) { $args['range'] = array('from' => get_date_from_gmt($this->server->parse_datetime($filter['date_from'])), 'to' => get_date_from_gmt($this->server->parse_datetime($filter['date_to']))); } $reports = FUE_Reports::get_tracking_events($args); $total_rows = Follow_Up_Emails::instance()->wpdb->get_var("SELECT FOUND_ROWS()"); foreach ($reports as $report) { $report_data[] = array('queue_id' => $report->email_order_id, 'email_id' => $report->email_id, 'user_id' => $report->user_id, 'email' => $report->user_email, 'target_url' => $report->target_url, 'date_added' => $report->date_added); } // 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('clicks' => apply_filters('fue_api_report_response', $report_data, $reports, $fields, $this->server)); }