true, 'days' => TimeZone::getListDays(array('from' => TimeZone::getTimeAgo($default_days_ago))), 'type' => 'ago'); } // Check if Not Exist if ((isset($_GET[self::$request_from_date]) and !isset($_GET[self::$request_to_date])) || (!isset($_GET[self::$request_from_date]) and isset($_GET[self::$request_to_date]))) { return array('status' => false, 'message' => __("Request is not valid.", "wp-statistics")); } // Check Validate DateTime if (TimeZone::isValidDate($_GET[self::$request_from_date]) === false || TimeZone::isValidDate($_GET[self::$request_to_date]) === false) { return array('status' => false, 'message' => __("Time request is not valid.", "wp-statistics")); } // Export Days Between $type = (self::$request_to_date == TimeZone::getCurrentDate("Y-m-d") ? 'ago' : 'between'); return array('status' => true, 'days' => TimeZone::getListDays(array('from' => $_GET[self::$request_from_date], 'to' => $_GET[self::$request_to_date])), 'type' => $type); } /** * Get Current Paged * * @return float|int */ public static function getCurrentPaged() { return isset($_GET[Admin_Template::$paginate_link_name]) ? abs((int)$_GET[Admin_Template::$paginate_link_name]) : 1; } /** * Get Current Offset * * @param bool $page * @param $item_per_page * @return float|int */ public static function getCurrentOffset($page = false, $item_per_page = false) { $page = ($page === false ? self::getCurrentPaged() : $page); $item_per_page = ($item_per_page === false ? Admin_Template::$item_per_page : $item_per_page); return ($page * $item_per_page) - $item_per_page; } /** * Pagination Link * * @param array $args * @area admin * @return string */ public static function paginate_links($args = array()) { //Prepare Arg $defaults = array( 'item_per_page' => self::$item_per_page, 'container' => 'pagination-wrap', 'query_var' => self::$paginate_link_name, 'total' => 0, 'current' => 0, 'show_now_page' => true, 'echo' => false ); $args = wp_parse_args($args, $defaults); $total_page = ceil($args['total'] / $args['item_per_page']); $args['current'] = ($args['current'] < 1 ? self::getCurrentPaged() : 1); $export = ''; //Show Pagination Ui if ($total_page > 1) { $export .= '
'; $export .= paginate_links(array( 'base' => add_query_arg($args['query_var'], '%#%'), 'format' => '', 'type' => 'list', 'mid_size' => 3, 'prev_text' => __('«'), 'next_text' => __('»'), 'total' => $total_page, 'current' => $args['current'] )); if ($args['show_now_page']) { $export .= '

' . sprintf(__('Page %1$s of %2$s', 'wp-statistics'), number_format_i18n($args['current']), number_format_i18n($total_page)) . '

'; } $export .= '
'; // Export Data if ($args['echo']) { echo $export; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } else { return $export; } } } /** * Show WordPress DashIcons * * @param $dashicons * @return string */ public static function icons($dashicons) { return ''; } /** * Create Date Range * * @param bool $page_link * @return array * @throws \Exception */ public static function DateRange($page_link = false) { // Default List Of Date Range $date_range = array( 10 => __('10 Days', 'wp-statistics'), 20 => __('20 Days', 'wp-statistics'), 30 => __('30 Days', 'wp-statistics'), 60 => __('2 Months', 'wp-statistics'), 90 => __('3 Months', 'wp-statistics'), 180 => __('6 Months', 'wp-statistics'), 270 => __('9 Months', 'wp-statistics'), 365 => __('1 Year', 'wp-statistics') ); // Get All Date From installed plugins day $first_day = Helper::get_date_install_plugin(); if ($first_day != false and !isset($date_range[(int)TimeZone::getNumberDayBetween($first_day)])) { $date_range[(int)TimeZone::getNumberDayBetween($first_day)] = __('All', 'wp-statistics'); } // Apply_filter RageTime $date_range = apply_filters('wp_statistics_date_time_range', $date_range); // Create Link Of Date Time range $list = array(); foreach ($date_range as $number_days => $title) { // Generate Link $link = add_query_arg(array('from' => TimeZone::getTimeAgo($number_days), 'to' => TimeZone::getCurrentDate("Y-m-d")), (isset($page_link) ? $page_link : remove_query_arg(array(self::$request_from_date, self::$request_to_date)))); // Check Activate Page $active = false; $RequestDate = self::isValidDateRequest(); if ($RequestDate['status'] === true) { $RequestDateKeys = array_keys($RequestDate['days']); if (reset($RequestDateKeys) == TimeZone::getTimeAgo($number_days) and end($RequestDateKeys) == TimeZone::getCurrentDate("Y-m-d")) { $active = true; } } // Push To list $list[$number_days] = array('title' => $title, 'link' => sanitize_url($link), 'active' => $active); } return array('list' => $list, 'from' => reset($RequestDateKeys), 'to' => end($RequestDateKeys)); } /** * Unknown Column * * @return string */ public static function UnknownColumn() { return '' . __("Unknown", 'wp-statistics') . ''; } }