s2Member v260301 (Framework and Pro) was released on March 1st, 2026.


Unified Changelog for s2Member & s2Member Pro v260301

  • (Framework) Bug Fix: Fixed mismatched <label for=""> and <input id=""> attributes for checkbox/radio options in Custom Registration/Profile Fields; this also restores proper client-side validation for required checkbox/radio groups.

  • (Framework) Fix: Hardened the Edit User Profile screen on PHP 8+ to avoid errors if a user’s Auto-EOT time is stored as a date string (e.g. YYYY-MM-DD) rather than a Unix timestamp (as can happen after imports/migrations).

  • (Framework) Fix: Fixed PHP 8+ "Undefined array key" warnings related to membership level label constants (including guest/non-logged-in access label handling).

  • (Framework) Fix: Resolved an issue that prevented PayPal Buttons "Generate Button Code" from working in some installations.

  • (Framework) Fix: Some PayPal Checkout log entries were missing the environment (sandbox/live), and now include it to help with troubleshooting.

  • (Framework) Fix: PayPal Checkout webhooks can continue processing existing subscriptions even if new sales are switched back to PayPal Standard.

  • (Framework) Fix: PayPal Checkout webhooks now also handle refunds, reversals, and additional subscription lifecycle events, improving user EOT/access updates and subscription state handling.

    If you already had a PayPal Checkout webhook configured before this update, use the “Create/Update Webhook Automatically” button once after upgrading (Live and/or Sandbox as needed). Existing webhook events will continue working, but PayPal will not send the newly added event types until the webhook subscription is updated.

  • (Framework) Fix: Improved PayPal Checkout amount decimal normalization to prevent one-time payment validation mismatches.

  • (Framework) Fix: Updated PayPal Checkout webhook handling to prevent one-time payment captures from being processed as recurring payments.

  • (Framework & Pro) Fix: Prevent PHP 8.1+ deprecation warnings in gateway Pro-Forms and related checkout processing (Stripe, PayPal Pro, Authorize.Net), and in custom registration fields, by ensuring optional form/template values are cast to strings before escaping/processing.

  • (Framework) Security: Improved debug log sanitization (passwords, API secrets, auth credentials) and reduced post-registration plaintext password exposure.

  • (Framework) Improvement: PayPal Standard and PayPal Checkout cancellation buttons now use PayPal’s subscription management page when needed.

  • (Framework) Improvement: Better HTTPS detection in s2Member’s PayPal Checkout setup for sites using Cloudflare (or other reverse proxies), reducing false setup failures when enabling or configuring PayPal Checkout.

  • (Pro) Improvement: Hardened the Advanced Importer to normalize Auto-EOT values given as date strings (e.g. YYYY-MM-DD) into Unix timestamps when a date is used instead of the expected timestamp format.

  • (Pro) Improvement: PayPal Checkout buttons now support accept="card" in Pro button attributes, enabling card funding/guest checkout where PayPal makes it available.


Upgrading to the Latest Version

You should get a notification about the update in your admin area. WP Admin > Plugins

You can also download the zip file from your Account page, and upload it. WP Admin > Plugins > Add New > Upload