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 / SubscriptionsExport.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
SubscriptionsExport.php
113 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 SubscriptionsExport extends AbstractExport
9 {
10 protected function headers()
11 {
12 return [
13 __('Subscription ID', 'wp-user-avatar'),
14 __('Status', 'wp-user-avatar'),
15 __('Customer ID', 'wp-user-avatar'),
16 __('Email', 'wp-user-avatar'),
17 __('Plan ID', 'wp-user-avatar'),
18 __('Billing Frequency', 'wp-user-avatar'),
19 __('Initial Amount', 'wp-user-avatar'),
20 __('Initial Tax Rate', 'wp-user-avatar'),
21 __('Initial Tax', 'wp-user-avatar'),
22 __('Recurring Amount', 'wp-user-avatar'),
23 __('Recurring Tax Rate', 'wp-user-avatar'),
24 __('Recurring Tax', 'wp-user-avatar'),
25 __('Total Payments', 'wp-user-avatar'),
26 __('Trial Period', 'wp-user-avatar'),
27 __('Start Date', 'wp-user-avatar'),
28 __('Expiration Date', 'wp-user-avatar'),
29 __('Gateway Profile ID', 'wp-user-avatar'),
30 __('Parent Order ID', 'wp-user-avatar')
31 ];
32 }
33
34 public function get_data($page = 1, $limit = 9999)
35 {
36 global $wpdb;
37
38 $start_date = $this->form['subscriptions-export-start'] ?? '';
39 $end_date = $this->form['subscriptions-export-end'] ?? '';
40
41 $subscription_status = $this->form['subscription_status'] ?? '';
42 $plan_id = (int)$this->form['plan_id'];
43
44 $sub_table = Base::subscriptions_db_table();
45 $customer_table = Base::customers_db_table();
46 $wp_user_table = $wpdb->users;
47
48 $wp_timezone = wp_timezone();
49
50 $replacements = [1];
51 $sql = "
52 SELECT
53 ps.id,
54 ps.status,
55 ps.customer_id,
56 wpu.user_email,
57 ps.plan_id,
58 ps.billing_frequency,
59 ps.initial_amount,
60 ps.initial_tax_rate,
61 ps.initial_tax,
62 ps.recurring_amount,
63 ps.recurring_tax_rate,
64 ps.recurring_tax,
65 ps.total_payments,
66 ps.trial_period,
67 ps.created_date,
68 ps.expiration_date,
69 ps.profile_id,
70 ps.parent_order_id
71 FROM
72 $sub_table AS ps
73 INNER JOIN $customer_table AS pc ON ps.customer_id = pc.id
74 INNER JOIN $wp_user_table AS wpu ON wpu.id = pc.user_id
75 WHERE 1 = %d";
76
77 if ( ! empty($plan_id)) {
78 $replacements[] = $plan_id;
79 $sql .= " AND ps.plan_id = %d";
80 }
81
82 if ( ! empty($subscription_status)) {
83 $replacements[] = sanitize_text_field($subscription_status);
84 $sql .= " AND ps.status = %s";
85 }
86
87 if ( ! empty($start_date)) {
88 $replacements[] = CarbonImmutable::parse($start_date, $wp_timezone)->startOfDay()->utc()->toDateTimeString();
89 $sql .= " AND ps.created_date >= %s";
90 }
91
92 if ( ! empty($end_date)) {
93 $replacements[] = CarbonImmutable::parse($end_date, $wp_timezone)->endOfDay()->utc()->toDateTimeString();
94 $sql .= " AND ps.created_date <= %s";
95 }
96
97 $page = max(1, intval($page));
98
99 $offset = ($page - 1) * intval($limit);
100
101 if ($limit > 0) {
102 $sql .= " LIMIT %d";
103 $replacements[] = $limit;
104 }
105
106 if ($offset > 0) {
107 $sql .= " OFFSET %d";
108 $replacements[] = $offset;
109 }
110
111 return $wpdb->get_results($wpdb->prepare($sql, $replacements), ARRAY_A);
112 }
113 }