From 9bb4defc3eceea7424ea511f6241f14667427454 Mon Sep 17 00:00:00 2001 From: John Blackbourn Date: Sun, 27 Aug 2023 12:23:23 +0000 Subject: [PATCH] Users: Call `add_user_meta()` instead of `update_user_meta()` when adding metadata to a new user. This improves the performance of inserting users as it removes one unnecessary `SELECT` query for every row of metadata inserted. Props swissspidy, spacedmonkey, johnbillion Fixes #59212 Built from https://develop.svn.wordpress.org/trunk@56478 git-svn-id: http://core.svn.wordpress.org/trunk@55990 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/user.php | 13 ++++++++++--- wp-includes/version.php | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/wp-includes/user.php b/wp-includes/user.php index e6e66431a3..04e6aab999 100644 --- a/wp-includes/user.php +++ b/wp-includes/user.php @@ -2431,9 +2431,16 @@ function wp_insert_user( $userdata ) { $meta = array_merge( $meta, $custom_meta ); - // Update user meta. - foreach ( $meta as $key => $value ) { - update_user_meta( $user_id, $key, $value ); + if ( $update ) { + // Update user meta. + foreach ( $meta as $key => $value ) { + update_user_meta( $user_id, $key, $value ); + } + } else { + // Add user meta. + foreach ( $meta as $key => $value ) { + add_user_meta( $user_id, $key, $value ); + } } foreach ( wp_get_user_contact_methods( $user ) as $key => $value ) { diff --git a/wp-includes/version.php b/wp-includes/version.php index 9833e36112..d1e138df17 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.4-alpha-56477'; +$wp_version = '6.4-alpha-56478'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.