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

Update user option with global blog capability.

Description Description

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.

Parameters Parameters


(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 ↑

Return Return

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

Top ↑

Source Source

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 ↑

Changelog Changelog

Version Description
2.0.0 Introduced.

Top ↑

User Contributed Notes 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.