WordPress Create Custom Capability
You should first understand that Wordpress user roles are simple as set of capabilities. That being said, since you said you are creating a plugin, I like to think you are no stranger to code and hence not afraid to code your solution rather than using another plugin for this.
This code should help you create a new user role and add custom capability to it.
<?php// create a new user rolefunction wpeagles_example_role(){ add_role( 'example_role', 'example Role', [ // list of capabilities for this role 'read' => true, 'edit_posts' => true, 'upload_files' => true, ] );}// add the example_roleadd_action('init', 'wpeagles_example_role');
To add a custom capability to this user role use the code below:
//adding custom capability<?phpfunction wpeagles_example_role_caps(){ // gets the example_role role object $role = get_role('example_role'); // add a custom capability // you can remove the 'edit_others-post' and add something else (your own custom capability) which you can use in your code login along with the current_user_can( $capability ) hook. $role->add_cap('edit_others_posts', true);}// add example_role capabilities, priority must be after the initial role definitionadd_action('init', 'wpeagles_example_role_caps', 11);
Futher reference: https://developer.wordpress.org/plugins/users/roles-and-capabilities/
You can create custom roles and capabilities by plugin. Two options available there by custom code or you can use existing plugin.
For Custom code:https://wordpress.stackexchange.com/questions/35165/how-do-i-create-a-custom-role-capability
Using existing plugin: User Roles and Capabilities