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 / CustomersExport.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
CustomersExport.php
94 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
8 class CustomersExport extends AbstractExport
9 {
10 protected function headers()
11 {
12 return [
13 __('Customer ID', 'wp-user-avatar'),
14 __('User ID', 'wp-user-avatar'),
15 __('Email', 'wp-user-avatar'),
16 __('Name', 'wp-user-avatar'),
17 __('Private Note', 'wp-user-avatar'),
18 __('Total Spend', 'wp-user-avatar'),
19 __('Purchase Count', 'wp-user-avatar'),
20 __('Date Created', 'wp-user-avatar'),
21 __('Order IDs', 'wp-user-avatar'),
22 __('Billing Street Address', 'wp-user-avatar'),
23 __('Billing City', 'wp-user-avatar'),
24 __('Billing Country', 'wp-user-avatar'),
25 __('Billing State', 'wp-user-avatar'),
26 __('Billing Zip / Postal Code', 'wp-user-avatar'),
27 __('Billing Phone', 'wp-user-avatar')
28 ];
29 }
30
31 public function get_data($page = 1, $limit = 9999)
32 {
33 global $wpdb;
34 $plan_id = $this->form['plan_id'] ?? '';
35 $orders_table = Base::orders_db_table();
36 $customers_table = Base::customers_db_table();
37 $wp_user_table = $wpdb->users;
38 $wp_user_meta_table = $wpdb->usermeta;
39
40 $replacements = [OrderStatus::COMPLETED];
41
42 $sql = "
43 SELECT
44 pc.id,
45 pc.user_id,
46 wpu.user_email,
47 wpu.display_name,
48 pc.private_note,
49 pc.total_spend,
50 pc.purchase_count,
51 pc.date_created,
52 GROUP_CONCAT(DISTINCT po.id) AS order_ids,
53 um_address.meta_value AS street_address,
54 um_city.meta_value AS city,
55 um_country.meta_value AS country,
56 um_state.meta_value AS state,
57 um_postcode.meta_value AS postcode,
58 um_phone.meta_value AS phone
59 FROM
60 $customers_table AS pc
61 INNER JOIN $wp_user_table AS wpu ON pc.user_id = wpu.ID
62 INNER JOIN $orders_table AS ppo ON ppo.customer_id = pc.id
63 LEFT JOIN $orders_table AS po ON po.customer_id = pc.id AND po.status = %s
64 LEFT JOIN $wp_user_meta_table AS um_address ON pc.user_id = um_address.user_id AND um_address.meta_key = 'ppress_billing_address'
65 LEFT JOIN $wp_user_meta_table AS um_city ON pc.user_id = um_city.user_id AND um_city.meta_key = 'ppress_billing_city'
66 LEFT JOIN $wp_user_meta_table AS um_country ON pc.user_id = um_country.user_id AND um_country.meta_key = 'ppress_billing_country'
67 LEFT JOIN $wp_user_meta_table AS um_state ON pc.user_id = um_state.user_id AND um_state.meta_key = 'ppress_billing_state'
68 LEFT JOIN $wp_user_meta_table AS um_postcode ON pc.user_id = um_postcode.user_id AND um_postcode.meta_key = 'ppress_billing_postcode'
69 LEFT JOIN $wp_user_meta_table AS um_phone ON pc.user_id = um_phone.user_id AND um_phone.meta_key = 'ppress_phone'
70 ";
71
72 if ( ! empty($plan_id)) {
73 $replacements[] = intval($plan_id);
74 $sql .= " AND ppo.plan_id = %d";
75 }
76
77 $sql .= " GROUP BY pc.id";
78
79 $page = max(1, intval($page));
80 $offset = ($page - 1) * intval($limit);
81
82 if ($limit > 0) {
83 $sql .= " LIMIT %d";
84 $replacements[] = $limit;
85 }
86
87 if ($offset > 0) {
88 $sql .= " OFFSET %d";
89 $replacements[] = $offset;
90 }
91
92 return $wpdb->get_results($wpdb->prepare($sql, $replacements), ARRAY_A);
93 }
94 }