*** RewardMate Changelog ***

2026-10-09 - version 1.1.0
* Security: Implemented secure server-side outcome determination for the Spin-to-Win wheel to prevent client-side tampering.
* Security: Enforced daily check-in feature toggle check on AJAX endpoints with transient lock protection.
* Feature: Added standard shortcodes for widgets and balances: `[rewardmate_wallet]`, `[rewardmate_points_balance]`, `[rewardmate_daily_checkin]`, `[rewardmate_spin_wheel]`, `[rewardmate_points_history]`, and `[rewardmate_referral_link]`.
* Feature: Added dedicated "Points Wallet" tab endpoint to WooCommerce My Account dashboard in free core edition.
* Feature: Added per-variation custom points reward field support on variable WooCommerce products.
* Fix: Enforced script and localization asset enqueuing when widgets are embedded via shortcodes across non-account pages.
* Fix: Standardized case-insensitivity on Daily Check-in setting to avoid disabled states from casing variations.
* Fix: Recalculated displayed streak count dynamically when previous days are missed to avoid showing stale streak numbers.
* Fix: Included product variation ID in legacy order refund points calculation.
* Fix: Added live dynamic earnable points update on single product page when variations are selected.
* Fix: Capped user meta `_point_history` at 500 entries to prevent database bloat, and unified core `rewardmate_apply_points_change`.
* Fix: Added multilingual/translation tolerance when extracting points discount fees from WooCommerce orders.
* Fix: Hardened `set_spun_flag` AJAX handler with action rate-limiting.
* Fix: Improved mobile responsiveness and auto-scaling for lucky spin wheel canvas on narrow screens.
* Fix: Restored customer's redeemed points to their balance upon full order refund or cancellation.
* Fix: Added support for partial order refunds with proportional points deduction.
* Fix: Automatically retract referee and referrer bonus points when a referral order is refunded or cancelled.
* Fix: Accurate earnable points calculation at checkout based on actual discounted line totals and variations.
* Fix: Resolved spin wheel order qualification logic to scan all recent unspun completed orders.
* Fix: Re-bind checkout redemption slider events dynamically on WooCommerce AJAX checkout fragments updates.
* Fix: Hardened points gifting handler with enablement verification, input unslashing, user-friendly security notices, and rate limiting.
* Fix: Restored redeemed points to customers when reward product orders are refunded or cancelled.
* Fix: Enforced tier exclusivity requirements during cart review and checkout (`woocommerce_check_cart_items`).
* Fix: Batched CSV user exports in memory-safe chunks to prevent PHP memory exhaustion on large customer databases.
* Fix: Enhanced admin performance with query pagination for Points History and user search limits on Adjust Points.
* Fix: Restored redeemed points to customers when manually approved redemption orders are refunded or cancelled.
* Fix: Prevented over-deducting awarded points on full refunds following prior partial refunds.
* Feature: Added variation-level loyalty tier exclusivity support for variable WooCommerce products.
* Fix: Synchronized Pro settings schema keys for REST API limits and abuse protection.
* Fix: Fixed WordPress Multisite network activation detection for WooCommerce dependency.
* Fix: Synchronized Pro settings schema keys for birthday and anniversary milestones.

2026-07-25 - version 1.0.0
* Initial release with Freemius licensing, free loyalty features, and optional Pro upgrades.
