| @@ -8,114 +8,105 @@ | ||
| 8 | 8 | * @author GeoDirectory Team <info@wpgeodirectory.com> |
| 9 | 9 | */ |
| 10 | 10 | class UsersWP_Meta { |
| 11 | 11 | |
| 12 | - /** | |
| 13 | - * Gets UsersWP user meta value using key. | |
| 14 | - * | |
| 15 | - * @since 1.0.0 | |
| 16 | - * @package userswp | |
| 17 | - * | |
| 18 | - * @param int|bool $user_id User ID. | |
| 19 | - * @param string $key User meta Key. | |
| 20 | - * @param bool|string $default Default value. | |
| 21 | - * | |
| 22 | - * @return string User meta Value. | |
| 23 | - */ | |
| 24 | - public function get_usermeta( $user_id = false, $key = '', $default = false ) { | |
| 25 | - global $wpdb; | |
| 12 | + /** | |
| 13 | + * Gets UsersWP user meta value using key. | |
| 14 | + * | |
| 15 | + * @since 1.0.0 | |
| 16 | + * @package userswp | |
| 17 | + * | |
| 18 | + * @param int|bool $user_id User ID. | |
| 19 | + * @param string $key User meta Key. | |
| 20 | + * @param bool|string $default Default value. | |
| 21 | + * | |
| 22 | + * @return string User meta Value. | |
| 23 | + */ | |
| 24 | + public function get_usermeta( $user_id = false, $key = '', $default = false ) { | |
| 25 | + if (!$user_id) { | |
| 26 | + return $default; | |
| 27 | + } | |
| 26 | 28 | |
| 27 | - if ( ! $user_id ) { | |
| 28 | - return $default; | |
| 29 | - } | |
| 29 | + if(!$key){ | |
| 30 | + return $default; | |
| 31 | + } | |
| 30 | 32 | |
| 31 | - if ( ! $key ) { | |
| 32 | - return $default; | |
| 33 | - } | |
| 33 | + global $wpdb; | |
| 34 | + $meta_table = get_usermeta_table_prefix() . 'uwp_usermeta'; | |
| 34 | 35 | |
| 35 | - $meta_table = get_usermeta_table_prefix() . 'uwp_usermeta'; | |
| 36 | + if (uwp_str_ends_with($key, '_privacy')) { | |
| 37 | + if (uwp_str_ends_with($key, '_tab_privacy')) { | |
| 38 | + $obj_key = $user_id.'_tabs_privacy'; | |
| 39 | + $row = wp_cache_get( $obj_key, 'uwp_usermeta_tabs_privacy' ); | |
| 40 | + if ( ! $row ) { | |
| 41 | + $row = $wpdb->get_row($wpdb->prepare("SELECT tabs_privacy FROM {$meta_table} WHERE user_id = %d", $user_id), ARRAY_A); | |
| 42 | + wp_cache_set( $obj_key, $row, 'uwp_usermeta_tabs_privacy' ); | |
| 43 | + } | |
| 36 | 44 | |
| 37 | - if ( uwp_str_ends_with( $key, '_privacy' ) ) { | |
| 38 | - if ( uwp_str_ends_with( $key, '_tab_privacy' ) ) { | |
| 39 | - $obj_key = $user_id.'_tabs_privacy'; | |
| 40 | - $row = wp_cache_get( $obj_key, 'uwp_usermeta_tabs_privacy' ); | |
| 45 | + $value = false; | |
| 46 | + if (!empty($row)) { | |
| 47 | + $public_fields = isset($row['tabs_privacy']) ? maybe_unserialize($row['tabs_privacy']) : $default; | |
| 48 | + $public_fields_keys = is_array($public_fields) ? array_keys($public_fields) : $public_fields; | |
| 49 | + if (is_array($public_fields) && in_array($key, $public_fields_keys)) { | |
| 50 | + $value = $public_fields[$key]; | |
| 51 | + } | |
| 52 | + } | |
| 53 | + } else { | |
| 54 | + $obj_key = $user_id.'_user_privacy'; | |
| 55 | + $row = wp_cache_get( $obj_key, 'uwp_usermeta_user_privacy' ); | |
| 56 | + if ( ! $row ) { | |
| 57 | + $row = $wpdb->get_row($wpdb->prepare("SELECT user_privacy FROM {$meta_table} WHERE user_id = %d", $user_id), ARRAY_A); | |
| 58 | + wp_cache_set( $obj_key, $row, 'uwp_usermeta_user_privacy' ); | |
| 59 | + } | |
| 41 | 60 | |
| 42 | - if ( ! $row ) { | |
| 43 | - $row = $wpdb->get_row( $wpdb->prepare( "SELECT tabs_privacy FROM `{$meta_table}` WHERE user_id = %d", $user_id ), ARRAY_A ); | |
| 44 | - wp_cache_set( $obj_key, $row, 'uwp_usermeta_tabs_privacy' ); | |
| 45 | - } | |
| 61 | + $value = 'yes'; | |
| 62 | + if (!empty($row)) { | |
| 63 | + $output = isset($row['user_privacy']) ? $row['user_privacy'] : $default; | |
| 64 | + $public_fields = explode(',', $output); | |
| 65 | + if (in_array($key, $public_fields)) { | |
| 66 | + $value = 'no'; | |
| 67 | + } | |
| 68 | + } | |
| 69 | + } | |
| 70 | + } else { | |
| 71 | + $value = null; | |
| 72 | + $user_data = get_userdata($user_id); | |
| 46 | 73 | |
| 47 | - $value = false; | |
| 74 | + if (!$user_data) { | |
| 75 | + return $value; | |
| 76 | + } | |
| 48 | 77 | |
| 49 | - if ( ! empty( $row ) ) { | |
| 50 | - $public_fields = isset( $row['tabs_privacy'] ) ? maybe_unserialize( $row['tabs_privacy'] ) : $default; | |
| 51 | - $public_fields_keys = is_array( $public_fields ) ? array_keys( $public_fields ) : $public_fields; | |
| 52 | - | |
| 53 | - if ( is_array( $public_fields ) && in_array( $key, $public_fields_keys ) ) { | |
| 54 | - $value = $public_fields[ $key ]; | |
| 55 | - } | |
| 56 | - } | |
| 57 | - } else { | |
| 58 | - $obj_key = $user_id.'_user_privacy'; | |
| 59 | - $row = wp_cache_get( $obj_key, 'uwp_usermeta_user_privacy' ); | |
| 60 | - | |
| 61 | - if ( ! $row ) { | |
| 62 | - $row = $wpdb->get_row( $wpdb->prepare("SELECT user_privacy FROM `{$meta_table}` WHERE user_id = %d", $user_id ), ARRAY_A ); | |
| 63 | - wp_cache_set( $obj_key, $row, 'uwp_usermeta_user_privacy' ); | |
| 64 | - } | |
| 65 | - | |
| 66 | - $value = 'yes'; | |
| 67 | - | |
| 68 | - if ( ! empty( $row ) ) { | |
| 69 | - $output = isset( $row['user_privacy'] ) ? $row['user_privacy'] : $default; | |
| 70 | - $public_fields = explode( ',', $output ); | |
| 71 | - | |
| 72 | - if ( in_array( $key, $public_fields ) ) { | |
| 73 | - $value = 'no'; | |
| 74 | - } | |
| 75 | - } | |
| 76 | - } | |
| 77 | - } else { | |
| 78 | - $value = null; | |
| 79 | - $user_data = get_userdata( $user_id ); | |
| 80 | - | |
| 81 | - if ( ! $user_data ) { | |
| 82 | - return $value; | |
| 83 | - } | |
| 84 | - | |
| 85 | - switch ( $key ) { | |
| 86 | - case 'email': $value = $user_data->user_email; break; | |
| 87 | - case 'username': $value = $user_data->user_login; break; | |
| 88 | - case 'user_nicename': $value = $user_data->user_nicename; break; | |
| 89 | - case 'bio': $value = $user_data->description; break; | |
| 90 | - case 'uwp_language': $value = $user_data->locale; break; | |
| 91 | - default : | |
| 78 | + switch ($key){ | |
| 79 | + case 'email': $value = $user_data->user_email; break; | |
| 80 | + case 'username': $value = $user_data->user_login; break; | |
| 81 | + case 'user_nicename': $value = $user_data->user_nicename; break; | |
| 82 | + case 'bio': $value = $user_data->description; break; | |
| 83 | + case 'uwp_language': $value = $user_data->locale; break; | |
| 84 | + default : | |
| 92 | 85 | $obj_key = $user_id.'_'.$key; |
| 93 | - $row = wp_cache_get( $obj_key, 'uwp_usermeta' ); | |
| 86 | + $row = wp_cache_get( $obj_key, 'uwp_usermeta' ); | |
| 87 | + if ( ! $row ) { | |
| 88 | + if(uwp_column_exist($meta_table, $key)){ | |
| 89 | + $row = $wpdb->get_row($wpdb->prepare("SELECT {$key} FROM {$meta_table} WHERE user_id = %d", $user_id), ARRAY_A); | |
| 90 | + wp_cache_set( $obj_key, $row, 'uwp_usermeta' ); | |
| 91 | + } | |
| 92 | + } | |
| 94 | 93 | |
| 95 | - if ( ! $row ) { | |
| 96 | - if ( in_array( $key, array( 'user_id', 'user_ip', 'user_privacy', 'tabs_privacy', 'username', 'email', 'first_name', 'last_name', 'avatar_thumb', 'banner_thumb', 'display_name', 'user_url', 'bio' ) ) || uwp_column_exist( $meta_table, $key ) ) { | |
| 97 | - $row = $wpdb->get_row( $wpdb->prepare( "SELECT `{$key}` FROM `{$meta_table}` WHERE user_id = %d", $user_id ), ARRAY_A ); | |
| 98 | - wp_cache_set( $obj_key, $row, 'uwp_usermeta' ); | |
| 99 | - } | |
| 100 | - } | |
| 94 | + if (!empty($row)) { | |
| 95 | + $value = isset($row[$key]) ? $row[$key] : $default; | |
| 96 | + } else { | |
| 97 | + $value = $default; | |
| 98 | + } | |
| 99 | + break; | |
| 100 | + } | |
| 101 | + } | |
| 101 | 102 | |
| 102 | - if ( ! empty( $row ) ) { | |
| 103 | - $value = isset( $row[ $key ] ) ? $row[ $key ] : $default; | |
| 104 | - } else { | |
| 105 | - $value = $default; | |
| 106 | - } | |
| 107 | - break; | |
| 108 | - } | |
| 109 | - } | |
| 103 | + $value = uwp_maybe_unserialize($key, $value); | |
| 104 | + $value = wp_unslash($value); | |
| 105 | + $value = apply_filters( 'uwp_get_usermeta', $value, $user_id, $key, $default ); | |
| 106 | + return apply_filters( 'uwp_get_usermeta_' . $key, $value, $user_id, $key, $default ); | |
| 107 | + } | |
| 110 | 108 | |
| 111 | - $value = uwp_maybe_unserialize($key, $value); | |
| 112 | - $value = wp_unslash($value); | |
| 113 | - $value = apply_filters( 'uwp_get_usermeta', $value, $user_id, $key, $default ); | |
| 114 | - | |
| 115 | - return apply_filters( 'uwp_get_usermeta_' . $key, $value, $user_id, $key, $default ); | |
| 116 | - } | |
| 117 | - | |
| 118 | 109 | /** |
| 119 | 110 | * Updates UsersWP user meta value using key. |
| 120 | 111 | * |
| 121 | 112 | * @since 1.0.0 |
| @@ -126,69 +117,66 @@ | ||
| 126 | 117 | * @param string $value User meta Value. |
| 127 | 118 | * |
| 128 | 119 | * @return bool Update success or not?. |
| 129 | 120 | */ |
| 130 | - public function update_usermeta( $user_id, $key, $value ) { | |
| 131 | - global $wpdb; | |
| 121 | + public function update_usermeta( $user_id, $key, $value ) { | |
| 132 | 122 | |
| 133 | - if ( ! $user_id || ! $key ) { | |
| 134 | - return false; | |
| 135 | - } | |
| 123 | + if (!$user_id || !$key ) { | |
| 124 | + return false; | |
| 125 | + } | |
| 136 | 126 | |
| 137 | - $meta_table = get_usermeta_table_prefix() . 'uwp_usermeta'; | |
| 138 | - $cache_group = 'uwp_usermeta'; | |
| 139 | - $obj_key = $user_id . '_' . $key; | |
| 127 | + global $wpdb; | |
| 128 | + $meta_table = get_usermeta_table_prefix() . 'uwp_usermeta'; | |
| 129 | + $cache_group = 'uwp_usermeta'; | |
| 130 | + $obj_key = $user_id . '_' . $key; | |
| 140 | 131 | |
| 141 | - if ( ! in_array( $key, array( 'user_id', 'user_ip', 'user_privacy', 'tabs_privacy', 'username', 'email', 'first_name', 'last_name', 'avatar_thumb', 'banner_thumb', 'display_name', 'user_url', 'bio' ) ) && ! uwp_column_exist( $meta_table, $key ) ) { | |
| 142 | - return false; | |
| 143 | - } | |
| 132 | + if (uwp_str_ends_with($key, '_privacy')) { | |
| 133 | + if ( 'tabs_privacy' == $key ) { | |
| 134 | + $obj_key = $user_id . '_tabs_privacy'; | |
| 135 | + $cache_group = 'uwp_usermeta_tab_privacy'; | |
| 136 | + } elseif('user_privacy' == $key) { | |
| 137 | + $obj_key = $user_id . '_user_privacy'; | |
| 138 | + $cache_group = 'uwp_usermeta_user_privacy'; | |
| 139 | + } | |
| 140 | + } | |
| 144 | 141 | |
| 145 | - if ( uwp_str_ends_with( $key, '_privacy' ) ) { | |
| 146 | - if ( 'tabs_privacy' == $key ) { | |
| 147 | - $obj_key = $user_id . '_tabs_privacy'; | |
| 148 | - $cache_group = 'uwp_usermeta_tab_privacy'; | |
| 149 | - } elseif('user_privacy' == $key) { | |
| 150 | - $obj_key = $user_id . '_user_privacy'; | |
| 151 | - $cache_group = 'uwp_usermeta_user_privacy'; | |
| 152 | - } | |
| 153 | - } | |
| 142 | + $user_meta_info = $wpdb->get_col( $wpdb->prepare( "SELECT $key FROM $meta_table WHERE user_id = %d", $user_id ) ); | |
| 154 | 143 | |
| 155 | - $user_meta_info = $wpdb->get_col( $wpdb->prepare( "SELECT `{$key}` FROM `{$meta_table}` WHERE user_id = %d", $user_id ) ); | |
| 144 | + $value = apply_filters( 'uwp_update_usermeta', $value, $user_id, $key, $user_meta_info ); | |
| 145 | + $value = apply_filters( 'uwp_update_usermeta_' . $key, $value, $user_id, $key, $user_meta_info ); | |
| 156 | 146 | |
| 157 | - $value = apply_filters( 'uwp_update_usermeta', $value, $user_id, $key, $user_meta_info ); | |
| 158 | - $value = apply_filters( 'uwp_update_usermeta_' . $key, $value, $user_id, $key, $user_meta_info ); | |
| 147 | + do_action( 'uwp_before_update_usermeta', $user_id, $key, $value, $user_meta_info ); | |
| 159 | 148 | |
| 160 | - do_action( 'uwp_before_update_usermeta', $user_id, $key, $value, $user_meta_info ); | |
| 149 | + $value = uwp_maybe_serialize($key, $value); | |
| 161 | 150 | |
| 162 | - $value = uwp_maybe_serialize( $key, $value ); | |
| 151 | + if (!empty($user_meta_info)) { | |
| 152 | + $result = $wpdb->update( | |
| 153 | + $meta_table, | |
| 154 | + array($key => $value), | |
| 155 | + array('user_id' => $user_id), | |
| 156 | + array('%s'), | |
| 157 | + array('%d') | |
| 158 | + ); | |
| 163 | 159 | |
| 164 | - if ( ! empty( $user_meta_info ) ) { | |
| 165 | - $result = $wpdb->update( | |
| 166 | - $meta_table, | |
| 167 | - array( $key => $value ), | |
| 168 | - array( 'user_id' => $user_id ), | |
| 169 | - array('%s'), | |
| 170 | - array('%d') | |
| 171 | - ); | |
| 160 | + if ( ! $result ) { | |
| 161 | + return false; | |
| 162 | + } | |
| 172 | 163 | |
| 173 | - if ( ! $result ) { | |
| 174 | - return false; | |
| 175 | - } | |
| 176 | - } else { | |
| 177 | - $result = $wpdb->insert( | |
| 178 | - $meta_table, | |
| 179 | - array( 'user_id' => $user_id, $key => $value ) | |
| 180 | - ); | |
| 164 | + } else { | |
| 165 | + $result = $wpdb->insert( | |
| 166 | + $meta_table, | |
| 167 | + array('user_id' => $user_id, $key => $value) | |
| 168 | + ); | |
| 181 | 169 | |
| 182 | - if ( ! $result ) { | |
| 183 | - return false; | |
| 184 | - } | |
| 185 | - } | |
| 170 | + if ( ! $result ) { | |
| 171 | + return false; | |
| 172 | + } | |
| 173 | + } | |
| 186 | 174 | |
| 187 | - wp_cache_delete( $obj_key, $cache_group ); | |
| 175 | + wp_cache_delete( $obj_key, $cache_group ); | |
| 188 | 176 | |
| 189 | - return true; | |
| 190 | - } | |
| 177 | + return true; | |
| 178 | + } | |
| 191 | 179 | |
| 192 | 180 | /** |
| 193 | 181 | * Gets UsersWP user meta row using user ID. |
| 194 | 182 | * |
| @@ -370,18 +358,16 @@ | ||
| 370 | 358 | * @param string $key Custom field key. |
| 371 | 359 | * |
| 372 | 360 | * @return string Date string. |
| 373 | 361 | */ |
| 374 | - public function modify_datepicker_value_on_update( $value, $user_id, $key ) { | |
| 375 | - // Modify timestamp to date | |
| 376 | - if ( is_int( $value ) ) { | |
| 377 | - $field_info = uwp_get_custom_field_info( $key ); | |
| 378 | - | |
| 379 | - if ( ! empty( $field_info ) && $field_info->field_type == 'datepicker' ) { | |
| 380 | - $value = date( 'Y-m-d', $value ); | |
| 362 | + public function modify_datepicker_value_on_update($value, $user_id, $key) { | |
| 363 | + // modify timestamp to date | |
| 364 | + if (is_int($value)) { | |
| 365 | + $field_info = uwp_get_custom_field_info($key); | |
| 366 | + if ($field_info->field_type == 'datepicker') { | |
| 367 | + $value = date('Y-m-d', $value); | |
| 381 | 368 | } |
| 382 | 369 | } |
| 383 | - | |
| 384 | 370 | return $value; |
| 385 | 371 | } |
| 386 | 372 | |
| 387 | 373 | /** |