Title: s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls &amp; Member Access Subscriptions
Author: Cristián Lávaque
Published: <strong>মাৰ্চ 22, 2010</strong>
Last modified: এপ্ৰিল 10, 2026

---

প্লাগিনৰ সন্ধান কৰক

![](https://ps.w.org/s2member/assets/banner-772x250.png?rev=1100536)

![](https://ps.w.org/s2member/assets/icon-256x256.png?rev=980067)

# s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions

 [Cristián Lávaque](https://profiles.wordpress.org/clavaque/)-ৰ দ্বাৰা

[ডাউনল’ড কৰক](https://downloads.wordpress.org/plugin/s2member.260410.zip)

 * [বিশদ বিৱৰণ](https://as.wordpress.org/plugins/s2member/#description)
 * [পৰ্য্যালোচনা](https://as.wordpress.org/plugins/s2member/#reviews)
 *  [ইনষ্টলেশ্যন](https://as.wordpress.org/plugins/s2member/#installation)
 * [বিকাশ](https://as.wordpress.org/plugins/s2member/#developers)

 [সাহায্য](https://wordpress.org/support/plugin/s2member/)

## বৰ্ণনা

❤️ **Excellent membership plugin!** Over 15 years of experience, development, releases…
Still going and growing!

**Start your membership profits!** Build your tribe, gather your followers, enroll
your students, bring in your clients!

💵 Enjoy the benefits of getting paid repeatedly for access to your site!

⭐⭐⭐⭐⭐ _**Brilliant** “So glad I found this. It works brilliantly for our needs…
love the seamless integration with PayPal. Everything we need. Thank you so much
for creating this!” –[zarverk2000](https://wordpress.org/support/topic/brilliant-1268/)_

#### The best way to make money from your WordPress site!

🤩 Sell **unlimited memberships**, turn free subscribers into members (_subscriber
to member  s. 2 member  s2Member_), with a single payment or recurring payments 
subscriptions.

**Easy and quick to use.** Protect your membership content in a moment, and a moment
later be ready to get payments for member access!

**Easy to configure and very flexible.** Protect the whole site, nothing, or just
parts, even member files for paid downloads!

👉 Install s2Member now and **make money!** 😀

⭐⭐⭐⭐⭐ _**So much capacity & great support** “I’m a novice and was able to quickly
figure it out. When I got stuck I go to the support forum and Cristian is there 
with a quick answer to get me going again.” –[blueruck](https://wordpress.org/support/topic/so-much-capacity-great-support/)_

⭐⭐⭐⭐⭐ _**The very best plugin and support service** “Great plugin, neat, easy
to configure, and with interesting security features. A special mention to Cristian
whose support is awesome, fast, clear even to free members like myself” –[aflorarte](https://wordpress.org/support/topic/the-very-best-plugin-and-support-service/)_

**Packed with features**, but not required to use them all, just those you want.
Some of them:

➡️ Member user levels and custom access capabilities
 ➡️ Membership content protection(
post, page, category, tag, etc) ➡️ Protect anything served by WP (post types, URLs)
➡️ Member file protection (sell downloads) ➡️ Prevent member account sharing (limit
IPs, simultaneous logins) ➡️ Protect accounts (limit failed login attempts) ➡️ Cool
security/trust badge with your domain ➡️ PayPal Standard buttons for membership 
payments (more in Pro) ➡️ Automatic member access demotion at end of paid access
time ➡️ Tracking software integration (affiliates, etc) ➡️ Email list services (
Mailchimp, etc) ➡️ Notifications (signups, payments, etc) ➡️ Integrate with bbPress,
BuddyPress for member communities ➡️ Compatible with any well coded theme (Elementor,
Divi, etc) ➡️ Customize the WP login/registration look ➡️ Custom redirection after
member login ➡️ Create custom profile fields for member accounts ➡️ Customize the
user welcome email ➡️ And more!

👉 Install and start using s2Member now! 🤩

⭐⭐⭐⭐⭐ _**Very Powerful Membership Plugin** “This membership plugin does a lot
and has many, many configuration options to achieve whatever you want… I received
extremely quick and reliable support.” –[liltrucks](https://wordpress.org/support/topic/very-powerful-membership-plugin/)_

⭐⭐⭐⭐⭐ _**Simple, Compatible, Secure, and Versatile!** “We are seriously impressed
with this plugin and we highly recommend it… We have not found ANY limitations to
what we are trying to accomplish… a very smooth process… straight-forward and user-
friendly!… exceeded our expectations!” –[tips4gamers](https://wordpress.org/support/topic/simple-compatible-secure-and-versatile/)_

⭐⭐⭐⭐⭐ _**Excellent plugin** “This plugin does everything it says on the box.
It does it well… the functionality is absolutely spot on. The developers/maintainers
are also active and helpful. Totally recommended!” –[richardfoley](https://wordpress.org/support/topic/excellent-plugin-5188/)_

⭐⭐⭐⭐⭐ _**Best Membership Plugin I’ve Used** “I switched to s2 Member around
3 years ago after trying a few plugins. I found these other plugins inflexible and
difficult to configure… Well worth investigating if you want a robust membership
solution.” –[rnwhalley](https://wordpress.org/support/topic/best-membership-plugin-ive-used/)_

🤖 Not needed to know any PHP code or be a developer. Only code needed is copy-paste
wp shortcodes, like for the paypal buttons… But is also developer-friendly to customize
your installation if wanted.

#### Some reasons to get s2Member Pro

✅ Membership content dripping
 ✅ Stripe, PayPal Pro, Authorize.Net, ClickBank 
✅ On-site one-step checkout with pro-forms (Stripe, PayPal, Auth.Net) ✅ Unlimited
membership levels ✅ Membership renewal reminder emails ✅ Single-step member registration
and payment with pro-forms ✅ Custom redirection after payment ✅ Coupon codes and
gift/redemption codes ✅ Custom member offer redirections after login ✅ Pro API
for new integrations ✅ Public members directory ✅ Members bulk import/update/exporter
✅ Multisite network support ✅ Login and registration forms to use in pages/posts
👉 [Click here for more](https://s2member.com/features/) 🙂

⭐⭐⭐⭐⭐ _**The Best Membership Plugin** “I have built with most Membership plugins
and literally dozens using S2 Pro and I can tell you, bar none it is the best of
all of them. Extremely powerful, anything you might want to do it can do… I highly
recommend you try it out.” –[antwoords](https://wordpress.org/support/topic/the-best-membership-plugin-5/)_

⭐⭐⭐⭐⭐ _**Excellent plugin & top support** “We’ve used s2member pro on a few
projects now & find it has met all our membership needs. Most impressive has been
the support. Excellent communication, knowledgeable, friendly and super patient 
🙂” –[aaee6](https://wordpress.org/support/topic/excellent-plugin-top-support-3/)_

⭐⭐⭐⭐⭐ _**Awesome Support** “I’ve been using s2Member for 9 years… Amazing support
of a high-end plugin and much appreciated. This is one of the reasons I stick with
s2Member. Support has always been great!” –[graphichome](https://wordpress.org/support/topic/awesome-support-712/)_

⭐⭐⭐⭐⭐ _**Wonderful Support** “Above and beyond. I’ve used this plugin for over
ten years with various clients and whenever I need help, they’ve helped find a solution.”–
[germars](https://wordpress.org/support/topic/wonderful-support-68/)_

The free s2Member Framework integrates with PayPal Website Payments Standard (also
free). Sell “Buy Now” or Membership access to your site. Restrict access to Roles,
Capabilities, Posts, Pages, or anything else in WordPress.

Protect your WordPress Posts, Pages, Tags, Categories, URIs, BuddyPress, bbPress,
and even portions of content within Posts, Pages, themes, plugins. **Easily configurable
and highly extensible.** You can even protect downloadable files and streaming audio/
video. Store files locally, or use s2Member’s integration with Amazon S3/CloudFront.

s2Member is powered almost entirely by WordPress shortcodes, making advanced integrations
quick and easy. Sell recurring (or non-recurring) subscriptions with lots of flexibility.
Or sell “Buy Now” membership access in various ways. You can also sell specific 
Posts/Pages, sell member access to file downloads, or sell members Custom Capabilities
that provide highly configurable access to specific portions of your content.

👉 Install now s2Member and **start making money!** 😀

## স্ক্ৰীনশ্বট

 * [[
 * s2Member Screenshot #1
 * [[
 * s2Member Screenshot #2
 * [[
 * s2Member Screenshot #3
 * [[
 * s2Member Screenshot #4
 * [[
 * s2Member Screenshot #5
 * [[
 * s2Member Screenshot #6
 * [[
 * s2Member Screenshot #7

## ইনষ্টলেশ্যন

**NOTICE:** For help with s2Member Pro, please use [our forum](http://s2member.com/r/forum/).

#### s2Member is very easy to install

Just like any other normal plugin:

 * From the WP Admin’s [Plugins Add New Screen](https://wordpress.org/support/article/plugins-add-new-screen/).
 * Or via FTP upload the `s2member` folder from the zip to your `/wp-content/plugins/`
   directory.
 * Activate it from **Plugins** page in your WordPress Admin.

Here’s a [quick-start video](https://www.youtube.com/watch?v=qlKn-I-0W6U) for a 
simple basic setup to get you started.

#### See also

[Detailed installation/upgrade instructions](http://s2member.com/installation/).

#### Is s2Member compatible with Multisite Networking?

Yes, requires s2Member Pro for Unlimited Sites. After you enable Multisite Networking,
with s2Member Framework and Pro active, navigate to `s2Member  Multisite (Config)`
in the Dashboard on your Main Site.

## সঘনাই উত্থাপিত প্ৰশ্ন

**NOTICE:** For help with s2Member Pro, please use [our forum](http://s2member.com/r/forum/).

### Is s2Member compatible with Multisite Networking?

Yes, s2Member Pro for Unlimited Sites is compatible with Multisite Networking. After
you enable Multisite Networking, with s2Member Framework and Pro enabled, navigate
to `s2Member  Multisite (Config)` in the Dashboard on your Main Site.

### Where can I find more information?

 * s2Member FAQs: [http://s2member.com/faqs/](http://s2member.com/faqs/)
 * Knowledge Base: [http://s2member.com/kb/](http://s2member.com/kb/)
 * Video Tutorials: [http://s2member.com/videos/](http://s2member.com/videos/)
 * Community: [http://s2member.com/r/forum/](http://s2member.com/r/forum/)
 * Codex: [http://s2member.com/codex/](http://s2member.com/codex/)

### Translating s2Member

Please see: [http://s2member.com/r/translations/](http://s2member.com/r/translations/)

## পৰ্য্যালোচনা

![](https://secure.gravatar.com/avatar/5680eb3b445fe1f87ecf3971964e28128f82a804d6dd2ab97206b1680512f831?
s=60&d=retro&r=g)

### 󠀁[True professional](https://wordpress.org/support/topic/true-professional/)󠁿

 [belindaj](https://profiles.wordpress.org/belindaj/) এপ্ৰিল 17, 2026 1টা প্ৰত্যুত্তৰ

I need a lot more than 5 stars to properly review s2member. I took on a project 
from a previous web host and it has been my first and so far only experience with
this member plugin. Just from lack of personal experience I was tempted to try to
rebuild the existing user system using other plugins and apps that I had more knowledge
of – but at the same time it housed a large existing member database and I wanted
to try to work within the existing framework if possible. I was having a lot of 
trouble accomplishing what I needed to work and asked for assistance through s2 
support and I am so impressed with the level of professionalism, prompt response,
ease of understanding the needs I had, and basically – meeting me on my level. I
really cannot express enough appreciation for this level of support. I feel like
Cristián is now a true colleague that I can continue to bring issues to and maybe
in some small way I’ll even contribute to future s2member enhancements to this already
extremely powerful member plugin.

![](https://secure.gravatar.com/avatar/22a2e9f2a45578bb6630b82663d8b9106ba480b5c683cd674020f4634667b398?
s=60&d=retro&r=g)

### 󠀁[Support in 2026 is still great](https://wordpress.org/support/topic/support-in-2026-is-still-great/)󠁿

 [leoravera](https://profiles.wordpress.org/leoravera/) মাৰ্চ 22, 2026 1টা প্ৰত্যুত্তৰ

The plugin is still working very well, you can do almost anything, especially using
shorcodes and the “if” function. Cristian is actively working on the plugin, and
provides a great support. Other plugins I used have become more expensive and the
support is a nightmare, while is so easy to get in touch with Cristián Lávaque. 
5 star for me, I’m happy I discovered this plugin many years ago and that it’s still
supported and woking very well!

![](https://secure.gravatar.com/avatar/ecdb38b9bc63920a5fa01f4d4f84ae5c5a8615fec21031daf76b10d1cee60d1a?
s=60&d=retro&r=g)

### 󠀁[Absolutely fantastic support](https://wordpress.org/support/topic/absolutely-fantastic-support-6/)󠁿

 [paul16f1](https://profiles.wordpress.org/paul16f1/) ফেব্ৰুৱাৰী 21, 2026 1টা প্ৰত্যুত্তৰ

Cristian got back to me super quick and resolved my problem.Unusual to have such
great customer service.It is a great plugin and so versatile.thanks Cristian

![](https://secure.gravatar.com/avatar/a336f3f8c4b03c2a2eba72fdb369b2a6a97d57a839d1d3f453cc8ef7dee4df21?
s=60&d=retro&r=g)

### 󠀁[This plugin and support are awesome](https://wordpress.org/support/topic/this-plugin-and-support-are-awesome/)󠁿

 [kemmieg](https://profiles.wordpress.org/kemmieg/) অক্টোবৰ 22, 2025 1টা প্ৰত্যুত্তৰ

I have been using this plugin for a couple of my websites and it’s a great plugin.
The support for this plugin is A1. They have been more than helpful in getting me
pointed in the right direction and getting my issues resolved in a timely manner.
I would recommend this plugin to anyone looking for a very robust membership plugin.

![](https://secure.gravatar.com/avatar/1497ef6ab1414384fca8c133867a28a2b6a1d3e846b519de0410cbd89860e14b?
s=60&d=retro&r=g)

### 󠀁[Great product, great support!](https://wordpress.org/support/topic/great-product-great-support-219/)󠁿

 [diegomane](https://profiles.wordpress.org/diegomane/) আগষ্ট 12, 2025 1টা প্ৰত্যুত্তৰ

Highly recommended!

![](https://secure.gravatar.com/avatar/861b73cbe55d6a879c2e8d3445990464eccc070160e452198a2df10fa7f41ef1?
s=60&d=retro&r=g)

### 󠀁[Quick response, very helpful](https://wordpress.org/support/topic/quicky-response-very-helpful/)󠁿

 [ollyw](https://profiles.wordpress.org/ollyw/) আগষ্ট 10, 2025 1টা প্ৰত্যুত্তৰ

Had an issue where s2member PayPal buttons were causing a strange intermittent error.
Cristian responded promptly to my s2member Pro support request and with his help
we sorted the problem. Very grateful :).

 [ আটাই 234টা পৰ্য্যালোচনা পঢ়ক ](https://wordpress.org/support/plugin/s2member/reviews/)

## অৱদানকাৰী আৰু বিকাশকাৰীসকল

“s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls&
Member Access Subscriptions” হৈছে মুক্ত উৎসৰ ছফ্টৱেৰ। এইসকল লোকে এই প্লাগিনত অৱদান
আগবঢ়াইছে।

অৱদানকাৰীসকল

 *   [ Cristián Lávaque ](https://profiles.wordpress.org/clavaque/)
 *   [ WebSharks ](https://profiles.wordpress.org/websharks/)
 *   [ JasWSInc ](https://profiles.wordpress.org/jaswsinc/)
 *   [ Raam Dev ](https://profiles.wordpress.org/raamdev/)
 *   [ Eduardo Lavaque ](https://profiles.wordpress.org/eduan/)

“s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls&
Member Access Subscriptions” 2টা ভাষাত অনুবাদ কৰা হৈছে। [অনুবাদকসকল](https://translate.wordpress.org/projects/wp-plugins/s2member/contributors)
ক তেওঁলোকৰ অৱদানৰ বাবে ধন্যবাদ।

[আপোনাৰ ভাষাত “s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions” অনুবাদ কৰক।](https://translate.wordpress.org/projects/wp-plugins/s2member)

### বিকাশৰ প্ৰতি আগ্ৰহী?

[ক’ড ব্ৰাউজ কৰক](https://plugins.trac.wordpress.org/browser/s2member/), [SVN ৰিপজিটৰী](https://plugins.svn.wordpress.org/s2member/)
চাওক নাইবা [RSS](https://plugins.trac.wordpress.org/log/s2member/?limit=100&mode=stop_on_copy&format=rss)-
দ্বাৰা [বিকাশৰ পঞ্জী](https://plugins.trac.wordpress.org/log/s2member/) ছাবস্ক্ৰাইব
কৰক।

## সলনি-পঞ্জী

#### v260410

 * (Framework) **Fix:** Reduced the upfront requirements for processing PayPal Standard`
   subscr_cancel` IPNs so valid cancellations are not ignored when supporting values
   are missing, stale, or non-membership-specific.
 * (Framework) **Fix:** Prevent incorrect s2Member notifications in some PayPal 
   Checkout cases where several webhooks are received about the same subscription.
 * (Framework) **Fix:** Prevent duplicate processing and notifications when PayPal
   sends both a webhook and an IPN for the same PayPal Checkout subscription payment.
 * (Framework) **Fix:** Added subscription modification cancellation support to 
   the Framework, which was previously only available in the Pro addon.
 * (Pro) **Fix:** Made subscription modification cancellation gateway-aware, preventing
   orphaned active subscriptions when a member starts a replacement subscription
   through a different gateway.
 * (Pro) **Fix:** Prevented rare cases where subscription modification processing
   could cancel the newly created subscription by mistake.
 * (Pro) **Fix:** Improved Stripe customer lookup during checkout retries by falling
   back to email when the stored Stripe customer ID is missing, stale, or no longer
   retrievable.

#### v260325

 * (Framework) **Fix:** Improved PayPal Checkout webhook idempotency to prevent 
   duplicate processing during repeated/concurrent webhooks, while preserving normal
   behavior.
 * (Framework) **Fix:** Resolved a PayPal IPN issue where some `subscr_cancel` notifications
   were ignored because the cancellation handler failed before it had fully identified
   the recurring subscription.
 * (Framework) **Improvement:** Added IPN Signup Var lookups for missing PayPal 
   cancellation IPN values like `period1`, `period3`, `item_number`, `item_name`,
   and `payer_email`, preventing valid `subscr_cancel` notifications from being 
   ignored.
 * (Framework) **Improvement:** Moved s2Member’s translation files to `/languages`,
   following the WordPress standard, and updated `.mo` loading to support that directory
   while continuing to support the standard and legacy WordPress locations.
 * (Framework) **Improvement:** Hardened PayPal Standard IPN endpoint response handling
   and added debug logging for hosts/security layers that incorrectly return HTTP
   403 after successful processing.
 * (Framework) **Enhancement:** Added `ukpostcode` as an expected-value option for
   Custom Registration/Profile Fields, with matching server-side and client-side
   validation for UK postcode input. The validation is designed to be reasonably
   broad, including standard UK formats and related special cases. Thanks to Gerard
   Earley for contributing the patch. See [thread 12200](https://f.wpsharks.com/t/12200)
 * (Framework) **Enhancement:** Added a new **General Options > s2Get Shortcode**
   setting to allow `user_id` for whitelisted user fields, defaulting to current-
   user. Also updated the s2Get KB article accordingly.
 * (Pro) **Fix:** Updated Stripe card charge and PaymentIntent requests to use `
   statement_descriptor_suffix` instead of `statement_descriptor`, fixing card-payment
   errors where Stripe no longer accepts `statement_descriptor` for card payments.
 * (Pro) **Fix:** Corrected Stripe subscription checkout so resumed PaymentIntent
   flows no longer go through the wrong intent-status handler.
 * (Pro) **Fix:** Stripe now stops cleanly after card declines, instead of continuing
   into secondary intent/payment-method errors.
 * (Pro) **Fix:** Improved Stripe recurring-payment setup to better support future-
   charge authorization requirements, fixing failures in countries with stricter
   payment rules, including India.
 * (Pro) **Fix:** Stripe now updates recurring default payment methods only after
   a successful intent result, instead of earlier in checkout.
 * (Pro) **Fix:** Billing-update SetupIntent creation failures in Stripe now return
   the proper error response.
 * (Pro) **Fix:** Prevent duplicate/retried Stripe webhook events from being processed
   more than once, including near-simultaneous retries of the same Stripe event 
   ID
 * (Pro) **Fix:** prevent Stripe billing modification/replacement from triggering
   EOT behavior for the cancelled old subscription while s2Member is still updating
   the member account with the new subscription.
 * (Pro) **Fix:** Removed a trailing-comma syntax issue in Stripe subscription update
   code that could cause PHP compatibility errors on older supported PHP versions.
 * (Pro) **Fix:** s2Member now cleans up incomplete subscriptions left behind by
   failed 3D Secure authentication attempts during Stripe checkout, and gives the
   customer a more clear payment failure message.
 * (Pro) **Improvement:** Added dedicated s2 Stripe log entries for non-fatal failures
   while updating the default payment method after successful intent completion.

#### v260312

 * (Framework) **Fix:** Prevent a PHP 8.1+ deprecation notice from appearing above
   the admin Users table in some cases.
 * (Framework) **Security:** Improved debug log sanitization.
 * (Framework) **Improvement:** PayPal Checkout credential test and OAuth failure
   log entries now include client_len_hash / secret_len_hash values (length_hash,
   e.g. 80_4d9a7c1b2e8f4a21) to help compare attempted credentials during troubleshooting
   without exposing raw values.
 * (Framework) **Enhancement:** Added a new _No-Cache Headers Behavior_ option under
   _General Options > Performance & Caching_, making no-cache behavior configurable
   from the admin UI. It includes:
    - `Always` mode, the legacy safe default that prevents caching site-wide in 
      case user-conditional output appears.
    - `Selective` mode, which was previously available only through a filter and
      may improve caching for guests, but can miss some runtime no-cache triggers.
    - The new `Evaluative` beta mode, which evaluates the page with more runtime
      information and may allow more pages to be cached safely for guests.
    - An optional debug header to help troubleshoot no-cache behavior.
 * (Framework) **UI:** Clarified the Download Options text to explain that unique
   download limits are counted in the last X days (rolling window), reducing confusion
   about whether the limit resets on fixed calendar dates.
 * (Framework) **UI**: Improved the PayPal Checkout credentials test failure message.
 * (Framework) **UI:** Fixed the PayPal button encryption admin notice so that it
   shows only to administrators in the WP Admin area, not non-admin users.

#### 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.
 * (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.

#### v260215

 * (Framework) **Bug Fix:** Prevent PHP fatal error when multiple PayPal Checkout
   buttons appear on the same page (PHP 8+).
 * (Framework) **Bug Fix:** PayPal Checkout admin actions (Test Credentials / Webhook/
   Clear Cache) now submit via POST instead of redirecting (avoids “headers already
   sent” warnings).
 * (Framework) **Bug Fix:** PayPal cancellation notifications now backfill missing
   membership mapping fields (`item_number`, `item_name`, `period1`, `period3`) 
   from stored IPN Signup Vars using the subscription ID ( `recurring_payment_id`/`
   subscr_id` ), so Auto-EOT is set correctly on cancel.
 * (Framework) **Bug Fix:** Auto-EOT PayPal status checks now query PayPal Checkout
   subscriptions via PayPal’s REST Subscriptions API (instead of PayPal’s legacy“
   Recurring Payments” API), preventing “11592” errors and allowing Auto-EOT to 
   detect inactive PayPal Checkout subscriptions.
 * (Framework) **Security:** PayPal Checkout webhook environment inference now validates
   the `paypal-cert-url` host before using it (hardens environment inference used
   during verification).
 * (Framework) **Security:** PayPal Checkout cancel redirect now validates the destination
   URL and safely falls back to the site home URL.
 * (Framework) **Security:** PayPal Checkout tokens now use s2Member’s hardened 
   unserialize routine.
 * (Framework) **Security:** Harden unserialization of stored custom capabilities
   metadata when loading user access rules.
 * (Framework) **Security:** Harden the registration password handler.
 * (Framework) **Improvement:** Harden PayPal Checkout endpoint behavior on problematic
   hosts; return consistent JSON errors (HTTP 500) on notify-proxy failures.
 * (Framework) **Improvement:** Harden PayPal Checkout REST API/webhook handling
   for network failures and unexpected/non-JSON responses (avoids PHP 8+ warnings).
 * (Framework) **Improvement:** PayPal Checkout webhook setup now treats “no change”
   updates and existing webhook URLs as success (adopts the existing webhook ID 
   automatically).
 * (Framework) **Improvement:** PayPal Checkout webhook signature verification now
   auto-detects Sandbox vs Live from inbound headers (so webhooks validate correctly
   even if the site’s current environment setting differs).
 * (Framework) **Improvement:** PayPal Checkout logging now includes `env_setting`(
   site setting) and `env_webhook` (inferred from inbound webhook headers) for clearer
   Sandbox/Live environment troubleshooting.
 * (Framework) **Improvement:** PayPal Checkout webhook idempotency cache (event/
   txn transients) now retains entries for 1 year (reduces long-term option bloat
   while preserving replay protection).
 * (Framework) **Improvement:** s2Member’s PayPal “Unsubscribe” button links to 
   PayPal’s subscription management page, and with the new PayPal Checkout integration,
   when `output="button"` and a PayPal subscription ID is present, s2Member will
   attempt to cancel the subscription directly.
 * (Framework) **UI:** Add a description for `paypal-checkout.log` in the Log Viewer
   dropdown (so it’s not “No description available”).
 * (Pro) **Improvement:** PayPal Checkout buttons now support `accept="card"` to
   enable guest debit/credit card payment in the PayPal-hosted checkout experience
   when available (availability depends on PayPal settings/eligibility and browser
   privacy protections).

#### v260127

 * (Framework) **PayPal Enhancement**: Modernized s2Member’s PayPal integration 
   by adding support for PayPal Checkout with their latest REST APIs, Smart Buttons,
   and webhook event handling. This release introduces PayPal’s current Checkout
   platform as an optional, reliable alternative to the legacy PayPal Standard buttons.
   Existing s2Member PayPal button shortcodes continue to work as-is (no edits required).
   See: _WP Admin > s2Member > PayPal Options > PayPal Checkout (Beta)_. Thanks 
   to the beta testers, especially Sim Architect.

#### v260101

 * (Framework) **Security**: Improved sanitization and normalization of attribute
   values for the s2Eot, s2Strem and s2Member-Security-Badge shortcodes.
 * (Framework) **Security**: Improved sanitization of replacement values for confirmation
   and notification emails.

#### v251005

 * (Framework) **Security**: Improved sanitization for Tracking API replacement 
   values.
 * (Framework) **Fix**: Use the site URL host instead of HTTP_HOST for proxy key
   when Skip Domain Check is enabled.
 * (Framework) **Fix**: Ensure the Fallback IPN Signup Vars provide a valid item_number
   for cancellation handling.

#### v250905

 * (Framework) **Security**: Improve handling of registration fields in multisite.
 * (Framework & Pro) **UI**: Add a Help panel with contact form to all admin pages.

#### v250701

 * (Framework & Pro) **Enhancement**: s2Member now supports sending emails in HTML
   format, allowing for richer, styled messages with formatting, links, and branding.
   You can enable this feature under _General Options > Email Configuration > Enable
   HTML Emails_. When disabled, emails continue to use plain text as before. This
   feature is currently in beta, so feedback is welcome!

#### v250607

 * (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.

#### v250525

 * (Framework & Pro) **Fix**: Some translations were being applied too early, causing
   PHP notices since WP 6.7. Now all translations are only loaded at the `init` 
   hook or later. See [thread 12813](https://f.wpsharks.com/t/12813)

#### v250511

 * (Framework) **Fix**: Improved the admin notices handler to prevent a PHP 8.1+
   error in rare cases when the data wasn’t an array as expected.
 * (Framework) **Enhancement**: Added sanitization to the admin notices handler 
   for improved safety.
 * (Framework & Pro) **Fix**: Updated all uses of preg_split() with `-1` instead
   of `NULL` as the limit to prevent PHP 8.1+ deprecation warnings.
 * (Pro) **Fix**: Fixed an s2Member-List database query with a typo that prevented
   some custom searches from working as expected.
 * (Pro) **Fix**: Removed a check in Stripe pro-forms that blocked using the same
   details for trial and regular payments for subscriptions. See [thread 12818](https://f.wpsharks.com/t/12818).

#### v250502

 * (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.

#### v250424

 * (Framework) **Enhancement**: Added additional sanitation/validation to the Logs
   Viewer, although only Administrators have access to it.

#### v250419

 * (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.

#### v250214

 * (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.

#### v241216

 * (Framework) **Enhancement**: Added extra attribute validation to the s2Get shortcode.
   Props to wcraft.
 * (Framework) **Enhancement**: Improved New User email preparation before send.
   Props to Hakiduck.

#### v241114

 * (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_

#### v240325

 * (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.

#### v240315

 * (Framework) **Enhancement**: Improved access restrictions applied to WP REST 
   requests.

#### v240218

 * (Framework) **Fix**: PayPal button encryption default changed to “disabled”.
 * (Framework) **Fix**: Mailchimp interest groups integration wasn’t working correctly
   all the time. Fixed in this release.

#### v230815

 * (Framework) **Fix**: Added some missing functions to the list of conditionals
   allowed by default for s2If (e.g. `current_user_days_to_eot_less_than`, `current_user_gateway_is`).
   See also: https://s2member.com/kb-article/s2if-simple-shortcode-conditionals/#
   toc-5bb69568
 * (Pro) **Enhancement**: New s2If whitelist option for custom conditional functions
   to be allowed. _s2Member Pro > Restriction Options > Simple Shortcode Conditionals
   > Whitelist_
 * (Framework) **Enhancement**: Handle s2If conditional problems more gracefully.
   Instead of giving an error that prevents loading the rest of the page, it now
   just doesn’t display that s2If’s block, and enters a message in the error log(
   e.g. `/wp-content/debug.log`).
 * (Framework & Pro) **Enhancement**: Prevent output from s2If conditions, only 
   _true_ or _false_.
 * (Framework) **UI**: Update the Mailchimp example from `Group Title` to `Group
   Category`, to match Mailchimp’s current name in their settings. _s2Member > API/
   List Servers > Mailchimp_

#### v230808

 * (Framework) **Fix**: Potential security issue under rare circumstances. Fixed
   in this release.
 * (Framework) **Fix**: Mailchimp’s groups/interests were not transitioning correctly
   with the updated integration. Fixed in this release.
 * (Framework) **UI**: Added a notice about PayPal giving trouble with encrypted
   buttons recently, recommending to not encrypt them for now. You may need to disable
   button encryption, and allow non-encrypted payments. _s2Member > PayPal Options
   > Account Details > Button Encryption_
 * (Framework) **UI**: Brought back the “Expand All” and “Collapse All” buttons 
   for the admin panels. See [thread 10796](https://f.wpsharks.com/t/10796)
 * (Framework) **UI**: Updated the link to the PayPal IPN configuration.
 * (Framework) **UI**: Added link to PayPal’s IPN History page. _s2Member > PayPal
   Options > PayPal IPN > More Information_
 * (Pro) **Fix**: Stripe’s billing update pro-form gave an error sometimes. Fixed
   in this release. See [thread 10752](https://f.wpsharks.com/t/10752)

#### v230530

 * (Framework) **Enhancement**: Updated the Mailchimp integration to v3 of their
   API. I made it so you shouldn’t need to change anything, it should work with 
   your existing configuration. Still worth doing a test or checking that things
   are normal after the update, and report any issues you notice. See: [thread 10666](https://f.wpsharks.com/t/10666)

#### v230504

 * (Pro) **Fix**: Stripe subscriptions weren’t using customer cards updated with
   the Billing Update pro-form. The subscription saved the first card, instead of
   defaulting to the card in the customer’s profile. This release fixes that. The
   card is not added to a new subscription anymore, only to the customer’s profile,
   and updating his profile’s card with the Billing Update pro-form, will also update
   the subscription so it uses it. Thanks to Jim Antonucci for his help with this.
 * (Pro) **Enhancement**: The Stripe Billing Update pro-form now includes a field
   for the cardholder’s name (i.e. Name On Card). Adding the name to the card will
   improve successful subscription charges. Thanks to Andy Johnsen for the idea.

#### v230425

 * (Framework) **Fix**: Fixed domain name format validation for custom profile fields.
 * (Framework) **Fix**: Fixes to markdown parser for PHP8 compatibility.
 * (Framework) **Fix**: Fixed HTML near AWeber’s API key field.

#### v230413

 * (Pro) **Bug Fix**: An error could happen on PHP8 during Pro installation in a
   multisite network. Fixed in this release.
 * (Framework) **Bug Fix**: An error could happen on PHP8 when saving an edited 
   user profile. Fixed in this release.
 * (Framework) **UI Enhancement**: In the List Servers admin page, removed mentions
   of the AWeber email parser, which isn’t available any more.

#### v221103

 * (Framework) **Bug Fix**: Removed latest changes to gateway notification and return
   handlers, that were causing difficulties with member access in some scenarios.

#### v221031

 * (Framework) **Bug Fix**: Fix PayPal IPNs being ignored because a bug in the last
   release. After updating to this release, you may want to [review your latest IPNs](https://www.paypal.com/merchantnotification/ipn/history)
   since updating to v221028, and re-send them from PayPal. See [thread 10208](https://f.wpsharks.com/t/10208)

#### v221028

 * (Framework) **Fix**: Initialized some array keys to prevent PHP warnings in PayPal
   notify and return files. Thanks Greg M. for your help.
 * (Framework) **UI**: Widened the Logs viewer. Thanks Sim. See [thread 10064](https://f.wpsharks.com/t/10064)
 * (Framework) **UI**: Framework auto-update is now allowed when Pro add-on installed.
 * (Pro) **UI**: The Pro updater now shows when a newer version available, not just
   when required.

#### v220925

 * (Pro) **UI Enhancement**: In ClickBank Options admin page, added note about keeping
   IPN encryption disabled.
 * (Pro) **Enhancement**: Removed ClickBank’s name from the notify, return, and 
   success URLs, replaced with just `cb`. Kudos to Eduardo for telling me about 
   this. See [thread 9910](https://f.wpsharks.com/t/9910)
 * (Pro) **Enhancement**: Added a PayPal payment request ID to help prevent random/
   rare PayPal duplicate charges. Kudos to Nathan for his help. See [thread 7999](https://f.wpsharks.com/t/7999/27)
 * (Framework) **UI Enhancement**: Admin page panels widened for larger displays.
 * (Framework) **UI Enhancement**: Simplified Getting Started and Getting Help admin
   pages.
 * (Framework) **UI Enhancement**: In PayPal Options admin page, updated paths and
   links to PayPal settings.
 * (Framework) **Bug Fix**: Removed the Security Badge’s link to the old Flash powered
   page on s2Member’s site.
 * (Pro) **UI Enhancement**: Small improvements to the Pro upgrader.

#### v220809

 * (Framework) **Enhancement**: New `current_user_days_to_eot_less_than` function
   for conditionals. Useful when you want to show a message to a user on his last
   days of access before the EOT time in his profile. E.g. `[s2If current_user_days_to_eot_less_than(
   31)]Please renew your membership[/s2If]`. Kudos to Felix for his help, see [post 6783](https://f.wpsharks.com/t/6783).

#### v220421

 * (Framework & Pro) **Enhancement**: Improved PHP compatibility to 8.1.
 * (Framework) **UI Fix**: `More Updates` link fixed.

#### v220318

 * (Framework) **Enhancement**: New `current_user_gateway_is` function for conditionals.
   Useful for sites using more than one gateway. E.g. `[s2If current_user_gateway_is(
   stripe)] ...`
 * (Pro) **UI Fix**: Removed “Image Branding” setting from s2’s Stripe options, 
   not used in current integration.

#### v210526

 * (s2Member Framework & Pro) **UI Enhancement**: Started improving the admin interface.
   Lightened up the colors, and changed the layout a little bit.
 * (s2Member Framework) **UI Enhancement**: Added title tag to buttons to manage
   custom profile fields in admin, to improve use with screen-reader. [Thread 8836](https://f.wpsharks.com/t/8836/12)
 * (s2Member Pro) **UI Fix**: Fixed typo in pro-form `rrt` attribute description.
   [Issue 1204](https://github.com/wpsharks/s2member/issues/1204)
 * (s2Member Framework) **Bug Fix**: Registration Date sometimes wasn’t formatted
   correctly with the s2Get shortcode. [Thread 8730](https://f.wpsharks.com/t/8730)

#### v210208

 * (s2Member Pro) **Enhancement**: In the Stripe integration, cancelling a subscription
   in the last minutes of a period, may cause the invoice for the new period to 
   remain there and still be charged later. Now s2Member Pro attempts to find a 
   draft or open invoice for the subscription being cancelled, and void it. Thanks
   Alan for reporting it. See [post 8386](https://f.wpsharks.com/t/8098).
 * (s2Member Pro) **UI Enhancement**: Improved Stripe pro-form error message when
   trying to create a subscription with a bad card. Thanks everyone that reported
   it. See [issue #1184](https://github.com/wpsharks/s2member/issues/1184), [post 6043](https://f.wpsharks.com/t/6043),
   and [post 8386](https://f.wpsharks.com/t/8386).
 * (s2Member Pro) **Enhancement**: Added the new action hooks `ws_plugin__s2member_pro_before_stripe_notify_event_switch`
   and `ws_plugin__s2member_pro_after_stripe_notify_event_switch` in the Stripe 
   endpoint to allow customizations, e.g. new event handlers.
 * (s2Member Pro) **UI Fix**: Removed some leftover mentions of Bitcoin support 
   in Stripe’s options.
 * (s2Member Pro) **UI Fix**: Removed a couple of deprecated shortcode attributes
   from the documentation for Stripe’s pro-form, leftovers from the old integration.
   Kudos to Debbie for bringing my attention to them. See [post 8053](https://f.wpsharks.com/t/8053).
 * (s2Member Framework) **UI Fix**: Fixed some broken links and video players in
   the admin pages.
 * (s2Member Framework) **Bug Fix**: Resolved a warning given when changing users
   role in bulk from the WP Admin > Users page.
 * (s2Member Server Scanner) **Bug Fix**: Updated the [Server Scanner](https://s2member.com/kb-article/server-scanner/)
   to remove some outdated warnings.

#### v201225

 * (s2Member Framework) **Bug Fix**: View Password icon WP’s login page was not 
   displaying correctly. Kudos to Beee4life for reporting it. See [issue #1187](https://github.com/wpsharks/s2member/issues/1187)
 * (s2Member Framework and Pro) **Enhancement**: Refactored PHP’s deprecated _create\
   _function_ with anonymous functions. Kudos to Berry for reporting it, see [post 6069](https://f.wpsharks.com/t/6069)
 * (s2Member Framework) **Bug Fix**: Added a check for empty return variable before
   trying to use it in paypal-utilities.inc.php.
 * (s2Member Framework) **Bug Fix**: Added checks for undefined indexes before trying
   to use them in paypal-return-in-subscr-or-wa-w-level.inc.php.
 * (s2Member Framework) **Bug Fix:** Added a check for undefined index before using
   it to define a couple of s2 constants. Kudos to Berry for reporting it, see [post 8181](https://f.wpsharks.com/t/8181/)
 * (s2Member Pro) **Bug Fix**: s2’s payment notification when creating a Stripe 
   subscription, was being sent twice. Added a check to ignore the webhook for the
   subscription’s on-session first payment; s2’s webhook endpoint is for off-session
   events.
 * (s2Member Framework) **Enhancement**: Added a new hook for the payment notification
   on subscription creation or buy now payments.
 * (s2Member Pro) **Bug Fix**: Stripe paid trials were accumulating on failed payment
   attempts, causing a larger charge when it finally succeeded. Kudos to Alan for
   his help through the many attempts to fix this one, see [post 7002](https://f.wpsharks.com/t/7002).
 * (s2Member Pro) **Enhancement**: Stripe duplicate payments were happening randomly
   to a few site owners, apparently from bad communication between their server 
   and Stripe’s. Added idempotency to prevent duplicates. Kudos to Alan and everyone
   in the forum that reported and gave details on this behavior, see [post 7002](https://f.wpsharks.com/t/7002)

#### v200301

 * (s2Member Pro) **Enhancement:** Added “Powered by Stripe” to Stripe pro-form’s
   payment card field. Kudos to Josh, see [post 6716](https://f.wpsharks.com/t/6716).
 * (s2Member Pro) **Bug Fix:** Stripe subscription cancellations were not happening
   when they should. This release updates the API integration for it and fixes that
   behavior. Kudos to Matt for reporting it, see [post 6909](https://f.wpsharks.com/t/6909).
 * (s2Member Pro) **Bug Fix:** Updating the card with Stripe’s pro-form sometimes
   gave an incorrect “missing billing method” error. Kudos to Corey, see [post 7058](https://f.wpsharks.com/t/7058).
 * (s2Member Pro) **Small fix:** Removed Bitcoin mention next to Stripe in Gateways
   list. Missed it in [v191022](https://s2member.com/s2member-v191022-now-available/).

#### v200221

 * (s2Member Pro) **Bug Fix:** In some rare cases, another plugin loaded Stripe’s
   class before s2Member, so when s2 tried loading it there’d be an error. This 
   release fixes the check for the class before trying to load it. See [issue #1170](https://github.com/wpsharks/s2member/issues/1170)
 * **Note:** s2Member won’t have control over what version of the Stripe SDK was
   loaded by the other plugin. You’ll need to get that other plugin to have an up-
   to-date version. If you don’t have another plugin loading Stripe, this is not
   relevant to you.
 * (s2Member Pro) **Bug Fix:** When using a 100% off coupon, requiring no payment,
   the Stripe pro-form was still loading the card field and requiring it, preventing
   the free signup. That’s fixed in this release. See [issue #1171](https://github.com/wpsharks/s2member/issues/1171)
 * (s2Member Pro) **Bug Fix:** The Stripe pro-form, when given an invalid card, 
   didn’t give a clear error message for it, and instead just “invalid parameter”.
   Now it shows the correct card error, making it possible for the customer to try
   a different card to complete the payment.
 * (s2Member Pro) **Feature Update:** The Indian Rupee was added to the list of 
   currency symbols.
 * (s2Member Pro) **Feature Enhancement:** The s2Member Pro add-on, not being a 
   regular plugin was not uploadable via the WP plugin manager. This made it necessary
   to FTP, which is complicated for some site owners. In this release I made it 
   possible for the plugin manager to upload or remove the Pro add-on.
 * **Note:** It still is not a regular plugin. The activation link or status in 
   the plugins manager is irrelevant, but I couldn’t find how to remove it. s2Member
   Pro activates automatically when its version matches the Framework’s, and it’ll
   be mentioned next to the Framework’s version in the plugins manager.

#### v191022

 * (s2Member Pro) **Feature Enhancement:** The Stripe pro-forms can now handle 3D
   Secure 2 for [Strong Customer Authentication](https://stripe.com/guides/strong-customer-authentication),
   as required by the new European regulation that came into effect recently. Props
   to those in the beta testing group, especially Brice and Felix. See [thread 5585](https://f.wpsharks.com/t/5585/).
 * (s2Member Pro) **Feature Enhancement:** The Stripe pro-form now has the card 
   field inline, instead of opening a modal to enter it. Before it required clicking
   the link to open the modal, enter the card details, submit that, and then submit
   the pro-form. Now you enter the card details as part of the pro-form. See [issue #588](https://github.com/wpsharks/s2member/issues/588).
 * (s2Member Pro) **Stripe Integration Updates:** Upgraded the Stripe PHP SDK from
   v1.18 to v7.4.0, and the API from 2015-07-13 to 2019-10-08. Upgraded the integration
   from the Charges API to the latest Payment Intents API. Upgraded the card input
   from the old Stripe Checkout modal, to the new Stripe.js and Elements.
 * (s2Member Pro) **Optimization:** Stripe’s JavaScript now only gets included if
   the page has a Stripe pro-form.
 * (s2Member Pro) **Removed Stripe Bitcoin**: Stripe [dropped Bitcoin](https://stripe.com/blog/ending-bitcoin-support)
   last year, it’s not available anymore. This update removes the Bitcoin options
   and mentions from the s2 admin pages.
 * (s2Member Pro) **Bug Fix:** Subscriptions without at trial were showing a “trialing”
   status in Stripe for the first period. This behavior has now been solved. It 
   will only say trialing when you set a trial period (free or paid) in your Stripe
   pro-form shortcode. See [issue #1052](https://github.com/wpsharks/s2member/issues/1052).
 * (s2Member Pro) **Bug Fix:** The Stripe pro-form installments via the `rrt` shortcode
   attribute were charging an extra payment before ending the subscription. There
   was an error in the time calculation for this. This is solved in this release.
   Props to Brice. See [thread 5817](https://f.wpsharks.com/t/5817/).
 * (s2Member Pro) **Bug Fix:** Some payments through the Stripe pro-form were creating
   a new Stripe customer when the user was already a customer. The Stripe customer
   ID was not being saved correctly in the user’s profile. This is solved in this
   release. Props to demeritcowboy for reporting it.

#### v190822

 * (s2Member) **PayPal Integration Update:** PayPal deprecated the subscription 
   modification button. Using the old possible values for this, now gives an error
   on PayPal’s site. This button has been removed from the PayPal Standard integration
   in s2Member. Props to Tim for reporting it, see [forum …

## মেটা

 *  **260410** সংস্কৰণ
 *  **1 সপ্তাহ আগত** শেষবাৰ আপডে’ট হৈছিল
 *  সক্ৰিয় ইনষ্টলেশ্যন **9,000+**
 *  WordPress-ৰ সংস্কৰণ ** 4.2 বা তাতকৈ ওপৰৰ **
 *  ইমানলৈকে পৰীক্ষা কৰা হৈছে **7.0**
 *  PHP-ৰ সংস্কৰণ ** 5.6.2 বা তাতকৈ ওপৰৰ **
 *  ভাষাবোৰ
 * [Dutch](https://nl.wordpress.org/plugins/s2member/), [English (US)](https://wordpress.org/plugins/s2member/)
   আৰু [German](https://de.wordpress.org/plugins/s2member/).
 *  [আপোনাৰ ভাষাত অনুবাদ কৰক](https://translate.wordpress.org/projects/wp-plugins/s2member)
 * [content restriction](https://as.wordpress.org/plugins/tags/content-restriction/)
   [members-only](https://as.wordpress.org/plugins/tags/members-only/)[membership](https://as.wordpress.org/plugins/tags/membership/)
   [paid access](https://as.wordpress.org/plugins/tags/paid-access/)[paid subscriptions](https://as.wordpress.org/plugins/tags/paid-subscriptions/)
 *  টেগবোৰ
 *  [উচ্চখাপৰ ভিউ](https://as.wordpress.org/plugins/s2member/advanced/)

## ৰে’টিংবোৰ

 5টাৰ ভিতৰত 4.1টা তৰা।

 *  [  164 5-star reviews     ](https://wordpress.org/support/plugin/s2member/reviews/?filter=5)
 *  [  13 4-star reviews     ](https://wordpress.org/support/plugin/s2member/reviews/?filter=4)
 *  [  8 3-star reviews     ](https://wordpress.org/support/plugin/s2member/reviews/?filter=3)
 *  [  7 2-star reviews     ](https://wordpress.org/support/plugin/s2member/reviews/?filter=2)
 *  [  42 1-star reviews     ](https://wordpress.org/support/plugin/s2member/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/s2member/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/s2member/reviews/)

## অৱদানকাৰীসকল

 *   [ Cristián Lávaque ](https://profiles.wordpress.org/clavaque/)
 *   [ WebSharks ](https://profiles.wordpress.org/websharks/)
 *   [ JasWSInc ](https://profiles.wordpress.org/jaswsinc/)
 *   [ Raam Dev ](https://profiles.wordpress.org/raamdev/)
 *   [ Eduardo Lavaque ](https://profiles.wordpress.org/eduan/)

## সাহায্য

বিগত দুমাহত সমাধান হোৱা সমস্যাবোৰ:

     1ৰ ভিতৰত 1

 [সাহায্যৰ ফ’ৰাম চাওক](https://wordpress.org/support/plugin/s2member/)

## দান কৰক

আপুনি এই প্লাগিনৰ উন্নতিৰ প্ৰতি সাহায্য আগবঢ়াব বিচাৰেনে?

 [ এই প্লাগিনক অনুদান দিয়ক ](https://s2member.com/donate/)