Capability names. */ public static function all(): array { return array( self::MANAGE, self::MANAGE_SETTINGS, self::VIEW_REPORTS ); } /** * Grant missing capabilities to administrators. * * @since 1.0.0 * * @return void */ public static function ensure(): void { $role = get_role( 'administrator' ); if ( null === $role ) { return; } foreach ( self::all() as $cap ) { if ( ! $role->has_cap( $cap ) ) { $role->add_cap( $cap ); } } } /** * Remove ReleaseCart capabilities from all roles. * * Deactivation keeps role mappings. The opt-in uninstall removes them. * * @since 1.0.0 * * @return void */ public static function remove(): void { foreach ( wp_roles()->role_objects as $role ) { foreach ( self::all() as $cap ) { if ( $role->has_cap( $cap ) ) { $role->remove_cap( $cap ); } } } } }