Make WordPress Core

Ticket #61025: 61025.patch

File 61025.patch, 1.4 KB (added by asumaran, 2 years ago)
  • wp-includes/user.php

     
    23672367                return new WP_Error( 'empty_data', __( 'Not enough data to create this user.' ) );
    23682368        }
    23692369
     2370        $do_update = false;
    23702371        if ( $update ) {
     2372
    23712373                if ( $user_email !== $old_user_data->user_email || $user_pass !== $old_user_data->user_pass ) {
    23722374                        $data['user_activation_key'] = '';
    23732375                }
    2374                 $wpdb->update( $wpdb->users, $data, array( 'ID' => $user_id ) );
     2376
     2377                foreach ( $data as $key => $value ) {
     2378                        if ( isset( $old_user_data->{$key} ) && $old_user_data->{$key} !== $value ) {
     2379                                $do_update = true;
     2380                                break;
     2381                        }
     2382                }
     2383
     2384                if ( $do_update ) {
     2385                        $wpdb->update( $wpdb->users, $data, array( 'ID' => $user_id ) );
     2386                }
    23752387        } else {
    23762388                $wpdb->insert( $wpdb->users, $data );
    23772389                $user_id = (int) $wpdb->insert_id;
     
    24722484                 * @param WP_User $old_user_data Object containing user's data prior to update.
    24732485                 * @param array   $userdata      The raw array of data passed to wp_insert_user().
    24742486                 */
    2475                 do_action( 'profile_update', $user_id, $old_user_data, $userdata );
     2487                if ( $do_update ) {
     2488                        do_action( 'profile_update', $user_id, $old_user_data, $userdata );
     2489                }
    24762490
    24772491                if ( isset( $userdata['spam'] ) && $userdata['spam'] != $old_user_data->spam ) {
    24782492                        if ( 1 == $userdata['spam'] ) {