Easy Store Management for WooCommerce — Full changelog

For each release, see the entries below. The latest version is always at the top.
The current release notes also live in readme.txt under "== Changelog ==".

= 2.2.0 =
* New: Per role settings. Every role with Easy Store Mode can now override what it sees and inherits everything it does not, so the person who runs the warehouse can get Products and Orders while everybody else keeps the full store view. They are laid out as a matrix, one row per setting and one column per role, so every role is read side by side and adding one costs a column rather than a second copy of the settings. Only what a role really changes is stored, which means editing the settings above still reaches every role that inherits them. Appearance and navigation only: who gets Easy Store Mode and who may switch users stay the same for the whole site.
* Improved: The Easy Store Mode indicator in the admin bar is a switch now, and takes about a third of the room it used to. The name of the mode, the switch itself and a link to the settings moved into its menu. While the mode is on, the switch and the storefront icon take the highlight colour of whichever admin colour scheme you picked, in all nine of them, instead of a green the plugin chose for you.
* Improved: The settings page lays its options out in two columns, every checkbox before its label rather than at the far right of the column, and the wording of each setting under it instead of beside it. The menu and widget pickers show their whole list in two columns, with no box around it and no scrollbar of their own.
* Improved: Restoring the default settings asks for confirmation before it does it.
* Improved: The box for menus typed by hand shows the three shapes that work as a placeholder, one per line, instead of spending three paragraphs on them.
* Fix: The Comments menu was listed as "Comments 0 Comments in moderation". Its moderation counter is three spans inside one another and only the outer two were being taken off.
* Fix: The low stock notice escaped its own text twice, so an ampersand in a translation showed up as &amp;.
* Fix: The plugin stylesheet was not loaded for anybody who had Easy Store Mode off, so the switch in the admin bar was served unstyled in exactly the state where it is an invitation to come in.

= 2.1.1 =
* Improved: Tested with WordPress 7.1. The Easy Store Mode switch, the Orders menu and the low stock warning also show in the post and site editors, where WordPress 7.1 keeps the toolbar visible.

= 2.1.0 =
* New: Pick the menus to keep from a list of the ones your site really has, instead of typing slugs. Every top-level menu Easy Store Mode would hide is on it, with its name and its slug.
* New: Pick the dashboard widgets to keep the same way. The widgets your active plugins add, the ones "Clean the dashboard" would take out, are listed so you can keep whichever ones you use.
* New: Screens that hang off another menu can be kept too, which was never possible before. Paste the address of the one you want, options-general.php?page=whatever for instance, and the menu it hangs off comes back carrying only that screen and not everything it had, so asking for one settings page does not hand you back the whole Settings menu.
* Improved: The box for typing menus by hand now takes the address of the screen too. Paste admin.php?page=whatever, or the whole URL out of the address bar, and it becomes the slug when you save.
* Improved: Tested with WooCommerce 11.0.
* Fix: Menus listed to be kept visible stayed hidden when they were written as the address of the screen, which is what the address bar gives you and what the examples in that very setting pointed at. A plugin page is registered under a bare slug, joinchat, and not under admin.php?page=joinchat. Both forms are accepted now, and the examples have been rewritten. Site Kit and Joinchat were the usual casualties.
* Fix: Media and Pages could not be kept visible at all, the two examples the setting itself suggested. Both were on an internal removal list that ran before the setting was ever read. That list now leaves alone anything you have asked to keep.

