WP_User::remove_role( string $role )

Removes role from user.

Parameters

$rolestringrequired
Role name.

Source

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

	unset( $this->caps[ $role ] );
	update_user_meta( $this->ID, $this->cap_key, $this->caps );
	$this->get_role_caps();
	$this->update_user_level_from_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 );
}

Hooks

do_action( ‘remove_user_role’, int $user_id, string $role )

Fires immediately after a role as been removed from a user.

Changelog

VersionDescription
2.0.0Introduced.

User Contributed Notes

  1. Skip to note 2 content

    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.