WordPress.org

Make WordPress Core

Ticket #15458: wp_update_users.15458.diff

File wp_update_users.15458.diff, 2.9 KB (added by scribu, 3 years ago)
  • wp-includes/capabilities.php

    diff --git wp-includes/capabilities.php wp-includes/capabilities.php
    index deb50ce..310d248 100644
    class WP_User { 
    474474         * 
    475475         * @param string $field The field to query against: 'id', 'slug', 'email' or 'login' 
    476476         * @param string|int $value The field value 
     477         * @return object Raw user object 
    477478         */ 
    478479        static function get_data_by( $field, $value ) { 
    479480                global $wpdb; 
    class WP_User { 
    618619         * property matching the 'cap_key' exists and is an array. If so, it will be 
    619620         * used. 
    620621         * 
     622         * @access protected 
    621623         * @since 2.1.0 
    622624         * 
    623625         * @param string $cap_key Optional capability key 
    624          * @access protected 
    625626         */ 
    626627        function _init_caps( $cap_key = '' ) { 
    627628                global $wpdb; 
  • wp-includes/user.php

    diff --git wp-includes/user.php wp-includes/user.php
    index e339eb5..f0bdd96 100644
    function wp_insert_user($userdata) { 
    13531353                $user_id = (int) $wpdb->insert_id; 
    13541354        } 
    13551355 
    1356         update_user_meta( $user_id, 'first_name', $first_name ); 
    1357         update_user_meta( $user_id, 'last_name', $last_name ); 
    1358         update_user_meta( $user_id, 'nickname', $nickname ); 
    1359         update_user_meta( $user_id, 'description', $description ); 
    1360         update_user_meta( $user_id, 'rich_editing', $rich_editing ); 
    1361         update_user_meta( $user_id, 'comment_shortcuts', $comment_shortcuts ); 
    1362         update_user_meta( $user_id, 'admin_color', $admin_color ); 
    1363         update_user_meta( $user_id, 'use_ssl', $use_ssl ); 
    1364         update_user_meta( $user_id, 'show_admin_bar_front', $show_admin_bar_front ); 
    1365  
    1366         $user = new WP_User($user_id); 
     1356        foreach ( _get_additional_user_keys() as $key ) { 
     1357                update_user_meta( $user_id, $key, $$key ); 
     1358        } 
     1359 
     1360        $user = new WP_User( $user_id ); 
    13671361 
    13681362        foreach ( _wp_get_user_contactmethods( $user ) as $method => $name ) { 
    13691363                if ( empty($$method) ) 
    function wp_update_user($userdata) { 
    14111405        $ID = (int) $userdata['ID']; 
    14121406 
    14131407        // First, get all of the original fields 
    1414         $user = WP_User::get_data_by('id', $ID); 
     1408        $user = get_object_vars( WP_User::get_data_by( 'id', $ID ) ); 
     1409 
     1410        // Add additional custom fields 
     1411        foreach ( _get_additional_user_keys() as $key ) { 
     1412                $user[ $key ] = get_user_meta( $ID, $key, true ); 
     1413        } 
    14151414 
    14161415        // Escape data pulled from DB. 
    1417         $user = add_magic_quotes(get_object_vars($user)); 
     1416        $user = add_magic_quotes( $user ); 
    14181417 
    14191418        // If password is changing, hash it now. 
    14201419        if ( ! empty($userdata['user_pass']) ) { 
    function wp_create_user($username, $password, $email = '') { 
    14651464 
    14661465 
    14671466/** 
     1467 * Return a list of meta keys that wp_insert_user() is supposed to set. 
     1468 * 
     1469 * @access private 
     1470 * @since 3.3.0 
     1471 * 
     1472 * @return array 
     1473 */ 
     1474function _get_additional_user_keys() { 
     1475        return array( 'first_name', 'last_name', 'nickname', 'description', 'rich_editing', 'comment_shortcuts', 'admin_color', 'use_ssl', 'show_admin_bar_front' ); 
     1476} 
     1477 
     1478/** 
    14681479 * Set up the default contact methods 
    14691480 * 
    14701481 * @access private