- Fixed: Reports “Revenue Guard” statistics failing. The Revenue Guard REST endpoints (
/revenue-guard/stats,/unresolved,/resolve) could return an HTTP 500 error due to an incorrect class reference, breaking the Revenue Guard cards in the Reports dashboard. All three endpoints now respond correctly. - Fixed: Empty time slots on the booking form. When entering the date/time step via the booking wizard, the time-slot grid could appear empty even though a date was already selected, requiring the customer to manually switch days to make slots show. Time availability is now validated against the actually-rendered grid, so slots display correctly on the first view.
- Improved: Booking session handling & performance. Refined PHP session management so unrelated Admin, REST and WordPress Heartbeat requests are no longer serialized behind the booking session lock, reducing slow/queued admin and API responses.
- Added: Subscription & license expiration handling. Improved detection and handling of subscription and license expiration states.
- Added: Multi-shop context for notifications. SMS and email notifications now correctly apply per-shop context.
- Improved: Security hardening. Additional security enhancements across booking access and payment processes.


