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 / PaymentMethods.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
PaymentMethods.php
125 lines
1 <?php
2
3 namespace ProfilePress\Core\Admin\SettingsPages\Membership\DashboardPage;
4
5 use ProfilePress\Core\Membership\Models\Order\OrderStatus;
6
7 class PaymentMethods extends AbstractReport
8 {
9 public function get_where_clause($groupBy = false, $start_date = '', $end_date = '')
10 {
11 $start_date = $this->start_date_carbon;
12 $end_date = $this->end_date_carbon;
13
14 $sql = "date_created >= %s AND date_created <= %s";
15
16 $variables = [
17 $start_date->utc()->toDateTimeString(),
18 $end_date->utc()->toDateTimeString()
19 ];
20
21 if ( ! empty($this->plan_id)) {
22 $sql .= " AND plan_id = %d";
23 $variables[] = $this->plan_id;
24 }
25
26 $sql .= " GROUP BY payment_method ORDER BY sales DESC LIMIT 10";
27
28 return $this->wpdb()->prepare($sql, $variables);
29 }
30
31 protected function get_query_data()
32 {
33 static $cache = null;
34
35 if (is_null($cache)) {
36 $cache = $this->wpdb()->get_results(
37 $this->wpdb()->prepare(
38 "SELECT payment_method, SUM(total) as earnings, COUNT(id) as sales FROM {$this->db_table} WHERE status = %s AND {$this->get_where_clause()}",
39 OrderStatus::COMPLETED
40 ),
41 'ARRAY_A'
42 );
43 }
44
45 return $cache;
46 }
47
48 public function get_interval_data($bucket, $payment_method)
49 {
50 return wp_list_filter($bucket, ['payment_method' => $payment_method]);
51 }
52
53 public function get_total($start_date = '', $end_date = '')
54 {
55 return null;
56 }
57
58 public function get_trend()
59 {
60 return 0;
61 }
62
63 public function get_labels()
64 {
65 static $labels = null;
66
67 if (is_null($labels)) {
68
69 $labels = [];
70
71 $query_data = $this->get_query_data();
72
73 if (is_array($query_data) && ! empty($query_data)) {
74 foreach ($query_data as $datum) {
75 $payment_method = $datum['payment_method'];
76 $payment_method_obj = ppress_get_payment_method($payment_method);
77 $labels[$payment_method] = $payment_method_obj ? $payment_method_obj->get_method_title() : $payment_method;
78 }
79 }
80 }
81
82 return $labels;
83 }
84
85 public function get_data()
86 {
87 $query_data = $this->get_query_data();
88
89 $sales_dataset = [];
90 $earnings_dataset = [];
91
92 if (is_array($query_data) && ! empty($query_data)) {
93
94 foreach ($this->get_labels() as $payment_method => $label) {
95
96 $data = $this->get_interval_data($query_data, $payment_method);
97
98 $data = reset($data);
99
100 $sales_dataset[] = $data['sales'];
101 $earnings_dataset[] = ppress_sanitize_amount($data['earnings']);
102 }
103 }
104
105 return [
106 [
107 'label' => esc_html__('Sales', 'wp-user-avatar'),
108 'data' => $sales_dataset,
109 'borderColor' => 'rgb(54, 162, 235)',
110 'backgroundColor' => 'rgba(54, 162, 235, 0.5)',
111 'stack' => 'combined',
112 'type' => 'bar',
113 'yAxisID' => 'y'
114 ],
115 [
116 'label' => esc_html__('Earnings', 'wp-user-avatar'),
117 'data' => $earnings_dataset,
118 'borderColor' => 'rgb(255, 99, 132)',
119 'backgroundColor' => 'rgba(255, 99, 132, 0.5)',
120 'stack' => 'combined',
121 'yAxisID' => 'y1'
122 ]
123 ];
124 }
125 }