##### Added
* In the "Roles" tab, the number of enabled capabilities is now shown as a colorful badge, with a tiny progress bar for partially-enabled categories. You can turn this new style on/off by clicking the gear icon next to the "All" category and toggling these boxes: "Show as badges" and "Show progress bars".
* Added inset and outset separator styles.
##### Fixed
* Fixed role names (e.g. "editor") showing up in the "Capabilities" field in user profiles.
* Fixed the "Other Roles" field not showing up for roles that have permission to edit users but can't access the menu editor.
* Fixed user profile extension scripts and styles loading on all admin pages. Now they should only be loaded on pages like "Edit User" and "Add User".
* Fixed menu separator left and right margins not being previewable in the "Menu Style" dialog. They worked correctly when the configuration was saved, but didn't apply in the preview.
* Partially fixed some screens in the "Columns" tab getting incorrectly flagged as "probably doesn't exist" when there is no saved admin menu configuration.
* Fixed some users showing as "missing" in the "Redirects" tab when the site has more than 50 users.
* Fixed a PHP notice about enqueueing a style before registering the "menu-editor-base-style" dependency.
* Fixed a PHP compatibility issue where using PHP versions older than 8.1 could lead to errors like "Fatal error: Uncaught Error: Cannot unpack Traversable with string keys".
* Fixed a PHP 8.5 deprecation notice: "Using null as an array offset is deprecated, use an empty string instead".
* Fixed a PHP 8.5 deprecation notice: "Non-canonical cast (boolean) is deprecated, use the (bool) cast instead".
* Fixed conflicts with "WooCommerce Product Options" and "WooCommerce Quantity Manager" where menu items that link to setup wizards would become visible when AME is active.
* Added a workaround for a bug in ActivityPub 7.8.5 that could cause a PHP fatal error by returning an invalid value from the "user_has_cap" filter.
* Added a workaround for an unidentified issue with meta cap detection that could cause the "Admin Menu" tab to be blank in some cases.
##### Changed
* Removed the special URL parameter that admins could use to manually reset the admin menu configuration.
* Removed some metadata files like `package.json` and `composer.json` from the plugin's ZIP file.
##### Breaking Changes
* Further increased required PHP version from 7.1 to 7.4.
##### Added
* Added role export/import. The import option ("Roles and capabilities") is disabled by default since accidentally importing the wrong role data can mess up user permissions. When you enable it, you can click "Show settings" to choose which roles to import.
* Added an option to export/import active modules ("Enabled modules"). This is also disabled by default when importing settings since deactivating modules can make parts of the plugin temporarily inaccessible.
* Added separate Toolbar visibility settings for the dashboard and the front end.
* Added default role capabilities for WP 6.9. These are used by the "Reset roles" feature in the "Roles" tab.
* Added an "Other Roles" field and an "Edit" link to user profiles, and a "Capabilities" link to users in the "Users" table. If you want to disable these (e.g. because another plugin already adds similar links), go to the "Roles" tab and click the new "User screens" button on the right.
##### Fixed
* Fixed WooCommerce Orders not being included in Quick Search results even when explicitly enabled in settings.
* Fixed WooCommerce Orders being rendered as `Order – ...`. That dash should now appear as an actual dash.
* Removed the deprecated "type" attribute from style tags generated by admin CSS tweaks.
##### Changed
* Increased minimum required WP version to 5.9.
* Tested up to WP 6.9.
* Various internal changes.
Breaking Changes
* Increased the minimum required PHP version from 5.6 to 7.1.
* Hotfix for a bug in version 2.29 that could cause it to crash with a fatal error upon activation. If you've encountered that bug on your site, you will likely need to upload this update manually because the regular update mechanism won't work while the plugin is deactivated.
Added
* Added a new settings tab: "Columns". It lets you hide and reorder table columns used in various admin tables, like on "Posts -> All Posts". Plugin-created tables are also supported as long as they use the same API.
* Added two new Gutenberg tweaks: disable block locking and disable access to the Code Editor.
* "Disable block locking and unlocking": the user can't lock or unlock blocks. This doesn't affect previously locked blocks; they stay locked.
* "Disable access to the Code Editor and "Edit as HTML"": the user can't switch to the "Code editor" mode that normally lets you view and edit the underlying block markup for a post or page. This also removes the "Edit as HTML" option from the block context menu.
* Added two new tweaks for customizing the "Plugins" page: one moves active plugins to the top of the plugin list, the other selects the "Active" filter by default.
* The plugin now automatically detects user profile fields so they can be hidden in the "Tweaks" tab. Previously, the "Hide Profile Fields" section only showed a limited set of predefined options.
##### Added
* Added a "Reset Roles" feature to the role editor. It can reset the default roles to their default capabilities. Unlike some other similar plugins, you can choose which roles to reset and you don't lose custom roles. However, the downside is that it uses predefined defaults which may eventually become outdated. Before resetting roles, check the WordPress version number shown in the "Reset roles to defaults" screen.
##### Fixed
* Fixed a conflict with Toolset Types and Toolset Blocks 1.6.18 that prevented the content template editor and several other Toolset pages from working.
* Fixed Quick Search treating headings inside admin notices as sections.
* Added a workaround for plugins and themes that could crash in the "Content Permissions (AME)" meta box due to how AME detects post type capabiliites. On new installations, the workaround will be applied automatically if the meta box runs into a fatal error the first time AME tries to display it. In other cases, you can apply it manually by going to the "Settings" tab and unchecking this option: "Detect post type capabilities by checking them with a non-existent user".
##### Changed
* The role list is now sorted. The default roles like like "Administrator", "Editor", etc are shown in a predefined order, while the rest are sorted alphabetically. Previously, roles were shown in the order they were created.
Fixed
* Fixed the "Disable Customizations" -> "Admin menu content" tweak not working on sites without plugins. It had a bug that was masked by having specific other plugins installed (e.g. "Classic Editor"), so it would work only on sites that were also using those plugins.
* Fixed a potential crash in the Admin Customizer.
- Improved reliability of the ‘Hide the “Patterns” tab’ and the ‘Hide the “Media” tab’ tweaks. It appears that the block inserter tabs can have different IDs on different sites (even on sites running the same WP version) so it’s difficult to hide them consistently.
- Fixed an issue with HTTP request method validation that could cause some of the new “Quick Search” features to fail in some server configurations (e.g. old PHP versions).
##### Added
* Added a way to control access to specific posts and pages. The new "Content Permissions" box in the post editor lets you choose which roles will be able to see a post. It also has an "Advanced" tab where you can enable or disable individual permissions like read/edit/delete for each role. Finally, you can control what happens when someone who doesn't have permission tries to view a post: you can replace the post content with something else, show a custom error, simulate a "404 Not Found" error, or redirect the user to a custom URL.
* Added "Quick Search": a pop-up search box that searches admin menus. Optionally, it can also search admin pages for specific settings, tabs, filter links, and a few more things. You can open the search box by pressing the Shift key twice or clicking the search icon in the Toolbar/Admin Bar. You can configure this feature in the new "Quick Search" tab or turn it off in the "Settings" tab (under "Modules").
* Added margin settings for menu headings.
* Added "Disable Customizations" tweaks that you can use to disable the custom admin menu, custom metabox visibility, and a few other things for specific roles or users.
* Added a filter that can be used to turn off admin menu customizations. Basic example: `add_filter('admin_menu_editor-disable_customizations-admin_menu_structure', '__return_true');`
* Added an option to highlight unsaved changes (i.e. enabled/disabled capabilities) in the "Roles" tab.
* Added an "Optimize menu configuration size" option to the "Settings" tab. It makes the plugin store the admin menu configuration in a more space-efficient format, which should reduce the size of the "ws_menu_editor_pro" database entry. This option is enabled by default. Previously, this was controlled by the option "Compress menu configuration data that's stored in the database", but now the "Compress..." option only applies to actual compression.
##### Fixed
* Fixed default redirects not being saved due to a bug in the "delete settings associated with missing roles" feature.
* Fixed the "Highlight background" color setting in admin menu colors not completely overriding the "Menu highlight background" setting in the general admin color scheme.
* Fixed a potential crash when the Zlib extension is enabled but the gzuncompress() function is disabled.
* Fixed a PHP warning related to WP Adminify that was triggered by trying to parse an invalid hook callback.
* Fixed the "Hide the Gutenberg options menu" tweak not working in WP 6.7.x.
* Fixed the tweaks that hide the "Media" and "Patterns" tabs in the Gutenberg block inserter not working in WP 6.7.x.
* Fixed a potential CSS issue where menu heading styles failed to override general menu item styles.
* Fixed a minor conflict with Elementor that caused the hidden menu items "Elementor -> Connect" and "Elementor -> Note Proxy" to become visible.
* Fixed the left side of the focus outline being cut off for capability checkboxes in the "Roles" tab.
* Fixed a potential caching issue with generated CSS stylesheets.
##### Changed
* Adjusted the size and layout of the top settings tabs on the "Menu Editor Pro" page in situations where the tabs don't fit on a single row.
* Removed the "Screen Options" panel fron the menu editor. The only option that was in that panel - "Hide advanced options" - is still available in the "Settings" tab (in the "Interface" section).
* Tested with WP 6.7.2; partially tested with WP 6.8-alpha.
* Increased minimum required WP version to 5.4.
Added
* Added the "CSS classes" field to submenu items. You can use it to add custom CSS classes to menu items. Previously, only top level menus had this field.
* Updated the capability database. The plugin uses this to categorize the role capabilities shown in the "Roles" tab.
Fixed
* Fixed a bug introduced in version 2.26 that prevented certain blocks from rendering in the default block editor. This only affected blocks that call the "block-renderer" REST API.