PluginProbe
Import WP – CSV & XML Import Export for WordPress / 2.15.0
Import WP – CSV & XML Import Export for WordPress v2.15.0
2.15.1 2.15.0 2.14.24 2.14.23 2.7.0 2.7.1 2.7.10 2.7.11 2.7.12 2.7.13 2.7.14 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.8.0 2.8.1 2.8.2 2.8.3 2.9.0 2.9.1 All 144 releases
← All changes | class/Common/Exporter/Mapper/UserMapper.php +43 -19 2.8.0 → 2.15.0 View file →
@@ -1,8 +1,9 @@
1 1 <?php
2 2
3 3 namespace ImportWP\Common\Exporter\Mapper;
4 4
5 +use ImportWP\Common\Exporter\ExporterRecord;
5 6 use ImportWP\Common\Exporter\MapperInterface;
6 7
7 8 class UserMapper extends AbstractMapper implements MapperInterface
8 9 {
@@ -10,8 +11,13 @@
10 11 * @var \WP_User_Query
11 12 */
12 13 private $query;
13 14
15 + public function __construct()
16 + {
17 + add_filter('iwp/exporter_record/user', [$this, 'get_record_data'], 10, 3);
18 + }
19 +
14 20 public function get_core_fields()
15 21 {
16 22 return array(
17 23 'ID',
@@ -35,15 +41,15 @@
35 41 global $wpdb;
36 42
37 43 $fields = [
38 44 'key' => 'main',
39 - 'label' => 'User',
45 + 'label' => __('User', 'jc-importer'),
40 46 'loop' => true,
41 47 'fields' => [],
42 48 'children' => [
43 49 'custom_fields' => [
44 50 'key' => 'custom_fields',
45 - 'label' => 'Custom Fields',
51 + 'label' => __('Custom Fields', 'jc-importer'),
46 52 'loop' => true,
47 53 'loop_fields' => ['meta_key', 'meta_value'],
48 54 'fields' => [],
49 55 'children' => []
@@ -53,10 +59,8 @@
53 59 ];
54 60
55 61 $fields['fields'] = $this->get_core_fields();
56 62 $fields['fields'][] = 'role';
57 - $fields['fields'][] = 'first_name';
58 - $fields['fields'][] = 'last_name';
59 63 $fields['fields'][] = 'description';
60 64
61 65 // user meta
62 66 $meta_fields = $wpdb->get_col("SELECT DISTINCT meta_key FROM " . $wpdb->usermeta . " WHERE user_id IN (SELECT DISTINCT ID FROM " . $wpdb->users . " )");
@@ -79,10 +83,11 @@
79 83 }
80 84 }
81 85
82 86 $fields['children']['custom_fields']['fields'] = apply_filters('iwp/exporter/user/custom_field_list', $fields['children']['custom_fields']['fields'], null);
87 + $fields = apply_filters('iwp/exporter/user/fields', $fields, 'user');
83 88
84 - return $fields;
89 + return $this->parse_fields($fields);
85 90 }
86 91
87 92 public function have_records($exporter_id)
88 93 {
@@ -113,26 +118,45 @@
113 118
114 119 public function setup($i)
115 120 {
116 121 $user = get_user_by('id', $this->items[$i]);
117 - $this->record = (array)$user->data;
118 - $this->record['custom_fields'] = get_user_meta($this->record['ID']);
119 - $this->record = $this->modify_custom_field_data($this->record, 'user');
120 122
121 - $userdata = get_userdata($this->record['ID']);
122 - $this->record['role'] = (array)$userdata->roles;
123 + $this->record = new ExporterRecord((array)$user->data, 'user');
124 + $this->record = apply_filters('iwp/exporter/user/setup_data', $this->record, 'user');
123 125
124 - foreach (['first_name', 'last_name', 'description'] as $field) {
126 + return true;
127 + }
125 128
126 - if (isset($this->record['custom_fields'][$field])) {
129 + public function get_record_data($value, $key, $record)
130 + {
131 + switch ($key) {
132 + case 'custom_fields':
133 + $value = get_user_meta($record['ID']);
127 134
128 - $this->record[$field] = $this->record['custom_fields'][$field][0];
129 - unset($this->record['custom_fields'][$field]);
130 - } else {
135 + if (isset($value['first_name'])) {
136 + unset($value['first_name']);
137 + }
131 138
132 - $this->record[$field] = '';
133 - }
139 + if (isset($value['last_name'])) {
140 + unset($value['last_name']);
141 + }
142 +
143 + if (isset($value['description'])) {
144 + unset($value['description']);
145 + }
146 +
147 + $value = $this->modify_custom_field_data($value, 'user');
148 + break;
149 + case 'role':
150 + $userdata = get_userdata($record['ID']);
151 + $value = (array)$userdata->roles;
152 + break;
153 + case 'first_name':
154 + case 'last_name':
155 + case 'description':
156 +
157 + $value = get_user_meta($record['ID'], $key, true);
158 + break;
134 159 }
135 -
136 - return true;
160 + return $value;
137 161 }
138 162 }