update_user_option( int $user_id, string $option_name, mixed $newvalue, bool $global = false )

Updates user option with global blog capability.


User options are just like user metadata except that they have support for 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.

Top ↑



(int) (Required) User ID.


(string) (Required) User option name.


(mixed) (Required) User option value.


(bool) (Optional) Whether option name is global or blog specific. Default false (blog specific).

Default value: false

Top ↑


(int|bool) User meta ID if the option didn't exist, true on successful update, false on failure.

Top ↑


File: wp-includes/user.php

function update_user_option( $user_id, $option_name, $newvalue, $global = false ) {
	global $wpdb;

	if ( ! $global ) {
		$option_name = $wpdb->get_blog_prefix() . $option_name;

	return update_user_meta( $user_id, $option_name, $newvalue );

Top ↑


Version Description
2.0.0 Introduced.

Top ↑

User Contributed Notes

  1. Skip to note 1 content
    Contributed by Codex

    Basic Example

    Hide the admin bar for a user on the front end of the site:

    update_user_option( $user_id, 'show_admin_bar_front', false );

    When multisite is installed, the $global parameter can be used to set the user option for the whole network, instead of just the current site:

    update_user_option( $user_id, 'show_admin_bar_front', false, true );

You must log in before being able to contribute a note or feedback.