= 2.0.0 =
* New: Settings page under WooCommerce. Everything the plugin used to do silently is now a setting: which roles get the simplified admin, what gets hidden, which shortcuts show up and who may switch user.
* New: Easy Store Mode can be turned on and off by each user, from a switch in the admin bar or from their profile. Until now the simplified admin was locked to the Shop manager role, with no way in for anybody else and no way out for them.
* New: Quick user switching. Look at the store through a customer account to reproduce a cart or checkout problem, and come back to your own account in one click, from the users list or straight from the order screen. Site administrators can always use it. Anybody else only if an administrator delegates it, and then only for accounts whose roles are all listed as switchable and that hold no administrative capability.
* New: Order search box inside the Orders menu of the admin bar, to jump to an order by number or customer email.
* New: Low stock warning in the admin bar, based on the WooCommerce low stock threshold. It opens a products list filtered to what is running out, lowest stock first, on the real products screen where stock can be edited, not on an analytics report.
* New: Optional landing screen after logging in, so store people go straight to Orders instead of the Dashboard.
* New: Store menus in the order a shop is worked in: Store, Orders, Products, Customers, Users, Withdrawals, Analytics and Marketing.
* New: The Users menu stays available, so switching to a customer with the User Switching plugin and the Consent log screen of Terms & Conditions Consent Log keep working. Nothing is granted: each person still sees and does only what their own role allows, and it can be turned off in the settings.
* Improved: The red counter on the Orders menu says what it adds up: the tooltip spells out the sum, and in the dropdown the two statuses it counts are the ones shown in red. Every status is a line of its own, in the order an order travels through them, and each one has its own colour.
* Improved: The dashboard panel was rebuilt around the figures a shop is actually run by, orders waiting, orders processing, products running out and products published, each one a link into that exact list. It now shows for everyone in Easy Store Mode, not only for whoever created the site, and it can still be dismissed.
* Improved: Deleting the plugin now removes its settings, its cached data and the per user preferences.
* Improved: Requires WordPress 6.5, which is what the "Requires Plugins" header the plugin already declared has always needed.
* Fix: The screen you are on is the menu that lights up. Orders, Customers and Analytics used to highlight the Store menu instead, because that is where WooCommerce registers those pages.
* Fix: The WooCommerce Payments menu is hidden in Easy Store Mode. It is only a shortcut into Settings, Payments, and it slipped through the WooCommerce allowance.
* Fix: Orders, "Add new order" and the admin bar order links pointed at the legacy order screen on stores using High-Performance Order Storage, the WooCommerce default since 8.2.
* Fix: A duplicated Orders menu showed up on sites not running in English, because the menu cleanup matched titles against the English word "order".
* Fix: Menus and submenus whose title contained the word "payment" could be removed by mistake, whatever plugin they belonged to. Menus are now matched by slug only.
* Fix: Removed extension points that were declared but never called, and a translation helper that always fell through to its own fallback list.

= 1.0.4 =
* Tested up to WooCommerce 10.7

= 1.0.3 =
* Tested up to WordPress 7.0

= 1.0.2 =
* Improved: Enhanced WooCommerce widget detection to automatically show dashboard widgets from WooCommerce extensions and third-party plugins
* Improved: Widget detection now includes keyword-based analysis (shop, store, order, product, sale, etc.) to identify WooCommerce-related widgets
* New: Filter `ayudawp_esm_is_woocommerce_widget` to allow developers to manually declare widgets as WooCommerce-related
* Improved: Admin bar orders counter now shows combined count of pending payment + on-hold orders instead of only pending payment

= 1.0.1 =
* Improved: Added safety validations for all menu manipulation functions to prevent PHP warnings
* Improved: Enhanced frontend asset loading to ensure proper display of admin bar elements
* Improved: Better detection of when to apply shop manager customizations in frontend
* Improved: Safe wrapper functions for `remove_menu_page()` and `remove_submenu_page()` operations
* Fix: PHP warning `foreach() argument must be of type array|object, null given` when manipulating WordPress admin menus
* Fix: Orders pending count badge now displays correctly in both frontend and backend admin bar

= 1.0.0 =
* New: Initial release
* New: Hide non-WooCommerce menus for shop managers
* New: Reorganize WooCommerce menus (Orders and Customers to top-level)
* New: Clean dashboard widgets
* New: Enhanced admin bar with quick order access
* New: Full translation support
