WP_User::remove_role( string $role )

Removes role from user.


$role string Required
Role name.

Top ↑


File: wp-includes/class-wp-user.php. View all references

public function remove_role( $role ) {
	if ( ! in_array( $role, $this->roles, true ) ) {

	unset( $this->caps[ $role ] );
	update_user_meta( $this->ID, $this->cap_key, $this->caps );

	 * Fires immediately after a role as been removed from a user.
	 * @since 4.3.0
	 * @param int    $user_id The user ID.
	 * @param string $role    The removed role.
	do_action( 'remove_user_role', $this->ID, $role );

Top ↑


Top ↑


Version Description
2.0.0 Introduced.

Top ↑

User Contributed Notes

  1. Skip to note 1 content
    Contributed by Andy Schmidt

    The $role parameter is validated against currently active roles for this blog. That means this method cannot be used to “clean-up” obsolete role assignments for roles that had once existed but do no more.

    If used as part of the a plug-in uninstall, be certain to first un-assign roles from users before removing the role definition from the blog:

    $user = new \WP_User( null, 'some user login' );
    	if ( $user->exists() )
    		// First un-assign still-existing custom role from user.
    		$user->remove_role( 'custom_role' );
    	// Then remove custom role from blog.
    	\remove_role( 'custom_role' );

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