Maintenance release — confirmed compatibility with WordPress 6.9.4
2.1.8
Removed License page from the free plugin entirely — no license key input, no activation mechanism
The License page is now only registered by the separate PRO add-on when installed
2.1.7
WordPress.org review: removed all service and practitioner creation limits — fully unlimited in free version
WordPress.org review: removed all payment-related code from free plugin — payment_method, payment_status, bank transfer block and settings moved to PRO via filters
WordPress.org review: replaced greyed-out fake UI sections with clean non-functional previews (no disabled inputs that mimic real forms)
WordPress.org review: HMAC token verification now mandatory on GET /bookings/{uid} REST endpoint
WordPress.org review: cancel REST endpoint restricted to manage_options capability
WordPress.org review: block render callback return wrapped in wp_kses_post()
WordPress.org review: font-family CSS output validated against strict whitelist
Replaced external Flagcdn.com images with local SVG flags (zero third-party requests)
Fixed practitioner save nonce mismatch (JS nonce name did not match PHP verification)
Fixed double cancellation email (status_changed and booking_cancelled both triggered the email)
Fixed customer cancellation reason not saved (now stored in admin notes via Booking::cancel())
Fixed customer email not sent for bank_transfer bookings in FREE mode (conditional logic corrected)
Reordered admin menu: Settings now directly after Dashboard
Updated shortcode references in Settings page code examples to [oumma_easybook]
Restored PRO accordion JS hook via wp_add_inline_script() (was lost during inline script extraction)
Added 3 new filter hooks for PRO integration: oumma_easybook_create_booking_data, oumma_easybook_update_booking_data, oumma_easybook_email_bank_transfer_block
Removed non-existent features from Premium Add-on description
Translations: all new strings translated in 10 languages, .mo files recompiled