WordPress.org

Make WordPress Core

Changeset 13326


Ignore:
Timestamp:
02/23/10 09:15:47 (5 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.