PluginProbe
Import Users & Customers with Meta | WP Ultimate CSV Importer Add-on / 1.7
Import Users & Customers with Meta | WP Ultimate CSV Importer Add-on v1.7
2.0 1.7.1 1.2.9 1.3 1.4 1.4.1 1.4.2 1.4.3 1.5 1.6 1.7 trunk 1.0 1.1 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8
← All changes | importExtensions/UsersImport.php +26 -5 1.2.41.7 View file →
@@ -11,9 +11,9 @@
11 11 exit; // Exit if accessed directly
12 12
13 13 class UsersImport{
14 14 private static $users_instance = null,$send_user_password;
15 -
15 + public $plugin;
16 16 public static function getInstance() {
17 17 if (UsersImport::$users_instance == null) {
18 18 UsersImport::$users_instance = new UsersImport;
19 19 return UsersImport::$users_instance;
@@ -32,9 +32,9 @@
32 32 $created_count = $updated_row_counts['created'];
33 33 $updated_count = $updated_row_counts['updated'];
34 34 $skipped_count = $updated_row_counts['skipped'];
35 35
36 - $data_array['role'] = trim($data_array['role']);
36 + $data_array['role'] = trim(isset($data_array['role']));
37 37 if ( isset( $data_array['role'] ) && $data_array['role'] != '') {
38 38 $user_capability = '';
39 39 if ( !is_numeric( $data_array['role'] ) ) {
40 40 $roles = $this->getRoles();
@@ -64,9 +64,13 @@
64 64 $data_array['role'] = 'subscriber'; #TODO: Add log message for assigning the default role
65 65 }
66 66 $user_email = $data_array['user_email'];
67 67
68 + //filter to change user meta values before import
69 + $data_array = apply_filters('smack_csv_modify_userdata_filter', $data_array);
70 +
68 71 if ( $mode == 'Insert' ) {
72 + $send_password = isset($data_array['user_pass']) ? $data_array['user_pass'] : '';
69 73 if ( empty( $data_array['user_pass'] ) ) {
70 74 $data_array['user_pass'] = wp_generate_password( 12, false );
71 75 $additional_meta_info = array(
72 76 'user_login' => $data_array['user_login'],
@@ -75,9 +79,12 @@
75 79 'role' => $data_array['role']
76 80 );
77 81 $data_array['smack_uci_import'] = $additional_meta_info;
78 82 }
79 - else{
83 + else{
84 + if (strlen($data_array['user_pass'])!== 34 && $data_array['user_pass'][0]!=='$'){
85 + $data_array['user_pass']=wp_hash_password($data_array['user_pass']);
86 + }
80 87 $additional_meta_info = array(
81 88 'user_login' => $data_array['user_login'],
82 89 'user_pass' => $data_array['user_pass'],
83 90 'user_email' => $data_array['user_email'],
@@ -85,8 +92,9 @@
85 92 );
86 93 $data_array['smack_uci_import'] = $additional_meta_info;
87 94 }
88 95 $retID = wp_insert_user($data_array);
96 + update_user_meta($retID, 'sendPassword', $send_password);
89 97 if ( !is_wp_error($retID) && !empty( $data_array['user_pass'] ) ) {
90 98 $wpdb->get_results("UPDATE {$wpdb->prefix}users SET user_pass = '{$data_array['user_pass']}' WHERE ID = $retID");
91 99 }
92 100 $mode_of_affect = 'Inserted';
@@ -92,17 +100,20 @@
92 100 $mode_of_affect = 'Inserted';
93 101
94 102 if ( is_wp_error( $retID ) ) {
95 103 $core_instance->detailed_log[$line_number]['Message'] = "Skipped, Due to duplicate User found with same email!.";
104 + $core_instance->detailed_log[$line_number]['state'] = 'Skipped';
96 105 $fields = $wpdb->get_results("UPDATE $log_table_name SET skipped = $skipped_count WHERE hash_key = '$hash_key'");
97 106 return array('MODE' => $mode);
98 107 }
99 108 $core_instance->detailed_log[$line_number]['Message'] = 'Inserted User ID: ' . $retID;
109 + $core_instance->detailed_log[$line_number]['state'] = 'Inserted';
110 + $core_instance->detailed_log[$line_number]['id'] = $retID;
100 111 $fields = $wpdb->get_results("UPDATE $log_table_name SET created = $created_count WHERE hash_key = '$hash_key'");
101 112
102 113 } else {
103 114 if ( $mode == 'Update') {
104 -
115 + $user_email = isset($data_array['user_email']) ? $data_array['user_email'] : '';
105 116 $update_query = $wpdb->prepare( "select ID from {$wpdb->prefix}users where user_email = %s order by ID DESC", $user_email );
106 117 $ID_result = $wpdb->get_results( $update_query );
107 118 if ( is_array( $ID_result ) && ! empty( $ID_result ) ) {
108 119 $retID = $ID_result[0]->ID;
@@ -110,8 +121,10 @@
110 121 wp_update_user( $data_array );
111 122 $mode_of_affect = 'Updated';
112 123
113 124 $core_instance->detailed_log[$line_number]['Message'] = 'Updated User ID: ' . $retID;
125 + $core_instance->detailed_log[$line_number]['state'] = 'Updated';
126 + $core_instance->detailed_log[$line_number]['id'] = $retID;
114 127 $fields = $wpdb->get_results("UPDATE $log_table_name SET updated = $updated_count WHERE hash_key = '$hash_key'");
115 128
116 129 }else{
117 130 $retID = wp_insert_user($data_array);
@@ -123,8 +136,10 @@
123 136 $fields = $wpdb->get_results("UPDATE $log_table_name SET skipped = $skipped_count WHERE hash_key = '$hash_key'");
124 137 return array('MODE' => $mode);
125 138 }
126 139 $core_instance->detailed_log[$line_number]['Message'] = 'Inserted User ID: ' . $retID;
140 + $core_instance->detailed_log[$line_number]['state'] = 'Inserted';
141 + $core_instance->detailed_log[$line_number]['id'] = $retID;
127 142 $fields = $wpdb->get_results("UPDATE $log_table_name SET created = $created_count WHERE hash_key = '$hash_key'");
128 143 }
129 144 }
130 145 }
@@ -154,14 +169,20 @@
154 169
155 170 if ( ! empty ( $metaData ) ) {
156 171 foreach ( $metaData as $meta_key => $meta_value ) {
157 172 update_user_meta( $retID, $meta_key, $meta_value );
173 +
174 + //filter for modifying user metadata after import
175 + apply_filters('smack_csv_modify_metadata_filter', $retID, $meta_key, $meta_value);
158 176 }
159 177 }
178 + $user_data = get_userdata($retID);
179 + $user_title = isset($user_data) ? $user_data->display_name : '';
180 + $core_instance->detailed_log[$line_number]['user_title'] = $user_title;
160 181 $core_instance->detailed_log[$line_number]['Email'] = $data_array['user_email'];
161 182 $core_instance->detailed_log[$line_number]['Role'] = $data_array['role'];
162 183 $ucisettings = get_option('sm_uci_pro_settings');
163 - if($ucisettings['send_user_password'] == "true") {
184 + if(isset($ucisettings['send_user_password']) && $ucisettings['send_user_password'] == "true") {
164 185 $send_user_password = new SendPassword;
165 186 $send_user_password->send_login_credentials_to_users();
166 187 }
167 188 $returnArr['ID'] = $retID;