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 / ExportPage / SalesEarningsExport.php
wp-user-avatar / src / Admin / SettingsPages / Membership / ExportPage Last commit date
views 3 years ago AbstractExport.php 1 year ago CustomersExport.php 6 months ago OrdersExport.php 3 years ago PlansExport.php 3 years ago ProductSalesExport.php 3 years ago SalesEarningsExport.php 3 years ago SettingsPage.php 1 year ago SubscriptionsExport.php 3 years ago index.php 3 years ago
SalesEarningsExport.php
82 lines
1 <?php
2
3 namespace ProfilePress\Core\Admin\SettingsPages\Membership\ExportPage;
4
5 use ProfilePress\Core\Base;
6 use ProfilePress\Core\Membership\Models\Order\OrderStatus;
7 use ProfilePressVendor\Carbon\CarbonImmutable;
8
9 class SalesEarningsExport extends AbstractExport
10 {
11 protected function headers()
12 {
13 return [
14 __('Date', 'wp-user-avatar'),
15 __('Sales', 'wp-user-avatar'),
16 __('Earnings', 'wp-user-avatar')
17 ];
18 }
19
20 public function get_data($page = 1, $limit = 9999)
21 {
22 global $wpdb;
23
24 $start_date = $this->form['order-export-start'] ?? '';
25 $end_date = $this->form['order-export-end'] ?? '';
26
27 $payment_method = $this->form['payment_method'] ?? '';
28
29 $plan_id = (int)$this->form['plan_id'];
30 $customer_id = (int)$this->form['customer_id'];
31
32 $table = Base::orders_db_table();
33
34 $wp_timezone = wp_timezone();
35
36 $replacements = [OrderStatus::COMPLETED];
37 $sql = "SELECT DATE(date_created) as date, COUNT(id) as sales, SUM(total) as total from $table WHERE status = %s";
38
39 if ( ! empty($plan_id)) {
40 $replacements[] = $plan_id;
41 $sql .= " AND plan_id = %d";
42 }
43
44 if ( ! empty($customer_id)) {
45 $replacements[] = $customer_id;
46 $sql .= " AND customer_id = %d";
47 }
48
49 if ( ! empty($payment_method)) {
50 $replacements[] = sanitize_text_field($payment_method);
51 $sql .= " AND payment_method = %s";
52 }
53
54 if ( ! empty($start_date)) {
55 $replacements[] = CarbonImmutable::parse($start_date, $wp_timezone)->startOfDay()->utc()->toDateTimeString();
56 $sql .= " AND date_created >= %s";
57 }
58
59 if ( ! empty($end_date)) {
60 $replacements[] = CarbonImmutable::parse($end_date, $wp_timezone)->endOfDay()->utc()->toDateTimeString();
61 $sql .= " AND date_created <= %s";
62 }
63
64 $sql .= " GROUP BY date";
65
66 $page = max(1, intval($page));
67
68 $offset = ($page - 1) * intval($limit);
69
70 if ($limit > 0) {
71 $sql .= " LIMIT %d";
72 $replacements[] = $limit;
73 }
74
75 if ($offset > 0) {
76 $sql .= " OFFSET %d";
77 $replacements[] = $offset;
78 }
79
80 return $wpdb->get_results($wpdb->prepare($sql, $replacements), ARRAY_A);
81 }
82 }