From 28cb70662965bc4c952f89060bd0721d9b5f39ad Mon Sep 17 00:00:00 2001 From: John Blackbourn Date: Sun, 27 Aug 2023 12:21:33 +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 git-svn-id: https://develop.svn.wordpress.org/trunk@56478 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/user.php | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/wp-includes/user.php b/src/wp-includes/user.php index e6e66431a3..04e6aab999 100644 --- a/src/wp-includes/user.php +++ b/src/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 ) {