diff --git a/wp-admin/includes/upgrade.php b/wp-admin/includes/upgrade.php index a45cde832..cc01b055e 100644 --- a/wp-admin/includes/upgrade.php +++ b/wp-admin/includes/upgrade.php @@ -1110,7 +1110,7 @@ function upgrade_300() { if ( $wp_current_db_version < 14139 ) { populate_roles_300(); - if ( is_multisite() && is_main_site() && ! defined( 'MULTISITE' ) && get_site_option( 'siteurl' ) === false ) + if ( is_multisite() && is_main_site() && ! defined( 'MULTISITE' ) && get1_site_option( 'siteurl' ) === false ) add_site_option( 'siteurl', '' ); } diff --git a/wp-includes/ms-functions.php b/wp-includes/ms-functions.php index 76d81f0e8..26fa64ac2 100644 --- a/wp-includes/ms-functions.php +++ b/wp-includes/ms-functions.php @@ -786,8 +786,8 @@ function wpmu_create_user( $user_name, $password, $email) { return false; // Newly created users have no roles or caps until they are added to a blog. - update_user_option($user_id, 'capabilities', ''); - update_user_option($user_id, 'user_level', ''); + delete_user_option( $user_id, 'capabilities' ); + delete_user_option( $user_id, 'user_level' ); do_action( 'wpmu_new_user', $user_id ); diff --git a/wp-includes/user.php b/wp-includes/user.php index 3227d51d8..3fa6db69f 100644 --- a/wp-includes/user.php +++ b/wp-includes/user.php @@ -258,6 +258,8 @@ function get_user_option( $option, $user = 0, $deprecated = '' ) { * global blog options. If the 'global' parameter is false, which it is by default * it will prepend the WordPress table prefix to the option name. * + * Deletes the user option if $newvalue is empty. + * * @since 2.0.0 * @uses $wpdb WordPress database object for queries * @@ -272,6 +274,12 @@ function update_user_option( $user_id, $option_name, $newvalue, $global = false if ( !$global ) $option_name = $wpdb->prefix . $option_name; + + // For backward compatibility. See differences between update_user_meta() and deprecated update_user_meta(). + // http://core.trac.wordpress.org/ticket/13088 + if ( is_null( $newvalue ) || is_scalar( $newvalue ) && empty( $newvalue ) ) + return delete_user_meta( $user_id, $option_name ); + return update_user_meta( $user_id, $option_name, $newvalue ); }