- (Framework & Pro) **Enhancement**: Added a new option to skip the domain validation for notifications from the payment gateways. This allows continued processing of incoming notifications even if the domain in the `custom` value doesn't match the current site's. Useful for subscriptions originated outside of s2Member, or under a different domain. The setting is available under: _WP Admin > s2Member > PayPal Options > PayPal IPN / Instant Payment Notifications_
- (Pro) **UI**: Added the recent IPN Signup Vars Fallback and new Skip Domain Validation to all the gateway options pages.
- (Framework) **Enhancement**: Added the site's language code when loading the reCaptcha.
- (Pro) **UI**: Added a page refresh after the Pro Updater finishes installing the latest Pro release, to update the WP Admin interface and not show the Pro Updater again.
- (Pro) **UI**: Added a page refresh after the Other Gateways options are saved, to update the WP Admin left menu.
- (Pro) **Enhancement**: Added optional fallback behavior for missing IPN Signup Vars during Stripe webhook processing. When enabled, s2Member will generate a makeshift IPN vars array if none are stored for the user. This helps support migrated or manually imported subscriptions. The setting is available under _s2Member Pro > Stripe Options > Stripe Webhook/IPN Integration_. See [thread 11334](https://f.wpsharks.com/t/11334).
- (Framework) **UI**: Removed admin notice about Easter promo for Pro add-on.
- (Framework) **Enhancement**: Added additional sanitation/validation to the Logs Viewer, although only Administrators have access to it.
- (Pro) **Enhancement**: Improved the new coupon code limit per user which prevents a user from applying a coupon code unlimited times, Instead of single use, it can now be limited to more uses, e.g. 3. It's been renamed from "User Once" to "User Max", max number of times a user can use that coupon. This is optional and leaving it blank will give the default "no limit".-
- (Pro) **Enhancement**: Improved validation of the template attribute in the s2Member-List-Search-Box shortcode.
- (Framework) **UI**: Temporary admin notice about Easter promo for Pro add-on at 20% off.
- (Pro) **Enhancement**: Improved coupon usage logging for better tracking.
- (Pro) **Enhancement**: Added a new single-use per user option for coupons. Thanks to Carl Borsani for sponsoring this.
- (Pro) **Enhancement**: Coupons can now be limited to specific pro-forms. Thanks to Carl Borsani for sponsoring this.
- (Framework) **Fix**: s2Get can now handle s2Member’s custom profile fields. Thanks to Gerard Earley for reporting this.
- (Framework) **Fix**: Updated the admin notice about the PayPal button encryption setting.
- (Pro) **Enhancement**: Improved data handling in the Remote Operations API. Props to István.
- (Pro) **Enhancement**: Improved validation of the template attribute in pro-forms and s2Member-List shortcodes. Props to István.
- (Framework & Pro) **Fix**: An error could happen on PHP8 during Pro activation. Fixed in this release.
- (Framework) **Enhancement**: s2Get shortcode can now be used to show s2's current user constants. E.g. `[s2Get constant="S2MEMBER_CURRENT_USER_DISPLAY_NAME" /]` _WP Admin > s2Member > API / Scripting > s2Member PHP/API Constants_
- (Framework) **Fix**: Some sites were getting a warning from v240315's restriction improvement when the WP REST request doesn't include a type or ID. Fixed in this release.See [thread 11347](https://f.wpsharks.com/t/11347)
- (Pro) **Enhancement**: Checkout success redirection URLs are now validated as safe with WordPress' _wp_validate_redirect_. To use a domain different than the site's, it can be allowed with wp's filter [allowed_redirect_hosts](https://developer.wordpress.org/reference/hooks/allowed_redirect_hosts/).
- (Framework) **Enhancement**: Additional validation to prevent an invalid s2Member Level role during registration.
- (Framework) **Enhancement**: Improved access restrictions applied to WP REST requests.