From 7e894153a4f37a2d6205f0952ce4a7e9d13f8775 Mon Sep 17 00:00:00 2001 From: Scott Taylor Date: Sat, 22 Aug 2015 17:11:42 +0000 Subject: [PATCH] In `wp_insert_user()`, add a filter: `insert_user_meta`, to filter a user's meta values and keys before the user is created or updated. Props tharsheblows, chriscct7, DrewAPicture. Fixes #31549. git-svn-id: https://develop.svn.wordpress.org/trunk@33708 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/user.php | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/wp-includes/user.php b/src/wp-includes/user.php index 46143317be..9f5d9e762c 100644 --- a/src/wp-includes/user.php +++ b/src/wp-includes/user.php @@ -2063,6 +2063,32 @@ function wp_insert_user( $userdata ) { $user = new WP_User( $user_id ); + /** + * Filter a user's meta values and keys before the user is created or updated. + * + * Does not include contact methods. These are added using `wp_get_user_contact_methods( $user )`. + * + * @since 4.4.0 + * + * @param array $meta { + * Default meta values and keys for the user. + * + * @type string $nickname The user's nickname. Default is the the user's username. + * @type string $first_name The user's first name. + * @type string $last_name The user's last name. + * @type string $description The user's description. + * @type bool $rich_editing Whether to enable the rich-editor for the user. False if not empty. + * @type bool $comment_shortcuts Whether to enable keyboard shortcuts for the user. Default false. + * @type string $admin_color The color scheme for a user's admin screen. Default 'fresh'. + * @type int|bool $use_ssl Whether to force SSL on the user's admin area. 0|false if SSL is + * not forced. + * @type bool $show_admin_bar_front Whether to show the admin bar on the front end for the user. + * Default true. + * } + * @param WP_User $user User object. + */ + $meta = apply_filters( 'insert_user_meta', $meta, $user ); + // Update user meta. foreach ( $meta as $key => $value ) { update_user_meta( $user_id, $key, $value );