' . esc_html( $text ) . ''; } // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound -- Internal helper function with underscore prefix function _accua_forms_dashboard_page(){ /* global vars */ global $hook_suffix; /* enable add_meta_boxes function in this page. */ do_action( 'add_meta_boxes', $hook_suffix, 10, 2 ); ?>
get_var("SELECT count(*) as num_row FROM {$wpdb->prefix}accua_forms_submissions WHERE afs_status >= 0"); if ($num_submissions) { $num_posts = $wpdb->get_var("SELECT count(DISTINCT afs_post_id ) as num_row FROM {$wpdb->prefix}accua_forms_submissions WHERE afs_post_id <> 0 AND afs_status >= 0"); $num_forms = $wpdb->get_var("SELECT count(DISTINCT afs_form_id ) as num_row FROM {$wpdb->prefix}accua_forms_submissions WHERE afs_status >= 0"); $num_submissions_per_lead_status = $wpdb->get_results("SELECT afs_lead_status AS status, COUNT(*) AS n FROM `{$wpdb->prefix}accua_forms_submissions` WHERE afs_status >= 0 GROUP BY afs_lead_status", OBJECT_K); //seleziono i campi email $avail_fields = get_option('accua_forms_avail_fields', array()); foreach ($avail_fields as $key => $single_field) { if ($single_field['type'] == 'email' || $single_field['type'] == 'autoreply_email') { $email_fields[] = $wpdb->prepare('%s', $key); } } if ($email_fields) { $email_fields_string = implode(',', $email_fields); $num_emails = $wpdb->get_var("SELECT COUNT(DISTINCT (`afsv_value`)) as num_row FROM {$wpdb->prefix}accua_forms_submissions, {$wpdb->prefix}accua_forms_submissions_values WHERE `afs_id` = `afsv_sub_id` AND afsv_field_id IN ({$email_fields_string}) AND afs_status >= 0"); } else { $num_emails = 0; } } $forms_data = get_option('accua_forms_saved_forms', array()); $all_public_post_types = function_exists('accua_forms_get_public_post_types') ? accua_forms_get_public_post_types() : array(); $submitted_posts = $wpdb->get_results("SELECT DISTINCT s.afs_post_id AS post_id, p.post_type, p.post_title FROM {$wpdb->prefix}accua_forms_submissions s INNER JOIN {$wpdb->posts} p ON p.ID = s.afs_post_id WHERE s.afs_post_id > 0 AND s.afs_status >= 0 AND p.post_type <> 'attachment' ORDER BY p.post_type ASC, p.post_title ASC, s.afs_post_id DESC", ARRAY_A); $submitted_post_types = array(); foreach ($submitted_posts as $submitted_post) { if (isset($all_public_post_types[$submitted_post['post_type']])) { $submitted_post_types[$submitted_post['post_type']] = $all_public_post_types[$submitted_post['post_type']]; } } $filter_post_type = ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only filter for dashboard view if (isset($_GET['ptype'])) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only filter for dashboard view $requested_post_type = sanitize_key(wp_unslash($_GET['ptype'])); if (isset($submitted_post_types[$requested_post_type])) { $filter_post_type = $requested_post_type; } } $id_posts = array(); foreach ($submitted_posts as $submitted_post) { if ($filter_post_type !== '' && $submitted_post['post_type'] !== $filter_post_type) { continue; } $id_posts[] = $submitted_post; } $ptype_param = ''; if ($filter_post_type !== '') { $ptype_param = $wpdb->prepare("AND EXISTS ( SELECT 1 FROM {$wpdb->posts} p_filter WHERE p_filter.ID = afs_post_id AND p_filter.post_type = %s )", $filter_post_type); } $fid = ''; $fid_param = ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only filter for dashboard view if (isset($_GET['fid'])) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only filter for dashboard view $fid = sanitize_text_field(wp_unslash($_GET['fid'])); if (isset($forms_data[$fid])) { $fid_param = $wpdb->prepare('AND afs_form_id = %s', $fid); } else { $fid = ''; } } $filter_post = -1; $pid_param = ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only filter for dashboard view if (isset($_GET['pid'])) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only filter for dashboard view $filter_post = (int) $_GET['pid']; if ($filter_post > 0 && get_post($filter_post)) { if ($filter_post_type !== '' && get_post_type($filter_post) !== $filter_post_type) { $filter_post = -1; } } if ($filter_post > 0) { $pid_param = $wpdb->prepare('AND afs_post_id = %d', $filter_post); } else { $filter_post = -1; } } // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only filter for dashboard view if (isset($_GET['period'])) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only filter for dashboard view $period = (int) $_GET['period']; if($period <= 0 && $period != -1){ $period = 24; //default } } else{ $period = 24; //default } $period2 = 24; // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only filter for dashboard view if (isset($_GET['period2'])) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only filter for dashboard view $period2 = (int) $_GET['period2']; if ($period2 <= 0 && $period2 != -1) { $period2 = 24; //default } } $label_my = array(); $submissions = array(); $unique_submissions = array(); $origin_label_my = array(); if ($email_fields) { //costruisco il grafico $query_grafico = $wpdb->get_results("SELECT YEAR( afs_submitted ) AS `year` , MONTH( afs_submitted ) AS `month` , COUNT( DISTINCT (`afs_id`) ) AS `submissions` , COUNT( DISTINCT (`afsv_value`)) AS `unique_submissions` FROM `{$wpdb->prefix}accua_forms_submissions` LEFT JOIN `{$wpdb->prefix}accua_forms_submissions_values` ON `afs_id` = `afsv_sub_id` WHERE afsv_field_id IN ({$email_fields_string}) AND afs_status >= 0 $fid_param $ptype_param $pid_param GROUP BY `year` , `month` ORDER BY `year` DESC , `month` DESC"); if ($query_grafico) { /* cicliamo per ogni mese in modo da riempire con 0 i mesi senza compilazioni */ for ($i = (int) wp_date('Y'); $i >= $query_grafico[count($query_grafico) - 1]->year; $i--) { $start_month = 12; $end_month = 1; if ($i == (int) wp_date('Y')) $start_month = (int) wp_date('n'); if ($i == $query_grafico[count($query_grafico) - 1]->year) $end_month = $query_grafico[count($query_grafico) - 1]->month; for ($j = $start_month; $j >= $end_month; $j--) { $find = false; foreach ($query_grafico as $result) { if (!$find && (int)$result->year == $i && (int)$result->month == $j) { $label_my[] = $j . '/' . $i; $submissions[] = (int)$result->submissions; $unique_submissions[] = (int)$result->unique_submissions; $find = true; } } if (!$find) { $label_my[] = $j . '/' . $i; $submissions[] = 0; $unique_submissions[] = 0; } } } $origin_label_my = $label_my; $origin_submissions = $submissions; $origin_unique_submissions = $unique_submissions; if ($period != -1) { $label_my = array_slice($label_my, 0, $period); $submissions = array_slice($submissions, 0, $period); $unique_submissions = array_slice($unique_submissions, 0, $period); } $label_my = array_reverse($label_my); $submissions = array_reverse($submissions); $unique_submissions = array_reverse($unique_submissions); } } // Second chart: submissions and distinct pages per month (no form/page filter) $label_my2 = array(); $submissions2 = array(); $unique_posts2 = array(); $origin_label_my2 = array(); $origin_submissions2 = array(); $origin_unique_posts2 = array(); $query_grafico2 = $wpdb->get_results("SELECT YEAR(afs_submitted) AS `year`, MONTH(afs_submitted) AS `month`, COUNT(DISTINCT afs_id) AS `submissions`, COUNT(DISTINCT afs_post_id) AS `unique_posts` FROM `{$wpdb->prefix}accua_forms_submissions` WHERE afs_status >= 0 AND afs_post_id > 0 $ptype_param $pid_param GROUP BY `year`, `month` ORDER BY `year` DESC, `month` DESC"); if ($query_grafico2) { for ($i = (int) wp_date('Y'); $i >= $query_grafico2[count($query_grafico2) - 1]->year; $i--) { $start_month2 = 12; $end_month2 = 1; if ($i == (int) wp_date('Y')) $start_month2 = (int) wp_date('n'); if ($i == $query_grafico2[count($query_grafico2) - 1]->year) $end_month2 = $query_grafico2[count($query_grafico2) - 1]->month; for ($j = $start_month2; $j >= $end_month2; $j--) { $find2 = false; foreach ($query_grafico2 as $result) { if (!$find2 && (int)$result->year == $i && (int)$result->month == $j) { $label_my2[] = $j . '/' . $i; $submissions2[] = (int)$result->submissions; $unique_posts2[] = (int)$result->unique_posts; $find2 = true; } } if (!$find2) { $label_my2[] = $j . '/' . $i; $submissions2[] = 0; $unique_posts2[] = 0; } } } $origin_label_my2 = $label_my2; $origin_submissions2 = $submissions2; $origin_unique_posts2 = $unique_posts2; if ($period2 != -1) { $label_my2 = array_slice($label_my2, 0, $period2); $submissions2 = array_slice($submissions2, 0, $period2); $unique_posts2 = array_slice($unique_posts2, 0, $period2); } $label_my2 = array_reverse($label_my2); $submissions2 = array_reverse($submissions2); $unique_posts2 = array_reverse($unique_posts2); } ?>', esc_html__('No forms submitted', 'contact-forms'), '
| '.absint($num_submissions_per_lead_status[$k]->n).' | '.esc_html($v).' |