
/** * Everything about roles. * @package PCAC-account-management */ class PCACAcctMgmtRole { public static function get_all_roles() { return wp_roles()->roles; } public static function get_all_customized_roles() { $customizedRoles = array_intersect_key(wp_roles()->roles, array_flip(array_diff(array_keys(wp_roles()->roles), PREDEFINED_ROLES))); uksort($customizedRoles, "strcasecmp"); return $customizedRoles; } public static function get_role( $role_name ) { return get_role( $role_name ); } //add_role( 'PCAC Admin', __('PCAC Admin'), array('read' => true, 'list_users' => true, 'edit_posts' => true) ); //add_role( 'PCAC Member', __('PCAC Member'), array('read' => true) ); public static function create_new_role( $role_name, $display_name, $capabilities ) { add_role( $role_name, $display_name, $capabilities ); } public static function toggle_capability( $role_name, $capability ) { $role = self::get_role( $role_name ); if ( $role->has_cap( $capability ) ) { $role->remove_cap( $capability ); } else { $role->add_cap( $capability ); } } /** * Return all possible capabilities for customized roles. */ public static function get_all_possible_capabilities( $role_name ) { if ( $role_name == 'pcac_admin' ) { return array( 'read', 'list_users', 'edit_posts' ); } else { return array( 'read' ); } } //remove_role( 'PCAC Admin' ); //remove_role( 'PCAC Member' ); public static function delete_role( $role_name ) { remove_role( $role_name ); } } ?>