Make WordPress Core

Ticket #61025: user.php

File user.php, 805 bytes (added by asumaran, 2 years ago)

Do not update the users table if the user data didn't change

Line 
1Index: wp-includes/user.php
2===================================================================
3--- wp-includes/user.php        (revision 57483)
4+++ wp-includes/user.php        (working copy)
5@@ -2371,7 +2371,18 @@
6                if ( $user_email !== $old_user_data->user_email || $user_pass !== $old_user_data->user_pass ) {
7                        $data['user_activation_key'] = '';
8                }
9-               $wpdb->update( $wpdb->users, $data, array( 'ID' => $user_id ) );
10+
11+               $data_changed = false;
12+               foreach ( $data as $key => $value ) {
13+                       if ( isset( $old_user_data->{$key} ) && $old_user_data->{$key} !== $value ) {
14+                               $data_changed = true;
15+                               break;
16+                       }
17+               }
18+
19+               if ( $data_changed ) {
20+                       $wpdb->update( $wpdb->users, $data, array( 'ID' => $user_id ) );
21+               }
22        } else {
23                $wpdb->insert( $wpdb->users, $data );
24                $user_id = (int) $wpdb->insert_id;