PluginProbe
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP / 1.0.11
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP v1.0.11
1.2.73 1.2.72 1.2.71 1.2.70 1.2.69 1.2.68 1.2.67 1.2.66 1.2.65 1.2.64 1.2.63 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 All 173 releases
userswp / includes / class-meta.php

class-meta.php in UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP 1.0.11, at includes/class-meta.php

415 lines 13.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * UsersWP Meta functions
4 *
5 * All UsersWP related User Settings and Site settings can be created, updated and accessed via this class.
6 *
7 * @since 1.0.0
8 * @author GeoDirectory Team <info@wpgeodirectory.com>
9 */
10 class UsersWP_Meta {
11
12 /**
13 * Gets UsersWP setting value using key.
14 *
15 * @since 1.0.0
16 * @package userswp
17 *
18 * @param string $key Setting Key.
19 * @param bool|string $default Default value.
20 * @param bool $cache Use cache to retrieve the value?.
21 *
22 * @return string Setting Value.
23 */
24 public function get_option( $key = '', $default = false, $cache = true ) {
25 if ($cache) {
26 global $uwp_options;
27 } else {
28 $uwp_options = get_option( 'uwp_settings' );
29 }
30 $value = ! empty( $uwp_options[ $key ] ) ? $uwp_options[ $key ] : $default;
31 $value = apply_filters( 'uwp_get_option', $value, $key, $default );
32 return apply_filters( 'uwp_get_option_' . $key, $value, $key, $default );
33 }
34
35 /**
36 * Updates UsersWP setting value using key.
37 *
38 * @since 1.0.0
39 * @package userswp
40 *
41 * @param string|bool $key Setting Key.
42 * @param string $value Setting Value.
43 *
44 * @return bool Update success or not?.
45 */
46 public function update_option( $key = false, $value = '') {
47
48 if (!$key ) {
49 return false;
50 }
51
52 $settings = get_option( 'uwp_settings', array());
53
54 if( !is_array( $settings ) ) {
55 $settings = array();
56 }
57
58 $settings[ $key ] = $value;
59
60 $settings = apply_filters( 'uwp_update_option', $settings, $key, $value );
61 $settings = apply_filters( 'uwp_update_option_' . $key, $settings, $key, $value );
62
63 update_option( 'uwp_settings', $settings );
64
65 return true;
66 }
67
68 /**
69 * Gets UsersWP user meta value using key.
70 *
71 * @since 1.0.0
72 * @package userswp
73 *
74 * @param int|bool $user_id User ID.
75 * @param string $key User meta Key.
76 * @param bool|string $default Default value.
77 *
78 * @return string User meta Value.
79 */
80 public function get_usermeta( $user_id = false, $key = '', $default = false ) {
81 if (!$user_id) {
82 return $default;
83 }
84
85 $user_data = get_userdata($user_id);
86 $value = null;
87 $usermeta = false;
88
89 if (!uwp_str_ends_with($key, '_privacy')) {
90 if ($key == 'uwp_account_email') {
91 $value = $user_data->user_email;
92 } else {
93 $usermeta = uwp_get_usermeta_row($user_id);
94 if (!empty($usermeta)) {
95 $value = $usermeta->{$key} ? $usermeta->{$key} : $default;
96 } else {
97 $value = $default;
98 }
99
100 }
101 } else {
102 $usermeta = uwp_get_usermeta_row($user_id);
103 }
104
105
106 $value = uwp_maybe_unserialize($key, $value);
107 $value = apply_filters( 'uwp_get_usermeta', $value, $user_id, $key, $default, $usermeta );
108 return apply_filters( 'uwp_get_usermeta_' . $key, $value, $user_id, $key, $default, $usermeta );
109 }
110
111 /**
112 * Updates UsersWP user meta value using key.
113 *
114 * @since 1.0.0
115 * @package userswp
116 *
117 * @param int|bool $user_id User ID.
118 * @param string|bool $key User meta Key.
119 * @param string $value User meta Value.
120 *
121 * @return bool Update success or not?.
122 */
123 public function update_usermeta( $user_id = false, $key, $value ) {
124
125 if (!$user_id || !$key ) {
126 return false;
127 }
128
129 global $wpdb;
130 $meta_table = uwp_get_table_prefix() . 'uwp_usermeta';
131 $user_meta_info = uwp_get_usermeta_row($user_id);
132
133 $value = apply_filters( 'uwp_update_usermeta', $value, $user_id, $key, $user_meta_info );
134 $value = apply_filters( 'uwp_update_usermeta_' . $key, $value, $user_id, $key, $user_meta_info );
135
136 do_action( 'uwp_before_update_usermeta', $user_id, $key, $value, $user_meta_info );
137
138
139 $value = uwp_maybe_serialize($key, $value);
140
141 if (uwp_str_ends_with($key, '_privacy')) {
142 $key = 'user_privacy';
143 }
144
145 if (!empty($user_meta_info)) {
146 $wpdb->query(
147 $wpdb->prepare(
148
149 "update " . $meta_table . " set {$key} = %s where user_id = %d",
150 array(
151 $value,
152 $user_id
153 )
154 )
155 );
156 } else {
157 $wpdb->query(
158 $wpdb->prepare(
159
160 "insert into " . $meta_table . " set {$key} = %s, user_id = %d",
161 array(
162 $value,
163 $user_id
164 )
165 )
166 );
167 }
168
169 return true;
170 }
171
172 /**
173 * Gets UsersWP user meta row using user ID.
174 *
175 * @since 1.0.0
176 * @package userswp
177 *
178 * @param int|bool $user_id User ID.
179 *
180 * @return object|bool User meta row object.
181 */
182 public function get_usermeta_row($user_id = false) {
183 if (!$user_id) {
184 return false;
185 }
186
187 global $wpdb;
188 $meta_table = uwp_get_table_prefix() . 'uwp_usermeta';
189
190 $row = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$meta_table} WHERE user_id = %d", $user_id));
191
192 return $row;
193 }
194
195 /**
196 * Deletes a UsersWP meta row using the user ID.
197 *
198 * @since 1.0.5
199 * @package UsersWP
200 *
201 * @param int|bool $user_id User ID.
202 *
203 * @return void
204 */
205 public function delete_usermeta_row($user_id = false) {
206 if (!$user_id) {
207 return;
208 }
209
210 global $wpdb;
211 $meta_table = uwp_get_table_prefix() . 'uwp_usermeta';
212 $wpdb->query($wpdb->prepare("DELETE FROM {$meta_table} WHERE user_id = %d", $user_id));
213 }
214
215 /**
216 * Syncs WP usermeta with UsersWP usermeta.
217 *
218 * @since 1.0.0
219 * @package userswp
220 *
221 * @param int $user_id User ID.
222 *
223 * @return void
224 */
225 public function sync_usermeta($user_id) {
226
227 $user_data = get_userdata($user_id);
228
229 uwp_update_usermeta($user_id, 'uwp_account_username', $user_data->user_login);
230 uwp_update_usermeta($user_id, 'uwp_account_email', $user_data->user_email);
231 uwp_update_usermeta($user_id, 'uwp_account_display_name', $user_data->display_name);
232 uwp_update_usermeta($user_id, 'uwp_account_first_name', $user_data->first_name);
233 uwp_update_usermeta($user_id, 'uwp_account_last_name', $user_data->last_name);
234 uwp_update_usermeta($user_id, 'uwp_account_bio', $user_data->description);
235
236 }
237
238 /**
239 * Delete UsersWP meta when user get deleted.
240 *
241 * @since 1.0.5
242 * @package UsersWP
243 *
244 * @param int $user_id User ID.
245 *
246 * @return void
247 */
248 public function delete_usermeta_for_user($user_id) {
249 $this->delete_usermeta_row($user_id);
250 }
251
252 /**
253 * Saves User IP during registration.
254 *
255 * @since 1.0.5
256 * @package userswp
257 *
258 * @param array $result Validated form result.
259 * @param string $type Form Type.
260 * @param int $user_id User ID.
261 *
262 * @return array Validated form result.
263 */
264 public function save_user_ip_on_register($result, $type, $user_id) {
265 if ($type == 'register') {
266 $ip = uwp_get_ip();
267 uwp_update_usermeta($user_id, 'user_ip', $ip);
268 }
269 return $result;
270 }
271
272 /**
273 * Saves the users IP on login.
274 *
275 * @since 1.0.0
276 * @package userswp
277 *
278 * @param string $user_login The users username.
279 * @param object $user The user object WP_User.
280 *
281 * @return void
282 */
283 public function save_user_ip_on_login( $user_login, $user ) {
284
285 $ip = uwp_get_ip();
286 if (isset($user->ID)) {
287 uwp_update_usermeta($user->ID, 'user_ip', $ip);
288 }
289 }
290
291 /**
292 * Modifies privacy value while updating into the db.
293 *
294 * @since 1.0.0
295 * @package userswp
296 * @param string $value Privacy value.
297 *
298 * @param int $user_id The User ID.
299 * @param string $key Custom field key.
300 * @param object $user_meta_info User meta row.
301 *
302 * @return string Modified privacy field string.
303 */
304 public function modify_privacy_value_on_update($value, $user_id, $key, $user_meta_info) {
305 if (uwp_str_ends_with($key, '_privacy')) {
306 $old_value = $user_meta_info->user_privacy;
307 if (!empty($old_value)) {
308 // Existing serialized value
309 if ($value == 'no') {
310 $public_fields = explode(',', $old_value);
311 if (!in_array($key, $public_fields)) {
312 $public_fields[] = $key;
313 }
314 $value = implode(',', $public_fields);
315 } else {
316 // Yes value
317 $public_fields = explode(',', $old_value);
318 if(($key = array_search($key, $public_fields)) !== false) {
319 unset($public_fields[$key]);
320 }
321 $value = implode(',', $public_fields);
322 }
323
324 } else {
325 // New Serialized value
326 if ($value == 'no') {
327 $public_fields = array();
328 $public_fields[] = $key;
329 $value = implode(',', $public_fields);
330 } else {
331 // For yes values no need to update since its a public field.
332 // We store only the private fields.
333 }
334
335 }
336 }
337 return $value;
338 }
339
340 /**
341 * Modifies privacy value while fetching from the db.
342 *
343 * @since 1.0.0
344 * @package userswp
345 *
346 * @param string $value Privacy value.
347 * @param int $user_id The User ID.
348 * @param string $key Custom field key.
349 * @param string $default Default value.
350 *
351 * @return string Modified privacy value.
352 */
353 public function modify_privacy_value_on_get($value, $user_id, $key, $default, $usermeta) {
354 if (uwp_str_ends_with($key, '_privacy')) {
355 $value = 'yes';
356 if (!empty($usermeta)) {
357 $output = $usermeta->user_privacy ? $usermeta->user_privacy : $default;
358 if ($output) {
359 $public_fields = explode(',', $output);
360 if (in_array($key, $public_fields)) {
361 $value = 'no';
362 }
363 }
364 }
365 }
366 return $value;
367 }
368
369 /**
370 * Modifies date value from unix timestamp to string while updating into the db.
371 *
372 * @since 1.0.0
373 * @package userswp
374 *
375 * @param int $value Unix Timestamp.
376 * @param int $user_id The User ID.
377 * @param string $key Custom field key.
378 *
379 * @return string Date string.
380 */
381 public function modify_datepicker_value_on_update($value, $user_id, $key) {
382 // modify timestamp to date
383 if (is_int($value)) {
384 $field_info = uwp_get_custom_field_info($key);
385 if ($field_info->field_type == 'datepicker') {
386 $value = date('Y-m-d', $value);
387 }
388 }
389 return $value;
390 }
391
392 /**
393 * Modifies date value from string to unix timestamp while fetching from the db.
394 *
395 * @since 1.0.0
396 * @package userswp
397 *
398 * @param string $value Date string.
399 * @param int $user_id The User ID.
400 * @param string $key Custom field key.
401 *
402 * @return int Unix Timestamp.
403 */
404 public function modify_datepicker_value_on_get($value, $user_id, $key, $default, $usermeta) {
405 // modify date to timestamp
406 if (is_string($value) && (strpos($value, '-') !== false)) {
407 $field_info = uwp_get_custom_field_info($key);
408 if (isset($field_info->field_type) && $field_info->field_type == 'datepicker') {
409 $value = strtotime($value);
410 }
411 }
412 return $value;
413 }
414
415 }