Update the status of a user in the database.
Description
Previously used in core to mark a user as spam or "ham" (not spam) in Multisite.
See also
Parameters
$id
intrequired- The user ID.
$pref
stringrequired- The column in the wp_users table to update the user’s status in (presumably user_status, spam, or deleted).
$value
intrequired- The new status for the user.
$deprecated
nulloptional- Deprecated as of 3.0.2 and should not be used.
Default:
null
Source
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;
}
Hooks
- do_action( ‘make_ham_user’,
int $user_id ) Fires after the user is marked as a HAM user. Opposite of SPAM.
- do_action( ‘make_spam_user’,
int $user_id ) Fires after the user is marked as a SPAM user.
Changelog
Version | Description |
---|---|
5.3.0 | Use wp_update_user() |
3.0.0 | Introduced. |
Basic Example
Mark a User as Spam
Note: You can only do this on multisite installs!
Mark a User as Ham
Again, this will not work on single site installs.