WPDKUserRoles::add_role PHP Method

add_role() public method

The capabilities are defined in the following format array( 'read' => true ); To explicitly deny a role a capability you set the value for that capability to false. In this overide method you can extends the capapilities array with format array( 'read' => true, 'description' => 'Thsi capability allow access to...' );
public add_role ( string $role, string $display_name, array $capabilities = [], string $description = '', string $owner = '' ) : null | WP_Role
$role string Role name.
$display_name string Role display name.
$capabilities array Optional. List of role capabilities in the above format.
$description string Optional. An extend description for this role.
$owner string Optional. Owner of this role
return null | WP_Role
    public function add_role($role, $display_name, $capabilities = array(), $description = '', $owner = '')
    {
        // Normalize caps
        $caps = array();
        foreach ($capabilities as $cap) {
            $caps[$cap] = true;
        }
        // Ask to parent
        $role_object = parent::add_role($role, $display_name, $caps);
        // Stability
        if (!is_null($role_object)) {
            if (!isset($this->extend_data[$role])) {
                $this->extend_data[$role] = array($display_name, $description, $owner);
            }
            update_option(self::OPTION_KEY, $this->extend_data);
            /**
             * Fires when a role is added.
             *
             * @since 1.6.0
             *
             * @param string $role   The role key.
             * @param array  $extend The array with extend data for this role
             */
            do_action('wpdk_user_roles_added_role', $role, $this->extend_data[$role]);
        }
        return $role_object;
    }