Adding existing WordPress users to Client Portal
Client Portal requires users to have the 'CP Client' role to access portals. If you already have WordPress users with different roles (like Subscriber, WooCommerce Customer, or Author), you can give them portal access without losing their existing permissions.
This is particularly useful if you have WooCommerce customers who are already logged into their account area—they won't need to log in again separately to access their Client Portal.
Using the HM Multiple Roles plugin (recommended)
The easiest solution is to assign multiple roles to your existing users. WordPress supports this natively, but doesn't show the option by default.
Step 1: Install HM Multiple Roles
Install the free HM Multiple Roles plugin from the WordPress plugin directory.
Step 2: Assign multiple roles
Go to Users → All Users
Click on any existing user
You'll now see checkboxes instead of a dropdown for roles
Tick both their existing role (like Subscriber or Customer) AND 'CP Client'
Click Update User
Your users keep their current permissions and can access Client Portal.
This plugin works on WordPress multisite networks, so you can manage user roles across multiple sites from one place.
Step 3: Assign them to a portal
Having the CP Client role isn't enough—you still need to assign users to specific portals:
Go to CP Portals
Open the portal you want to add them to
Click the CP Portal tab
Expand Client Portal Settings
Scroll to Client Accounts and add the user
Click Update
For detailed instructions on adding users to portals, see How to add clients to your portals.
Alternative plugins
If you want more control over roles and capabilities, User Role Editor or Members are solid alternatives. Both support multisite networks and offer more advanced features, though they're more complex than needed for this specific task.
For developers: Using the leco_cp_client_roles filter
Instead of adding multiple roles, you can tell Client Portal to accept different user roles directly using code.
This method involves editing PHP code and requires a child theme. If something goes wrong, it could break your site. Only attempt this if you're comfortable with code and have a recent backup.
Add this code to your child theme's functions.php file:
function my_leco_cp_client_roles( $roles ) {
$roles[] = 'subscriber';
return $roles;
}
add_filter( 'leco_cp_client_roles', 'my_leco_cp_client_roles' );Change 'subscriber' to whatever role slug your users have. For multiple roles, add more:
function my_leco_cp_client_roles( $roles ) {
$roles[] = 'subscriber';
$roles[] = 'contributor';
$roles[] = 'customer';
return $roles;
}
add_filter( 'leco_cp_client_roles', 'my_leco_cp_client_roles' );Need help finding your role slug? WooCommerce customers use 'customer', standard WordPress roles use lowercase versions (subscriber, contributor, author, editor).
Which method should you use?
Use the plugin method if:
You're not comfortable editing code
You only have a few users to update
You want the safest approach
Use the code filter if:
You're comfortable with PHP and child themes
You have many existing users with the same role
You want a "set it and forget it" solution
Troubleshooting
If users still can't access their portals after assigning the CP Client role:
Verify the user has the CP Client role assigned
Confirm you've added them to the specific portal (not just given them the role)
Check the portal is published (not in draft status)
Make sure they're logging in at
yourwebsite.com/client-portal-login
For WooCommerce integration specifically, see Using Client Portal with WooCommerce.