PluginProbe ʕ •ᴥ•ʔ
Download Manager / trunk
Download Manager vtrunk
3.3.62 3.3.61 3.3.60 3.3.59 3.3.58 3.3.57 3.3.56 trunk 2.1.3 2.3.0 2.5.96 2.5.97 2.6.2 2.6.96 2.8.3 2.9.99 3.0.4 3.1.05 3.1.07 3.1.08 3.1.11 3.1.12 3.1.14 3.1.17 3.1.18 3.1.22 3.1.23 3.1.24 3.1.25 3.1.26 3.1.27 3.1.28 3.2.04 3.2.13 3.2.14 3.2.16 3.2.18 3.2.19 3.2.21 3.2.22 3.2.23 3.2.24 3.2.25 3.2.27 3.2.28 3.2.29 3.2.30 3.2.31 3.2.32 3.2.33 3.2.34 3.2.35 3.2.37 3.2.38 3.2.39 3.2.40 3.2.41 3.2.42 3.2.43 3.2.44 3.2.45 3.2.46 3.2.47 3.2.48 3.2.49 3.2.50 3.2.51 3.2.52 3.2.53 3.2.54 3.2.55 3.2.56 3.2.57 3.2.58 3.2.59 3.2.60 3.2.61 3.2.63 3.2.64 3.2.65 3.2.66 3.2.67 3.2.68 3.2.69 3.2.70 3.2.71 3.2.72 3.2.73 3.2.74 3.2.75 3.2.76 3.2.77 3.2.78 3.2.79 3.2.80 3.2.81 3.2.82 3.2.83 3.2.84 3.2.85 3.2.86 3.2.87 3.2.88 3.2.89 3.2.90 3.2.91 3.2.92 3.2.93 3.2.94 3.2.95 3.2.96 3.2.97 3.2.98 3.2.99 3.3.00 3.3.01 3.3.02 3.3.03 3.3.04 3.3.05 3.3.06 3.3.07 3.3.08 3.3.09 3.3.10 3.3.11 3.3.12 3.3.13 3.3.14 3.3.15 3.3.16 3.3.17 3.3.18 3.3.19 3.3.20 3.3.21 3.3.22 3.3.23 3.3.24 3.3.25 3.3.26 3.3.27 3.3.28 3.3.29 3.3.30 3.3.31 3.3.32 3.3.33 3.3.34 3.3.35 3.3.36 3.3.37 3.3.38 3.3.39 3.3.40 3.3.41 3.3.42 3.3.43 3.3.44 3.3.45 3.3.46 3.3.47 3.3.48 3.3.49 3.3.50 3.3.51 3.3.52 3.3.53 3.3.54 3.3.55
download-manager / src / Admin / Menu / Stats.php
download-manager / src / Admin / Menu Last commit date
AddOns.php 4 years ago Categories.php 3 years ago Packages.php 5 days ago Settings.php 5 months ago Stats.php 4 years ago Templates.php 2 years ago Welcome.php 5 months ago
Stats.php
116 lines
1 <?php
2
3 /**
4 * User: shahnuralam
5 * Date: 11/9/15
6 * Time: 7:44 PM
7 */
8
9 namespace WPDM\Admin\Menu;
10
11
12 use WPDM\__\__;
13 use WPDM\__\Crypt;
14 use WPDM\__\FileSystem;
15
16 class Stats
17 {
18 function __construct()
19 {
20 add_action('admin_menu', array($this, 'menu'));
21 add_action('admin_init', array($this, 'export'));
22 add_action('wp_ajax_wpdm_stats_get_packages', array($this, 'ajax_callback_get_packages'));
23 add_action('wp_ajax_wpdm_stats_get_users', array($this, 'ajax_callback_get_users'));
24 }
25
26 function menu()
27 {
28 add_submenu_page('edit.php?post_type=wpdmpro', __("Stats &lsaquo; Download Manager", "download-manager"), __("History", "download-manager"), WPDM_MENU_ACCESS_CAP, 'wpdm-stats', array($this, 'UI'));
29 }
30
31 function UI()
32 {
33 include wpdm_admin_tpl_path("stats.php");
34 }
35
36 public function ajax_callback_get_packages()
37 {
38 __::isAuthentic('__spnonce', WPDM_PUB_NONCE, WPDM_MENU_ACCESS_CAP);
39 global $wpdb;
40 $posts_table = "{$wpdb->base_prefix}posts";
41 $packages = [];
42 $term = wpdm_query_var('term');
43
44 if ($term) {
45 $result_rows = $wpdb->get_results("SELECT ID, post_title FROM $posts_table where `post_type` = 'wpdmpro' AND `post_title` LIKE '%" . $term . "%' ");
46 foreach ($result_rows as $row) {
47 array_push($packages, [
48 'id' => $row->ID,
49 'text' => $row->post_title
50 ]);
51 }
52 }
53 //results key is necessary for jquery select2
54 wp_send_json(["results" => $packages]);
55 }
56
57 public function ajax_callback_get_users()
58 {
59 __::isAuthentic('__spnonce', WPDM_PUB_NONCE, WPDM_MENU_ACCESS_CAP);
60 global $wpdb;
61 $users_table = "{$wpdb->prefix}users";
62 $term = wpdm_query_var('term');
63 $users = [];
64
65 if ($term) {
66 $result_rows = $wpdb->get_results("SELECT ID, user_login, display_name, user_email FROM $users_table where `display_name` LIKE '%" . $term . "%' OR `user_login` LIKE '%" . $term . "%' OR `user_email` LIKE '%" . $term . "%' ");
67 foreach ($result_rows as $row) {
68 $text = $row->display_name . " ( $row->user_login ) ";
69 array_push($users, [
70 'id' => $row->ID,
71 'text' => $text
72 ]);
73 }
74 }
75 //results key is necessary for jquery select2
76 wp_send_json(["results" => $users]);
77 }
78
79
80
81 function export()
82 {
83 if (wpdm_query_var('page') == 'wpdm-stats' && wpdm_query_var('task') == 'export') {
84 if(!current_user_can(WPDM_ADMIN_CAP) || !wp_verify_nonce(wpdm_query_var('__xnonce'), NONCE_KEY)) die('Invalid nonce!');
85 global $wpdb;
86 $sql = wpdm_query_var("hash") !== '' ? Crypt::decrypt(wpdm_query_var('hash')) : "";
87 if(!$sql) $sql = "SELECT [##fields##] FROM {$wpdb->prefix}ahm_download_stats";
88 //$data = $wpdb->get_results("select s.*, p.post_title as file from {$wpdb->prefix}ahm_download_stats s, {$wpdb->prefix}posts p where p.ID = s.pid order by id DESC");
89 $total = $wpdb->get_var(str_replace("[##fields##]", "count(*) as total", $sql));
90 WPDM()->fileSystem->downloadHeaders("download-stats.csv");
91 ob_start();
92 echo "Package ID,Package Name,User ID,User Name,User Email,Order ID,Date,Timestamp\r\n";
93 ob_flush();
94 $pages = $total / 20;
95 if ($pages > (int) $pages) $pages++;
96
97 for ($i = 0; $i <= $pages; $i++) {
98 $start = $i * 20;
99 $data = $wpdb->get_results(str_replace("[##fields##]", "*", $sql)." limit $start, 20");
100 ob_start();
101 foreach ($data as $d) {
102 $package_name = get_the_title($d->pid);
103 $package_name = addslashes($package_name);
104 if ($d->uid > 0) {
105 $u = get_user_by('ID', $d->uid);
106 echo "{$d->pid},\"{$package_name}\",{$d->uid},\"{$u->display_name}\",\"{$u->user_email}\",{$d->oid},{$d->year}-{$d->month}-{$d->day},{$d->timestamp}\r\n";
107 } else
108 echo "{$d->pid},\"{$package_name}\",-,\"-\",\"-\",{$d->oid},{$d->year}-{$d->month}-{$d->day},{$d->timestamp}\r\n";
109 }
110 ob_flush();
111 }
112 die();
113 }
114 }
115 }
116