Add a Custom Role Based on Default Role
-
I am creating custom role and capability functionality for a plugin and I wanted to have a Business Admin role which would not have access to site management, as well as a General Admin role which would be able to access the business functionality as well as the site management.
add_role( 'general_admin', 'General Admin'); $admin = get_role('administrator'); $general_admin = get_role('general_admin'); if($admin->capabilities){ foreach($admin->capabilities as $cap => $bool){ if($bool){ $general_admin->add_cap($cap); } } }
add_cap basically adds the new capability to an array stored in $general_admin->capabilities, and adds the new capability to the database. If you are not using the database to store and retrieve roles, I think you can bypass the foreach and just copy the $admin->capabilities into the $general_admin->capabilities.
You can now add any custom capabilities you would like, or modify the capabilities as you wish.
- The topic ‘Add a Custom Role Based on Default Role’ is closed to new replies.