function sr_get_daily_kpi_data() { global $wpdb; //Code for date localization $today_arr = getdate(); $curr_time_gmt = date('H:i:s', time() - date("Z")); $new_date = date('Y-m-d') . " " . $curr_time_gmt; $today = date('Y-m-d', (int) strtotime($new_date) + get_option('gmt_offset') * HOUR_IN_SECONDS); $today_time = date('Y-m-d H:i:s', (int) strtotime($new_date) + get_option('gmt_offset') * HOUR_IN_SECONDS); $yesterday = date('Y-m-d', strtotime($today . ' -1 day')); // $today_to_date = $today . " 00:00:00"; $this_month_start = date("Y-m-d H:i:s", mktime(0, 0, 0, date('m', strtotime($today)), 1, date('Y', strtotime($today)))); $days_in_this_month = date('t', mktime(0, 0, 0, date('m', strtotime($today)), 1, date('Y', strtotime($today)))); $comparison_to_date = date('Y-m-d', strtotime($today . ' -1 month')) . " 00:00:00"; $comparison_month_start = date("Y-m-d H:i:s", mktime(0, 0, 0, date('m', strtotime($comparison_to_date)), 1, date('Y', strtotime($comparison_to_date)))); $comparison_days_in_month = date('t', mktime(0, 0, 0, date('m', strtotime($comparison_to_date)), 1, date('Y', strtotime($comparison_to_date)))); $cond_terms_post = ''; $terms_post_join = ''; if (!empty($_POST['SR_IS_WOO22']) && $_POST['SR_IS_WOO22'] == "true") { $cond_terms_post = "AND posts.post_status IN ('wc-completed','wc-processing','wc-on-hold')"; $terms_post_join = ''; } else { $query_terms = "SELECT term_taxonomy.term_taxonomy_id\n\t\t\t\t\t\t\t\tFROM {$wpdb->prefix}term_taxonomy AS term_taxonomy \n\t JOIN {$wpdb->prefix}terms AS terms \n\t ON term_taxonomy.term_id = terms.term_id\n\t \t\tWHERE terms.name IN ('completed','processing','on-hold')"; $terms_post = $wpdb->get_col($query_terms); $rows_terms_post = $wpdb->num_rows; if ($rows_terms_post > 0) { $terms_taxonomy_ids = implode(",", $terms_post); $terms_post_join = ' JOIN ' . $wpdb->prefix . 'term_relationships AS term_relationships ON (term_relationships.object_id = posts.ID AND posts.post_status = "publish")'; $cond_terms_post = !empty($terms_post_join) ? 'AND term_relationships.term_taxonomy_id IN (' . $terms_taxonomy_ids . ')' : ''; } } $daily_widget_data = array(); // ================================================ // Todays Sales // ================================================ $query_today = "SELECT SUM( postmeta.meta_value ) AS todays_sales \n\t\t FROM `{$wpdb->prefix}postmeta` AS postmeta\n\t\t \tLEFT JOIN {$wpdb->prefix}posts AS posts ON ( posts.ID = postmeta.post_id )\n\t\t \t{$terms_post_join}\n\t\t WHERE postmeta.meta_key IN ('_order_total')\n\t\t AND posts.post_date LIKE '{$today}%'\n\t\t {$cond_terms_post}"; $results_today = $wpdb->get_col($query_today); $rows_results_today = $wpdb->num_rows; if ($rows_results_today > 0 && !empty($results_today[0])) { $daily_widget_data['sales_today'] = $results_today[0]; } else { $daily_widget_data['sales_today'] = 0; } $query_yest = "SELECT SUM( postmeta.meta_value ) AS yesterdays_sales \n\t\t FROM `{$wpdb->prefix}postmeta` AS postmeta\n\t\t \tLEFT JOIN {$wpdb->prefix}posts AS posts ON ( posts.ID = postmeta.post_id )\n\t\t \t{$terms_post_join}\n\t\t WHERE postmeta.meta_key IN ('_order_total')\n\t\t AND posts.post_date LIKE '{$yesterday}%'\n\t\t {$cond_terms_post}"; $results_yest = $wpdb->get_col($query_yest); $rows_results_yest = $wpdb->num_rows; if ($rows_results_yest > 0) { $daily_widget_data['sales_yest'] = $results_yest[0]; } else { $daily_widget_data['sales_yest'] = 0; } $daily_sales_kpi = sr_get_daily_kpi_data_formatted('daily_sales', $daily_widget_data['sales_today'], $daily_widget_data['sales_yest'], $_POST); // Query to get the month to date and forecasted sales $query_month_to_date_sales = "SELECT COUNT( posts.ID ) as sales_count, \n\t\t\t\t\t\t\t\t\t\t\tSUM( postmeta.meta_value ) AS month_to_date \n\t\t\t\t\t FROM `{$wpdb->prefix}postmeta` AS postmeta\n\t\t\t\t\t \tLEFT JOIN {$wpdb->prefix}posts AS posts ON ( posts.ID = postmeta.post_id )\n\t\t\t\t\t \t{$terms_post_join}\n\t\t\t\t\t WHERE postmeta.meta_key IN ('_order_total')\n\t\t\t\t \tAND posts.post_date between '{$this_month_start}' AND '{$today_time}'\n\t\t\t\t \t{$cond_terms_post}"; $results_month_to_date_sales = $wpdb->get_results($query_month_to_date_sales, 'ARRAY_A'); $month_to_date_sales = !empty($results_month_to_date_sales[0]['month_to_date']) ? $results_month_to_date_sales[0]['month_to_date'] : 0; $avg_sales_per_day = round($results_month_to_date_sales[0]['month_to_date'] / $today_arr['mday'], 2); $forcasted_sales = $avg_sales_per_day * $days_in_this_month; // Code for calculating the sales frequency $date_diff = round((strtotime($today_time) - strtotime($this_month_start)) / 60); $frequency_diff_days = $date_diff / 1440; $sales_frequency = !empty($results_month_to_date_sales[0]['sales_count']) ? $frequency_diff_days / $results_month_to_date_sales[0]['sales_count'] : '0'; // $diff = date_diff($today_time,$this_month_start); $sales_frequency_formatted = sr_get_frequency_formatted($sales_frequency); // Query to get the comparison month to date and forecasted sales $query_comparison_month_to_date_sales = "SELECT COUNT( posts.ID ) as sales_count, \n\t\t\t\t\t\t\t\t\t\t\t\t\tSUM( postmeta.meta_value ) AS month_to_date\n\t\t\t\t\t\t\t FROM `{$wpdb->prefix}postmeta` AS postmeta\n\t\t\t\t\t\t\t \tLEFT JOIN {$wpdb->prefix}posts AS posts ON ( posts.ID = postmeta.post_id )\n\t\t\t\t\t\t\t \t{$terms_post_join}\n\t\t\t\t\t\t\t WHERE postmeta.meta_key IN ('_order_total')\n\t\t\t\t\t\t \tAND posts.post_date between '{$comparison_month_start}' AND '{$comparison_to_date}'\n\t\t\t\t\t\t \t{$cond_terms_post}"; $results_comparison_month_to_date_sales = $wpdb->get_results($query_comparison_month_to_date_sales, 'ARRAY_A'); $comparison_month_to_date_sales = !empty($results_comparison_month_to_date_sales[0]['month_to_date']) ? $results_comparison_month_to_date_sales[0]['month_to_date'] : 0; $comparison_avg_sales_per_day = round($results_comparison_month_to_date_sales[0]['month_to_date'] / $today_arr['mday'], 2); $comparison_forcasted_sales = $comparison_avg_sales_per_day * $comparison_days_in_month; $comparison_sales_frequency = !empty($results_comparison_month_to_date_sales[0]['sales_count']) ? $frequency_diff_days / $results_comparison_month_to_date_sales[0]['sales_count'] : '0'; //Code for month to date sales KPI $month_to_date_sales_kpi = sr_get_daily_kpi_data_formatted('month_to_date_sales', $month_to_date_sales, $comparison_month_to_date_sales, $_POST); //Code for average sales per day KPI $avg_sales_per_day_kpi = sr_get_daily_kpi_data_formatted('avg_sales_per_day', $avg_sales_per_day, $comparison_avg_sales_per_day, $_POST); //Code for Forecasted Sales KPI $forcasted_sales_kpi = sr_get_daily_kpi_data_formatted('forcasted_sales', $forcasted_sales, $comparison_forcasted_sales, $_POST); //Code for Sales Frequency KPI // $sales_count = (!empty($results_month_to_date_sales[0]['sales_count'])) ? $results_month_to_date_sales[0]['sales_count'] : '0'; // $comparison_sales_count = (!empty($results_comparison_month_to_date_sales[0]['sales_count'])) ? $results_comparison_month_to_date_sales[0]['sales_count'] : '0'; if ($comparison_sales_frequency == 0) { $daily_widget_data['diff_sales_frequency'] = round($sales_frequency, 2); } else { $daily_widget_data['diff_sales_frequency'] = abs(round(($sales_frequency - $comparison_sales_frequency) / $comparison_sales_frequency * 100, 2)); } if ($daily_widget_data['diff_sales_frequency'] != 0) { if ($comparison_sales_frequency < $sales_frequency) { $daily_widget_data['imgurl_sales_frequency'] = $_POST['SR_IMG_UP_RED']; } else { $daily_widget_data['imgurl_sales_frequency'] = $_POST['SR_IMG_UP_GREEN']; } } else { $daily_widget_data['diff_sales_frequency'] = ""; $daily_widget_data['imgurl_sales_frequency'] = ""; } $daily_widget_data['sales_frequency_formatted'] = $sales_frequency_formatted; $daily_widget_data['diff_sales_frequency_formatted'] = !empty($daily_widget_data['diff_sales_frequency']) ? sr_number_format($daily_widget_data['diff_sales_frequency'], $_POST['SR_DECIMAL_PLACES']) . '%' : ""; // ================================================ // Todays Customers // ================================================ $result_guest_today_email1 = array(); $result_guest_yest_email1 = array(); $reg_today_count = 0; $reg_yest_count = 0; //Reg Customers $query_reg_today = "SELECT ID FROM `{$wpdb->users}` \n\t\t WHERE user_registered LIKE '{$today}%'"; $reg_today_ids = $wpdb->get_col($query_reg_today); $rows_reg_today_ids = $wpdb->num_rows; if ($rows_reg_today_ids > 0) { $query_reg_today_count = "SELECT DISTINCT postmeta.meta_value\n\t\t FROM {$wpdb->prefix}postmeta AS postmeta\n\t\t JOIN {$wpdb->prefix}posts AS posts ON (posts.ID = postmeta.post_id)\n\t\t {$terms_post_join}\n\t\t WHERE postmeta.meta_key IN ('_customer_user')\n\t\t AND postmeta.meta_value IN (" . implode(",", $reg_today_ids) . ")\n\t\t AND posts.post_date LIKE '{$today}%'\n\t\t {$cond_terms_post}"; $reg_today = $wpdb->get_col($query_reg_today_count); $rows_reg_today = $wpdb->num_rows; if ($rows_reg_today > 0) { $reg_today_count = sizeof($reg_today); } } $query_reg_yest = "SELECT ID FROM `{$wpdb->users}` \n\t\t WHERE user_registered LIKE '{$yesterday}%'"; $reg_yest_ids = $wpdb->get_col($query_reg_yest); $rows_reg_yest_ids = $wpdb->num_rows; if ($rows_reg_yest_ids > 0) { $query_reg_today_count = "SELECT DISTINCT postmeta.meta_value\n\t\t FROM {$wpdb->prefix}postmeta AS postmeta\n\t JOIN {$wpdb->prefix}posts AS posts ON (posts.ID = postmeta.post_id)\n\t {$terms_post_join}\n\t\t WHERE postmeta.meta_key IN ('_customer_user')\n\t\t AND postmeta.meta_value IN (" . implode(",", $reg_yest_ids) . ")\n\t\t AND posts.post_date LIKE '{$yesterday}%'\n\t\t {$cond_terms_post}"; $reg_yest = $wpdb->get_col($query_reg_today_count); $rows_reg_yest = $wpdb->num_rows; if ($rows_reg_yest > 0) { $reg_yest_count = sizeof($reg_yest); } } //Guest Customers $query_guest_today_email = "SELECT postmeta1.meta_value\n\t\t FROM {$wpdb->prefix}postmeta AS postmeta1\n\t\t JOIN {$wpdb->prefix}posts AS posts ON (posts.ID = postmeta1.post_id)\n\t\t INNER JOIN {$wpdb->prefix}postmeta AS postmeta2\n\t\t ON (postmeta2.post_ID = postmeta1.post_ID AND postmeta2.meta_key IN ('_customer_user'))\n {$terms_post_join}\n\t\t WHERE postmeta1.meta_key IN ('_billing_email')\n\t\t AND postmeta2.meta_value = 0\n\t\t AND posts.post_date LIKE '{$today}%'\n\t\t {$cond_terms_post}\n\t\t GROUP BY postmeta1.meta_value"; $result_guest_today_email = $wpdb->get_col($query_guest_today_email); $rows_guest_today_email = $wpdb->num_rows; if ($rows_guest_today_email > 0) { $result_guest_today_email1 = array_flip($result_guest_today_email); $query_guest_today = "SELECT DISTINCT postmeta.meta_value\n\t\t FROM {$wpdb->prefix}postmeta AS postmeta\n\t\t JOIN {$wpdb->prefix}posts AS posts ON (posts.ID = postmeta.post_id)\n\t\t WHERE postmeta.meta_key IN ('_billing_email')\n\t\t AND postmeta.meta_value IN ('" . implode("','", $result_guest_today_email) . "')\n\t\t AND posts.post_date NOT LIKE '{$today}%'\n\t\t GROUP BY posts.ID"; $result_guest_today = $wpdb->get_col($query_guest_today); for ($i = 0; $i < sizeof($result_guest_today); $i++) { if (isset($result_guest_today_email1[$result_guest_today[$i]])) { unset($result_guest_today_email1[$result_guest_today[$i]]); } } } $daily_widget_data['today_count_cust'] = 0; $daily_widget_data['today_count_cust'] = sizeof($result_guest_today_email1) + $reg_today_count; $query_guest_yest_email = "SELECT postmeta1.meta_value\n\t\t FROM {$wpdb->prefix}postmeta AS postmeta1\n\t\t JOIN {$wpdb->prefix}posts AS posts ON (posts.ID = postmeta1.post_id)\n\t\t INNER JOIN {$wpdb->prefix}postmeta AS postmeta2\n\t\t ON (postmeta2.post_ID = postmeta1.post_ID AND postmeta2.meta_key IN ('_customer_user'))\n\t\t {$terms_post_join}\n\t\t WHERE postmeta1.meta_key IN ('_billing_email')\n\t\t AND postmeta2.meta_value = 0\n\t\t AND posts.post_date LIKE '{$yesterday}%'\n\t\t {$cond_terms_post}\n\t\t GROUP BY postmeta1.meta_value"; $result_guest_yest_email = $wpdb->get_col($query_guest_yest_email); $rows_guest_yest_email = $wpdb->num_rows; if ($rows_guest_yest_email > 0) { $result_guest_yest_email1 = array_flip($result_guest_yest_email); $query_guest_yest = "SELECT DISTINCT postmeta.meta_value\n\t\t FROM {$wpdb->prefix}postmeta AS postmeta\n\t\t JOIN {$wpdb->prefix}posts AS posts ON (posts.ID = postmeta.post_id)\n\t\t WHERE postmeta.meta_key IN ('_billing_email')\n\t\t AND postmeta.meta_value IN ('" . implode("','", $result_guest_yest_email) . "')\n\t\t AND posts.post_date NOT LIKE '{$yesterday}%'\n\t\t AND posts.post_date NOT LIKE '{$today}%'\n\t\t GROUP BY posts.ID"; $result_guest_yest = $wpdb->get_col($query_guest_yest); for ($i = 0; $i < sizeof($result_guest_yest); $i++) { if (isset($result_guest_yest_email1[$result_guest_yest[$i]])) { unset($result_guest_yest_email1[$result_guest_yest[$i]]); } } } $daily_widget_data['yest_count_cust'] = 0; $daily_widget_data['yest_count_cust'] = sizeof($result_guest_yest_email1) + $reg_yest_count; $daily_cust_kpi = sr_get_daily_kpi_data_formatted('daily_cust', $daily_widget_data['today_count_cust'], $daily_widget_data['yest_count_cust'], $_POST); // ================================================ // Todays Returns // ================================================ $cond_terms_post = ''; $terms_post_join = ''; if (!empty($_POST['SR_IS_WOO22']) && $_POST['SR_IS_WOO22'] == "true") { $cond_terms_post = " posts.post_status IN ('wc-refunded')"; $terms_post_join = ''; } else { $query_terms = "SELECT term_taxonomy.term_taxonomy_id\n\t\t\t\t\t\t\t\tFROM {$wpdb->prefix}term_taxonomy AS term_taxonomy \n\t JOIN {$wpdb->prefix}terms AS terms \n\t ON term_taxonomy.term_id = terms.term_id\n\t \t\tWHERE terms.name IN ('refunded')"; $terms_post = $wpdb->get_col($query_terms); $rows_terms_post = $wpdb->num_rows; if ($rows_terms_post > 0) { $terms_taxonomy_ids = implode(",", $terms_post); $terms_post_join = ' JOIN ' . $wpdb->prefix . 'term_relationships AS term_relationships ON (term_relationships.object_id = posts.ID AND posts.post_status = "publish")'; $cond_terms_post = ' term_relationships.term_taxonomy_id IN (' . $terms_taxonomy_ids . ')'; } } $query_terms_refund = "SELECT id FROM {$wpdb->prefix}posts AS posts\n\t\t \t\t{$terms_post_join}\n\t\t\t WHERE {$cond_terms_post}"; $terms_refund_post = $wpdb->get_col($query_terms_refund); $rows_terms_refund_post = $wpdb->num_rows; if ($rows_terms_refund_post > 0) { $terms_refund_post = implode(",", $terms_refund_post); $query_today_refund = "SELECT SUM(postmeta.meta_value) as todays_refund\n\t\t\t FROM {$wpdb->prefix}postmeta AS postmeta\n\t\t\t JOIN {$wpdb->prefix}posts AS posts ON (posts.ID = postmeta.post_id)\n\t\t\t WHERE postmeta.meta_key IN ('_order_total')\n\t\t\t AND posts.post_modified LIKE '{$today}%'\n\t\t\t AND posts.ID IN ({$terms_refund_post})"; $result_today_refund = $wpdb->get_col($query_today_refund); $query_yest_refund = "SELECT SUM(postmeta.meta_value) as yest_refund\n\t\t\t FROM {$wpdb->prefix}postmeta AS postmeta\n\t\t\t JOIN {$wpdb->prefix}posts AS posts ON (posts.ID = postmeta.post_id)\n\t\t\t WHERE postmeta.meta_key IN ('_order_total')\n\t\t\t AND posts.post_modified LIKE '{$yesterday}%'\n\t\t\t AND posts.ID IN ({$terms_refund_post})"; $result_yest_refund = $wpdb->get_col($query_yest_refund); } else { $rows_today_refund = 0; $rows_yest_refund = 0; } if (!empty($result_today_refund[0])) { $daily_widget_data['today_refund'] = $result_today_refund[0]; } else { $daily_widget_data['today_refund'] = "0"; } if (!empty($result_yest_refund[0])) { $daily_widget_data['yest_refund'] = $result_yest_refund[0]; } else { $daily_widget_data['yest_refund'] = "0"; } $daily_refund_kpi = sr_get_daily_kpi_data_formatted('daily_refund', $daily_widget_data['today_refund'], $daily_widget_data['yest_refund'], $_POST); // ================================================ // Orders Unfulfillment // ================================================ $query_shipping_status = "SELECT option_value FROM {$wpdb->prefix}options\n\t\t WHERE option_name LIKE 'woocommerce_calc_shipping'"; $result_shipping_status = $wpdb->get_col($query_shipping_status); $daily_widget_data['result_shipping_status'] = $result_shipping_status[0]; $query_physical_prod = "SELECT post_id\n\t\t FROM {$wpdb->prefix}postmeta\n\t\t WHERE (meta_key LIKE '_downloadable' AND meta_value LIKE 'no')\n\t\t OR (meta_key LIKE '_virtual' AND meta_value LIKE 'no')"; $result_physical_prod = $wpdb->get_col($query_physical_prod); $rows_physical_prod = $wpdb->num_rows; $daily_widget_data['rows_physical_prod'] = $rows_physical_prod; //Woo 2.2 Fix if (!empty($_POST['SR_IS_WOO22']) && $_POST['SR_IS_WOO22'] == "true") { $cond_terms_post = " posts.post_status IN ('wc-processing')"; $terms_post_join = ''; } else { $query_terms = "SELECT term_taxonomy.term_taxonomy_id\n\t\t\t\t\t\t\t\tFROM {$wpdb->prefix}term_taxonomy AS term_taxonomy \n\t JOIN {$wpdb->prefix}terms AS terms \n\t ON term_taxonomy.term_id = terms.term_id\n\t \t\tWHERE terms.name IN ('processing')"; $terms_post = $wpdb->get_col($query_terms); $rows_terms_post = $wpdb->num_rows; if ($rows_terms_post > 0) { $terms_taxonomy_ids = implode(",", $terms_post); $terms_post_join = ' JOIN ' . $wpdb->prefix . 'term_relationships AS term_relationships ON (term_relationships.object_id = posts.ID AND posts.post_status = "publish")'; $cond_terms_post = ' term_relationships.term_taxonomy_id IN (' . $terms_taxonomy_ids . ')'; } } $query_order_fulfillment_today = "SELECT count(id) FROM {$wpdb->prefix}posts AS posts\n\t\t \t{$terms_post_join}\n\t\t WHERE {$cond_terms_post}\n\t\t AND (posts.post_modified LIKE '{$today}%'\n\t\t OR posts.post_date LIKE '{$today}%')"; $result_order_fulfillment_today = $wpdb->get_col($query_order_fulfillment_today); $rows_order_fulfillment_today = $wpdb->num_rows; if ($rows_order_fulfillment_today > 0) { $daily_widget_data['count_order_fulfillment_today'] = $result_order_fulfillment_today[0]; } else { $daily_widget_data['count_order_fulfillment_today'] = 0; } $query_order_fulfillment_yest = "SELECT count(id) FROM {$wpdb->prefix}posts AS posts\n\t\t \t{$terms_post_join}\n\t\t WHERE {$cond_terms_post}\n\t\t AND (posts.post_modified LIKE '{$yesterday}%'\n\t\t OR posts.post_date LIKE '{$yesterday}%')"; $result_order_fulfillment_yest = $wpdb->get_col($query_order_fulfillment_yest); $rows_order_fulfillment_yest = $wpdb->num_rows; if ($rows_order_fulfillment_yest > 0) { $daily_widget_data['count_order_fulfillment_yest'] = $result_order_fulfillment_yest[0]; } else { $daily_widget_data['count_order_fulfillment_yest'] = 0; } $daily_order_fulfillment_kpi = sr_get_daily_kpi_data_formatted('order_fulfillment', $daily_widget_data['count_order_fulfillment_today'], $daily_widget_data['count_order_fulfillment_yest'], $_POST); $daily_widget_data = array_merge($daily_widget_data, $daily_sales_kpi, $month_to_date_sales_kpi, $avg_sales_per_day_kpi, $forcasted_sales_kpi, $daily_cust_kpi, $daily_refund_kpi, $daily_order_fulfillment_kpi); return $daily_widget_data; }
function sr_get_daily_kpi_data_formatted($data) { if (!wp_verify_nonce($data['sr_security'], 'smart-reporter-security')) { die('Security check'); } unset($data['sr_security']); $const = array(); $const['SR_CURRENCY_SYMBOL'] = defined('SR_CURRENCY_SYMBOL') ? SR_CURRENCY_SYMBOL : (!empty($_POST['SR_CURRENCY_SYMBOL']) ? $_POST['SR_CURRENCY_SYMBOL'] : ''); $const['SR_DECIMAL_PLACES'] = defined('SR_DECIMAL_PLACES') ? SR_DECIMAL_PLACES : (!empty($_POST['SR_DECIMAL_PLACES']) ? $_POST['SR_DECIMAL_PLACES'] : 2); $const['SR_IMG_UP_GREEN'] = defined('SR_IMG_UP_GREEN') ? SR_IMG_UP_GREEN : (!empty($_POST['SR_IMG_UP_GREEN']) ? $_POST['SR_IMG_UP_GREEN'] : ''); $const['SR_IMG_UP_RED'] = defined('SR_IMG_UP_RED') ? SR_IMG_UP_RED : (!empty($_POST['SR_IMG_UP_RED']) ? $_POST['SR_IMG_UP_RED'] : ''); $const['SR_IMG_DOWN_RED'] = defined('SR_IMG_DOWN_RED') ? SR_IMG_DOWN_RED : (!empty($_POST['SR_IMG_DOWN_RED']) ? $_POST['SR_IMG_DOWN_RED'] : ''); $const['SR_IS_WOO22'] = defined('SR_IS_WOO22') ? SR_IS_WOO22 : (!empty($_POST['SR_IS_WOO22']) ? $_POST['SR_IS_WOO22'] : ''); $returns = array(); foreach ($data as $kpi => $val) { // code for calculating the cmp. value if (!empty($val['params']['cmp_format']) && $val['params']['cmp_format'] == '$') { $diff = sr_number_format(abs(round($val['c'] - $val['lp'], 2)), $const['SR_DECIMAL_PLACES']); } else { if (!empty($val['params']['cmp_format']) && $val['params']['cmp_format'] == '%') { $diff = sr_number_format(!empty($val['lp']) && $val['lp'] != 0 ? abs(round(($val['c'] - $val['lp']) / $val['lp'] * 100, 2)) : round($val['c'], 2), $const['SR_DECIMAL_PLACES']) . '%'; } else { $diff = ''; } } if ($diff != 0) { if ($val['lp'] < $val['c']) { if ($kpi == "refund_today" || $kpi == "orders_to_fulfill") { $img = $const['SR_IMG_UP_RED']; } else { $img = $const['SR_IMG_UP_GREEN']; } } else { if ($kpi == "daily_refund" || $kpi == "orders_to_fulfill") { $img = $const['SR_IMG_UP_GREEN']; } else { $img = $const['SR_IMG_DOWN_RED']; } } } else { $diff = ""; $img = ""; } if (empty($val['params']['currency_show'])) { if ($kpi == 'one_sale_every') { $f_val = sr_get_frequency_formatted($val['c']); } else { $f_val = sr_number_format($val['c'], $const['SR_DECIMAL_PLACES']); } } else { $f_val = $const['SR_CURRENCY_SYMBOL'] . sr_number_format($val['c'], $const['SR_DECIMAL_PLACES']); } $returns[$kpi] = '<span class = "daily_widgets_price"> ' . $f_val . ' <i class= "' . $img . '" ></i>' . ' <span class = "daily_widgets_comp_price">' . $diff . '</span> </span>'; if ($kpi == 'one_sale_every') { $returns[$kpi] = '<p class="daily_widgets_text "> ' . $val['title'] . ' </p>' . $returns[$kpi]; } else { $returns[$kpi] .= '<p class="daily_widgets_text "> ' . $val['title'] . ' </p>'; } } return $returns; }