update_user_status()WP 3.0.0

Deprecated from version 5.3.0. It is no longer supported and can be removed in future releases. Use wp_update_user() instead.

Update the status of a user in the database.

Previously used in core to mark a user as spam or "ham" (not spam) in Multisite.

Hooks from the function

Return

Int. The initially passed $value.

Usage

update_user_status( $id, $pref, $value, $deprecated );
$id(int) (required)
The user ID.
$pref(string) (required)
The column in the wp_users table to update the user's status in (presumably user_status, spam, or deleted).
$value(int) (required)
The new status for the user.
$deprecated(null)
Deprecated as of 3.0.2 and should not be used.
Default: null

Examples

0

#1 Move a user to spam

Works only for multisites.

$user_id = 394;

update_user_status( $user_id, 'spam', 1 );
0

#2 Mark a User as "Ham"

This will not work on single site installs.

$user_id = 394;

update_user_status( $user_id, 'spam', 0 );

Notes

  • See: wp_update_user()
  • Global. wpdb. $wpdb WordPress database abstraction object.

Changelog

Since 3.0.0 Introduced.
Deprecated since 5.3.0 Use wp_update_user()

update_user_status() code WP 6.5.2

function update_user_status( $id, $pref, $value, $deprecated = null ) {
	global $wpdb;

	_deprecated_function( __FUNCTION__, '5.3.0', 'wp_update_user()' );

	if ( null !== $deprecated ) {
		_deprecated_argument( __FUNCTION__, '3.0.2' );
	}

	$wpdb->update( $wpdb->users, array( sanitize_key( $pref ) => $value ), array( 'ID' => $id ) );

	$user = new WP_User( $id );
	clean_user_cache( $user );

	if ( 'spam' === $pref ) {
		if ( $value == 1 ) {
			/** This filter is documented in wp-includes/user.php */
			do_action( 'make_spam_user', $id );
		} else {
			/** This filter is documented in wp-includes/user.php */
			do_action( 'make_ham_user', $id );
		}
	}

	return $value;
}