add_cap( $cap ); } } } /** * Current grant level for a role: 'full' | 'backup' | 'none'. * * @param string $role_slug Role slug. * @return string */ public static function grant_level( $role_slug ) { $role = get_role( $role_slug ); if ( ! $role ) { return 'none'; } if ( $role->has_cap( self::ADMIN ) ) { return 'full'; } if ( $role->has_cap( self::MANAGE ) ) { return 'backup'; } return 'none'; } /** * Remove all capabilities from every role (used on uninstall). * * @return void */ public static function remove_from_roles() { $roles = wp_roles(); if ( ! $roles ) { return; } foreach ( array_keys( $roles->roles ) as $role_name ) { $role = get_role( $role_name ); if ( ! $role ) { continue; } foreach ( self::all() as $cap ) { $role->remove_cap( $cap ); } } } }