WordPress Create Custom Capability

I’m developing a shopping cart plugin, and planning to create a new user role for customers.

My question is how to create custom capabilities so that i can assign these custom capabilities to the new user role, this answer provided a way to create new capabilities, but it is just a new name for the original capabilities.

Read More

Can anyone explain how to create a brand new capability which controls some custom functions?

Related posts

Leave a Reply

2 comments

  1. 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 role
    
    function 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_role
    add_action('init', 'wpeagles_example_role');
    

    To add a custom capability to this user role use the code below:

    //adding custom capability
    <?php
    function 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     definition
    add_action('init', 'wpeagles_example_role_caps', 11);
    

    Futher reference: https://developer.wordpress.org/plugins/users/roles-and-capabilities/