v1.1.21 - 27-March-2026
- New: Introduced BSF_Analytics_Events class for reusable one-time milestone event tracking with dedup.
- New: Support for custom option resolver callbacks (get/update) or default plugin-slug-prefixed WordPress options.

v1.1.20 - 4-March-2026
- New: Added PHPUnit test suite with 73 tests covering all 6 classes using WP_Mock.
- New: Added GitHub Actions CI workflow for PHPUnit tests across PHP 7.4, 8.0, 8.1, and 8.2.

v1.1.19 - 1-March-2026
- Fix: Resolved dead-code form ID fallback and reduced AJAX timeout from 90s to 15s in deactivation survey.
- Fix: Moved nonce verification before $_GET access in handle_optin_optout() to comply with WordPress.org coding standards.

v1.1.18 - 19-February-2026
- Improvement: Added `modern-cart` slug to UTM analytics.

v1.1.17 - 29-January-2026
- Improvement: Renamed options from `*_analytics_*` to `*_usage_*`.

v1.1.16 - 15-July-2025
- Improvement: Added `SureRank` slug to UTM analytics.

v1.1.15 - 1-July-2025
- Improvement: Added `Ultimate_VC_Addons` slug to UTM analytics.

v1.1.14 - 6-May-2025
- New: Introduced a key 'hide_optin_checkbox' to hide checkbox from Settings > General.
- Improvement: Single optin notice for all bsf products.
- Improvement: Introduced delay of 7 days for next optin message if user has reqested request from product.

v1.1.13 - 17-April-2025
- Improvement: Ensured unique id for label's `for` attribute in deactivation survey fields by prefixing them with product slugs.
- Improvement: Prevented deactivation survey from triggering when switching from a child theme to its parent.

v1.1.12 - 24-March-2025
- Improvement: Added `suremails` and `latepoint` slugs to UTM analytics.