Make WordPress Core

Changeset 13326


Ignore:
Timestamp:
02/23/2010 09:15:47 AM (16 years ago)
Author:
nacin
Message:

Ensure we're back compat with return values and actions in deprecated *_usermeta() family. See #10837

Location:
trunk/wp-includes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/deprecated.php

    r13300 r13326  
    22822282function delete_usermeta( $user_id, $meta_key, $meta_value = '' ) {
    22832283        _deprecated_function( __FUNCTION__, '3.0', 'delete_user_meta()' );
    2284         return delete_user_meta( $user_id, $meta_key, $meta_value );
     2284        global $wpdb;
     2285        if ( !is_numeric( $user_id ) )
     2286                return false;
     2287        $meta_key = preg_replace('|[^a-z0-9_]|i', '', $meta_key);
     2288
     2289        if ( is_array($meta_value) || is_object($meta_value) )
     2290                $meta_value = serialize($meta_value);
     2291        $meta_value = trim( $meta_value );
     2292
     2293        $cur = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->usermeta WHERE user_id = %d AND meta_key = %s", $user_id, $meta_key) );
     2294
     2295        if ( $cur && $cur->umeta_id )
     2296                do_action( 'delete_usermeta', $cur->umeta_id, $user_id, $meta_key, $meta_value );
     2297
     2298        if ( ! empty($meta_value) )
     2299                $wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->usermeta WHERE user_id = %d AND meta_key = %s AND meta_value = %s", $user_id, $meta_key, $meta_value) );
     2300        else
     2301                $wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->usermeta WHERE user_id = %d AND meta_key = %s", $user_id, $meta_key) );
     2302
     2303        wp_cache_delete($user_id, 'users');
     2304
     2305        if ( $cur && $cur->umeta_id )
     2306                do_action( 'deleted_usermeta', $cur->umeta_id, $user_id, $meta_key, $meta_value );
     2307
     2308        return true;
    22852309}
    22862310
     
    23022326 * @return mixed
    23032327 */
    2304 function get_usermeta( $user_id, $meta_key = '') {
     2328function get_usermeta( $user_id, $meta_key = '' ) {
    23052329        _deprecated_function( __FUNCTION__, '3.0', 'get_user_meta()' );
    2306         return get_user_meta( $user_id, $meta_key, false );
     2330        global $wpdb;
     2331        $user_id = (int) $user_id;
     2332
     2333        if ( !$user_id )
     2334                return false;
     2335
     2336        if ( !empty($meta_key) ) {
     2337                $meta_key = preg_replace('|[^a-z0-9_]|i', '', $meta_key);
     2338                $user = wp_cache_get($user_id, 'users');
     2339                // Check the cached user object
     2340                if ( false !== $user && isset($user->$meta_key) )
     2341                        $metas = array($user->$meta_key);
     2342                else
     2343                        $metas = $wpdb->get_col( $wpdb->prepare("SELECT meta_value FROM $wpdb->usermeta WHERE user_id = %d AND meta_key = %s", $user_id, $meta_key) );
     2344        } else {
     2345                $metas = $wpdb->get_col( $wpdb->prepare("SELECT meta_value FROM $wpdb->usermeta WHERE user_id = %d", $user_id) );
     2346        }
     2347
     2348        if ( empty($metas) ) {
     2349                if ( empty($meta_key) )
     2350                        return array();
     2351                else
     2352                        return '';
     2353        }
     2354
     2355        $metas = array_map('maybe_unserialize', $metas);
     2356
     2357        if ( count($metas) == 1 )
     2358                return $metas[0];
     2359        else
     2360                return $metas;
    23072361}
    23082362
     
    23282382function update_usermeta( $user_id, $meta_key, $meta_value ) {
    23292383        _deprecated_function( __FUNCTION__, '3.0', 'update_user_meta()' );
    2330         return update_user_meta( $user_id, $meta_key, $meta_value );
    2331 }
     2384        global $wpdb;
     2385        if ( !is_numeric( $user_id ) )
     2386                return false;
     2387        $meta_key = preg_replace('|[^a-z0-9_]|i', '', $meta_key);
     2388
     2389        /** @todo Might need fix because usermeta data is assumed to be already escaped */
     2390        if ( is_string($meta_value) )
     2391                $meta_value = stripslashes($meta_value);
     2392        $meta_value = maybe_serialize($meta_value);
     2393
     2394        if (empty($meta_value)) {
     2395                return delete_usermeta($user_id, $meta_key);
     2396        }
     2397
     2398        $cur = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->usermeta WHERE user_id = %d AND meta_key = %s", $user_id, $meta_key) );
     2399
     2400        if ( $cur )
     2401                do_action( 'update_usermeta', $cur->umeta_id, $user_id, $meta_key, $meta_value );
     2402
     2403        if ( !$cur )
     2404                $wpdb->insert($wpdb->usermeta, compact('user_id', 'meta_key', 'meta_value') );
     2405        else if ( $cur->meta_value != $meta_value )
     2406                $wpdb->update($wpdb->usermeta, compact('meta_value'), compact('user_id', 'meta_key') );
     2407        else
     2408                return false;
     2409
     2410        wp_cache_delete($user_id, 'users');
     2411
     2412        if ( !$cur )
     2413                do_action( 'added_usermeta', $wpdb->insert_id, $user_id, $meta_key, $meta_value );
     2414        else
     2415                do_action( 'updated_usermeta', $cur->umeta_id, $user_id, $meta_key, $meta_value );
     2416
     2417        return true;
     2418}
  • trunk/wp-includes/meta.php

    r12859 r13326  
    207207
    208208        if ( isset($meta_cache[$meta_key]) ) {
    209                 if ( $single ) {
     209                if ( $single )
    210210                        return maybe_unserialize( $meta_cache[$meta_key][0] );
    211                 } else {
     211                else
    212212                        return array_map('maybe_unserialize', $meta_cache[$meta_key]);
    213                 }
    214213        }
    215214
Note: See TracChangeset for help on using the changeset viewer.