PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 4.17.1
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v4.17.1
4.17.1 4.17.0 4.16.19 4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / src / Admin / SettingsPages / Membership / DashboardPage / Orders.php
wp-user-avatar / src / Admin / SettingsPages / Membership / DashboardPage Last commit date
AbstractReport.php 3 years ago Orders.php 3 years ago PaymentMethods.php 3 years ago Refunds.php 4 years ago ReportFilterData.php 4 years ago ReportInterval.php 4 years ago Revenue.php 4 years ago SettingsPage.php 1 year ago Taxes.php 4 years ago TopPlans.php 4 years ago index.php 4 years ago
Orders.php
111 lines
1 <?php
2
3 namespace ProfilePress\Core\Admin\SettingsPages\Membership\DashboardPage;
4
5 use ProfilePress\Core\Membership\Models\Order\OrderStatus;
6 use ProfilePress\Core\Membership\Models\Order\OrderType;
7
8 class Orders extends AbstractReport
9 {
10 public function get_total($start_date = '', $end_date = '')
11 {
12 static $bucket = [];
13
14 $cache_key = md5('orders_get_total' . $start_date . $end_date);
15
16 if ( ! isset($bucket[$cache_key])) {
17 $start_date = ! empty($start_date) ? $start_date : '';
18 $end_date = ! empty($end_date) ? $end_date : '';
19
20 $where_clause = $this->get_where_clause(false, $start_date, $end_date);
21
22 $bucket[$cache_key] = $this->wpdb()->get_var(
23 $this->wpdb()->prepare(
24 "SELECT COUNT(id) FROM {$this->db_table} WHERE status = %s AND $where_clause", OrderStatus::COMPLETED
25 )
26 );
27 }
28
29 return ! $bucket[$cache_key] ? 0 : $bucket[$cache_key];
30 }
31
32 public function get_data()
33 {
34 $new_orders = $this->wpdb()->get_results(
35 $this->wpdb()->prepare(
36 "SELECT COUNT(id) AS order_total, {$this->get_date_column()} FROM {$this->db_table} WHERE status = %s AND order_type = %s AND {$this->get_where_clause($groupBy=true)}",
37 OrderStatus::COMPLETED, OrderType::NEW_ORDER
38 ),
39 'ARRAY_A'
40 );
41
42 $renewal_orders = $this->wpdb()->get_results(
43 $this->wpdb()->prepare(
44 "SELECT COUNT(id) AS order_total, {$this->get_date_column()} FROM {$this->db_table} WHERE status = %s AND order_type = %s AND {$this->get_where_clause($groupBy=true)}",
45 OrderStatus::COMPLETED, OrderType::RENEWAL_ORDER
46 ),
47 'ARRAY_A'
48 );
49
50 $upgrade_orders = $this->wpdb()->get_results(
51 $this->wpdb()->prepare(
52 "SELECT COUNT(id) AS order_total, {$this->get_date_column()} FROM {$this->db_table} WHERE status = %s AND order_type = %s AND {$this->get_where_clause($groupBy=true)}",
53 OrderStatus::COMPLETED, OrderType::UPGRADE
54 ),
55 'ARRAY_A'
56 );
57
58 $downgrade_orders = $this->wpdb()->get_results(
59 $this->wpdb()->prepare(
60 "SELECT COUNT(id) AS order_total, {$this->get_date_column()} FROM {$this->db_table} WHERE status = %s AND order_type = %s AND {$this->get_where_clause($groupBy=true)}",
61 OrderStatus::COMPLETED, OrderType::DOWNGRADE
62 ),
63 'ARRAY_A'
64 );
65
66 $no_dataset = [];
67 $ro_dataset = [];
68 $uo_dataset = [];
69 $do_dataset = [];
70
71 foreach ($this->get_labels() as $datetime => $label) {
72
73 $no_data = $this->get_interval_data($new_orders, $datetime);
74 $ro_data = $this->get_interval_data($renewal_orders, $datetime);
75 $uo_data = $this->get_interval_data($upgrade_orders, $datetime);
76 $do_data = $this->get_interval_data($downgrade_orders, $datetime);
77
78 $no_dataset[] = ! empty($no_data) ? reset($no_data)['order_total'] : 0;
79 $ro_dataset[] = ! empty($ro_data) ? reset($ro_data)['order_total'] : 0;
80 $uo_dataset[] = ! empty($uo_data) ? reset($uo_data)['order_total'] : 0;
81 $do_dataset[] = ! empty($do_data) ? reset($do_data)['order_total'] : 0;
82 }
83
84 return [
85 [
86 'label' => esc_html__('New', 'wp-user-avatar'),
87 'data' => $no_dataset,
88 'borderColor' => 'rgb(54, 162, 235)',
89 'backgroundColor' => 'rgba(54, 162, 235, 0.5)'
90 ],
91 [
92 'label' => esc_html__('Renewals', 'wp-user-avatar'),
93 'data' => $ro_dataset,
94 'borderColor' => 'rgb(255, 99, 132)',
95 'backgroundColor' => 'rgba(255, 99, 132, 0.5)'
96 ],
97 [
98 'label' => esc_html__('Upgrades', 'wp-user-avatar'),
99 'data' => $uo_dataset,
100 'borderColor' => 'rgb(75,192,192)',
101 'backgroundColor' => 'rgba(75,192,192, 0.5)'
102 ],
103 [
104 'label' => esc_html__('Downgrades', 'wp-user-avatar'),
105 'data' => $do_dataset,
106 'borderColor' => 'rgb(51,53,56)',
107 'backgroundColor' => 'rgba(51,53,56, 0.5)'
108 ]
109 ];
110 }
111 }