DominoRole User Manager: Multiple WordPress User Roles, Bulk Changes & Temporary Role Assignment

User Manager
Multiple Roles per User
Bulk Role Change

WordPress’s native user management is rudimentary: you see a list of users, and you can change their role — but only to a single role at a time, with no bulk operations, no filtering by role, no way to assign multiple simultaneous roles, and no support for temporary access periods. For sites with more than 10-15 users or complex organizational structures, this is genuinely inadequate.

DominoRole’s Comprehensive User Manager replaces WordPress’ native user management with a React-powered, interactive user grid that supports everything the native interface is missing: multiple roles per user, bulk role changes, advanced search and role filtering, and temporary role assignment with automatic expiry. It is the complete answer to the need for a capable multiple user roles plugin wordpress that works alongside a full permission management system.

The User Grid: Search, Filter & Paginate

The User Manager displays all WordPress users in a searchable, filterable, paginated grid. Each user row shows name, email address, current role(s), registration date, and action buttons. The grid includes:

  • Name/Email Search: Type any part of a user’s name or email to filter the list in real-time
  • Role Filter: Dropdown to show only users of a specific role — useful for auditing who has a particular role or bulk-changing all users of a role
  • Pagination: Handles large user bases efficiently — the API call includes proper pagination parameters for WordPress’ WP_User_Query
  • Multi-role display: Users with multiple roles show all assigned roles as individual badges in their row

Instant Role Assignment: Single Click

Changing a user’s primary role is the most common User Manager operation. In the standard WordPress admin, this requires going to the Users screen, clicking the user, scrolling to the Role field, changing the dropdown, and saving the profile — five steps. In DominoRole’s User Manager, it’s a single click on a role badge or role selector dropdown within the user row — the change is sent to POST /dominorole/v1/users/{id}/role and reflected in the grid immediately without a page reload.

Multiple Roles: How WordPress Multiple Role Assignment Works

WordPress’ core role system supports only one role per user in its standard interface — but the underlying data model (wp_capabilities user meta) actually supports multiple role assignments. DominoRole exposes this natively through the User Manager’s Add Role action on each user.

When you assign a second role to a user, their capabilities become the union of all assigned roles. A user who is both an “Author” and a “Shop Manager” simultaneously has all Author capabilities AND all Shop Manager capabilities combined. This is extremely powerful for cross-functional team members:

Example 1: Author + Shop Manager

A team member who writes product blog posts and also manages the WooCommerce store. Instead of creating a custom role combining both, assign both existing roles simultaneously.

Example 2: Editor + SEO Manager

A content lead who has full editorial control (Editor) plus specific SEO tool access (custom SEO Manager role). Both roles active simultaneously.

Example 3: Subscriber + Customer Support

A long-time community member who is also helping with support. Base subscriber account plus the Customer Support role for admin access to handle orders and comments.

This functionality makes DominoRole the definitive multiple user roles plugin wordpress solution, natively exposing what WordPress supports but doesn’t provide an interface for.

Multiple roles are managed via POST /dominorole/v1/users/{id}/roles/add and DELETE /dominorole/v1/users/{id}/roles/remove. Server-side, these call $user->add_role($role_id) and $user->remove_role($role_id) respectively — WordPress’ native multiple role API.

Bulk Role Changes

For onboarding operations — changing all subscribers to members when launching a membership site, or promoting all authors to editors for a site restructure — the User Manager supports bulk role changes:

  1. Use the role filter to show all users of the source role (e.g., all Subscribers)
  2. Select users with the bulk checkbox selector
  3. Choose the target role from the Bulk Change dropdown
  4. Confirm — all selected users’ primary roles are changed in one API operation

The bulk change endpoint handles user role changes in a loop server-side, with validation to prevent role escalation beyond the currently authenticated admin’s permissions.

Temporary Roles: Time-Limited Access with Auto-Expiry

The Temporary Role feature (accessible from the Temp button on any user row) is one of DominoRole’s most powerful and unique capabilities. It enables you to assign a complete role to a user for a defined time period — after which the role is automatically removed and the user’s original roles are restored.

Workflow:

  1. Click the Temp button on any user’s row in the User Manager
  2. Select the temporary role to assign
  3. Set the expiry date and time using the built-in datetime picker
  4. Confirm — the user’s temporary role is stored with expiry metadata in the WordPress database

The expiry check runs on admin initialization (admin_init hook). When the current time exceeds the stored expiry timestamp, DominoRole automatically removes the temporary role and restores the user’s previously stored roles. The original roles are stored in user meta (_dominorole_previous_roles) when the temporary role is assigned, ensuring a clean restoration.

Security use case: A freelance developer needs Administrator access to fix a bug. You assign them a Temporary Administrator role expiring in 48 hours. Even if you forget to revoke their access, DominoRole automatically removes it at the expiry time. No admin cleanup required — no security risk from forgotten elevated access.

Smart Login Redirect Integration

The User Manager works in tandem with DominoRole’s Smart Login Redirect system. Users with admin-level capabilities (including any custom roles with manage_options, edit_posts, manage_woocommerce, or other administrative capabilities) are automatically redirected to the WordPress admin dashboard after login. Non-admin users go to the configured frontend redirect URL. This works with both WordPress login and WooCommerce login forms.

For WooCommerce sites specifically, DominoRole also intercepts WooCommerce’s woocommerce_prevent_admin_access filter — preventing WooCommerce from blocking legitimate admin-capable custom role users from accessing the WordPress admin, which is a common problem when using custom Shop Manager-type roles with WooCommerce.

FAQ

Can I assign more than 2 roles to a single user?

Yes. There is no artificial limit on role count per user — you can assign as many roles as needed. However, from a practical security and manageability perspective, most users should have 1-3 roles. Extremely broad role combinations defeat the purpose of the role-based access control system.

What happens if a temporary role expires while the user is logged in?

The expiry check runs on admin_init. If the user is actively browsing the admin when the expiry passes, their session’s capability checks will continue using their current role until their session is refreshed or they visit a page that triggers admin_init again. Logging out and back in will use the restored original roles.

Can I change the role of another Administrator?

The User Manager follows standard WordPress security rules — you cannot grant roles with capabilities exceeding your own or modify other Administrators unless you are a super-admin on a multisite setup. Standard single-site administrators can manage all non-administrator users.

Assign Multiple Roles & Temporary Access in One Dashboard

The complete WordPress user role manager — multi-role assignment, bulk changes, and automatic temporary role expiry.

Get DominoRole →

Mark Henry's avatar
Written by

Mark Henry

Mark Henry is a lead content creator and WordPress expert at ShopCentral.