PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / trunk
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress vtrunk
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 / OrdersExport.php
wp-user-avatar / src / Admin / SettingsPages / Membership / ExportPage Last commit date
views 2 years ago AbstractExport.php 11 months ago CustomersExport.php 5 months ago OrdersExport.php 2 years ago PlansExport.php 2 years ago ProductSalesExport.php 2 years ago SalesEarningsExport.php 2 years ago SettingsPage.php 1 year ago SubscriptionsExport.php 2 years ago index.php 2 years ago
OrdersExport.php
138 lines
1 <?php
2
3 namespace ProfilePress\Core\Admin\SettingsPages\Membership\ExportPage;
4
5 use ProfilePress\Core\Base;
6 use ProfilePressVendor\Carbon\CarbonImmutable;
7
8 class OrdersExport extends AbstractExport
9 {
10 protected function headers()
11 {
12 return [
13 __('Order ID', 'wp-user-avatar'),
14 __('Order Key', 'wp-user-avatar'),
15 __('Plan ID', 'wp-user-avatar'),
16 __('Plan', 'wp-user-avatar'),
17 __('Email', 'wp-user-avatar'),
18 __('Customer ID', 'wp-user-avatar'),
19 __('Customer Name', 'wp-user-avatar'),
20 __('Subscription ID', 'wp-user-avatar'),
21 __('Billing Address', 'wp-user-avatar'),
22 __('Billing City', 'wp-user-avatar'),
23 __('Billing State', 'wp-user-avatar'),
24 __('Billing Country', 'wp-user-avatar'),
25 __('Billing Postcode', 'wp-user-avatar'),
26 __('Billing Phone', 'wp-user-avatar'),
27 __('Order Status', 'wp-user-avatar'),
28 __('Order Type', 'wp-user-avatar'),
29 __('Order Mode', 'wp-user-avatar'),
30 __('Currency', 'wp-user-avatar'),
31 __('Coupon Code', 'wp-user-avatar'),
32 __('Subtotal', 'wp-user-avatar'),
33 __('Tax', 'wp-user-avatar'),
34 __('Tax Rate', 'wp-user-avatar'),
35 __('Discount', 'wp-user-avatar'),
36 __('Order Total', 'wp-user-avatar'),
37 __('Payment Method', 'wp-user-avatar'),
38 __('Transaction ID', 'wp-user-avatar'),
39 __('IP Address', 'wp-user-avatar'),
40 __('Date Created', 'wp-user-avatar'),
41 __('Date Completed', 'wp-user-avatar')
42 ];
43 }
44
45 public function get_data($page = 1, $limit = 9999)
46 {
47 global $wpdb;
48
49 $start_date = $this->form['orders-export-start'] ?? '';
50 $end_date = $this->form['orders-export-end'] ?? '';
51
52 $order_status = $this->form['order_status'] ?? '';
53 $plan_id = (int)$this->form['plan_id'] ?? '';
54
55 $orders_table = Base::orders_db_table();
56 $customers_table = Base::customers_db_table();
57 $plans_table = Base::subscription_plans_db_table();
58 $wp_user_table = $wpdb->users;
59
60 $wp_timezone = wp_timezone();
61
62 $replacements = [1];
63 $sql = "
64 SELECT
65 po.id as order_id,
66 po.order_key,
67 po.plan_id,
68 pp.name AS plan_name,
69 wpu.user_email,
70 po.customer_id,
71 wpu.display_name,
72 po.subscription_id,
73 po.billing_address,
74 po.billing_city,
75 po.billing_state,
76 po.billing_country,
77 po.billing_postcode,
78 po.billing_phone,
79 po.status,
80 po.order_type,
81 po.mode,
82 po.currency,
83 po.coupon_code,
84 po.subtotal,
85 po.tax,
86 po.tax_rate,
87 po.discount,
88 po.total,
89 po.payment_method,
90 po.transaction_id,
91 po.ip_address,
92 po.date_created,
93 po.date_completed
94 FROM
95 $orders_table AS po
96 INNER JOIN $customers_table AS pc ON po.customer_id = pc.id
97 INNER JOIN $wp_user_table AS wpu ON pc.user_id = wpu.ID
98 INNER JOIN $plans_table AS pp ON po.plan_id = pp.id
99 WHERE
100 1 = %d";
101
102 if ( ! empty($plan_id)) {
103 $replacements[] = $plan_id;
104 $sql .= " AND po.plan_id = %s";
105 }
106
107 if ( ! empty($order_status)) {
108 $replacements[] = sanitize_text_field($order_status);
109 $sql .= " AND po.status = %s";
110 }
111
112 if ( ! empty($start_date)) {
113 $replacements[] = CarbonImmutable::parse($start_date, $wp_timezone)->startOfDay()->utc()->toDateTimeString();
114 $sql .= " AND po.date_created >= %s";
115 }
116
117 if ( ! empty($end_date)) {
118 $replacements[] = CarbonImmutable::parse($end_date, $wp_timezone)->endOfDay()->utc()->toDateTimeString();
119 $sql .= " AND po.date_created <= %s";
120 }
121
122 $page = max(1, intval($page));
123
124 $offset = ($page - 1) * intval($limit);
125
126 if ($limit > 0) {
127 $sql .= " LIMIT %d";
128 $replacements[] = $limit;
129 }
130
131 if ($offset > 0) {
132 $sql .= " OFFSET %d";
133 $replacements[] = $offset;
134 }
135
136 return $wpdb->get_results($wpdb->prepare($sql, $replacements), ARRAY_A);
137 }
138 }