Description
s2Member Pro is an add-on that adds Pro-Forms to the s2Member Framework, generating registration, checkout, billing update, plan change, and cancellation forms through its own shortcodes. The component also extends the base plugin with membership levels, coupons, redemption codes, gateways such as Stripe, PayPal Pro, Authorize.Net and ClickBank, being aimed at those who sell restricted access, courses, communities, or recurring content on WordPress.
Key Features of s2Member Pro
- Checkout Pro-Forms
Generates registration and payment forms without redirecting to external pages. - Integrated Gateways
Connects payments with Stripe, PayPal Pro, Authorize.Net and ClickBank. - Membership Levels
Manages different access permissions for protected content on WordPress. - Coupons and Redemptions
Creates promotional codes and gift codes for access plans. - Login Widget
Displays a login area integrated into the theme through the Pro Login Widget.
Benefits of s2Member Pro
- On-Site Checkout
Reduces external steps when purchasing subscriptions and access. - Monetization Control
Makes it easier to sell paid plans, free access, and temporary offers. - More Organized Registration
Centralizes registration, billing, and permissions in predictable flows. - Greater Commercial Flexibility
Allows combining coupons, levels, and gateways according to each offer.
Who Is s2Member Pro For?
- Those who sell access to courses, lessons, private communities, or content libraries on WordPress.
- You who need to charge subscriptions and keep the visitor on your own site at checkout.
- Those who already use the s2Member Framework and want to add Pro-Forms, coupons, and extra gateways.
How to Download s2Member Pro
s2Member Pro is available for download here at Ultrapack. After downloading the .zip file, install it via Plugins > Add New > Upload Plugin, select the .zip, and activate. The add-on requires the s2Member Framework to be installed to work correctly.
The value of s2Member Pro lies in the practical expansion of membership flows: instead of relying only on external buttons, the site starts working with registration and billing forms integrated into WordPress. For projects that sell protected content, subscriptions, or level-based access, the add-on organizes payment, registration, and permission under the same operational logic.
Frequently asked questions
Is s2Member Pro – A Powerful Membership Plugin for WordPress GPL-licensed?
Yes. s2Member Pro – A Powerful Membership Plugin for WordPress is distributed under the GPL (GNU General Public License). You may legally use, modify and redistribute it on as many sites as you want.
Can I use s2Member Pro – A Powerful Membership Plugin for WordPress on multiple sites?
Yes. You can install s2Member Pro – A Powerful Membership Plugin for WordPress on as many sites as you want. Only automatic updates through Ultrapack Auto Updater have a limit: from 3 to 80 sites, depending on the plan.
How much does s2Member Pro – A Powerful Membership Plugin for WordPress cost at Ultrapack?
s2Member Pro – A Powerful Membership Plugin for WordPress costs US$2.99 as a single purchase, and it is also included in the subscription plans starting at US$12/mo (VIP I).
Does s2Member Pro – A Powerful Membership Plugin for WordPress include updates?
Yes. The current version of s2Member Pro – A Powerful Membership Plugin for WordPress is 260917, published at Ultrapack on Sep 23, 2026. Subscribers update straight from the WordPress dashboard with UAU (Ultrapack Auto Updater).
Is s2Member Pro – A Powerful Membership Plugin for WordPress scanned before publication?
Yes. Every version of s2Member Pro – A Powerful Membership Plugin for WordPress goes through a malware scan (ClamAV and YARA rules, at UltraHub) before it is published.
What are the requirements for the plugin s2Member Pro – A Powerful Membership Plugin for WordPress?
Requires WordPress 4.2 or higher and PHP 5.6.2 or higher. Tested up to WordPress 7.2.
What changed in this version
Version 260917
- (Framework) Performance: Further improved searching on the WP Admin > Users screen, building on the performance improvements introduced in v260909. Searches across user profiles and s2Member membership data now require substantially less database work, with the biggest benefit on sites with large member databases. This can make member administration noticeably faster while preserving the same searchable fields, sorting, and pagination.
- (Pro) Performance: Significantly improved `[s2Member-List]` and `[s2Member-List-Search]` performance for member directories and searches, especially on sites with larger user databases. Member searches now require substantially less database work, with much more efficient profile-field searching, filtering, sorting, and pagination. This can make large member directories noticeably faster and more responsive while preserving the shortcodes' existing Custom Field, wildcard, filtering, pagination, and sorting features. See: [s2Member-List Shortcode Documentation]
- (Framework) Performance: Improved Alternative View Protection performance on sites with larger amounts of protected content. Searches, archives, menus, widgets, and other areas where restricted content needs to be filtered now do less repeated work during each page request, helping busy pages load more efficiently while preserving the same access-control behavior. WP Admin > s2Member > Alternative View Protection
- (Pro) Performance: Reduced overhead when End-of-Term reminder emails are disabled. The heavier reminder processing, health, and email code is now loaded only when it is actually needed.
- (Framework & Pro) Security & UI: Added a prominent admin warning for outdated s2Member Pro installations that predate the current Pro updater. The Framework now warns administrators when an old Pro version may be missing recent security fixes, shows how old the installed release is, and provides a prominent link to download the latest Pro version. The warning does not disable the installed Pro add-on or its features.
- (Pro) Security: Enforced the Shortcode User Fields Whitelist for `[s2Member-List]`'s `show_fields` attribute. Fields not on the whitelist are now omitted from Member Lists, with an administrator notice identifying blocked fields that may need to be allowed. WP Admin > s2Member > General Options > Shortcode User Fields Whitelist
- (Pro) Security: Enforced the Pro Shortcode Templates Whitelist. Custom templates specified with the `template` attribute are now blocked unless specifically allowed. The shortcode uses its standard template instead, and an administrator notice identifies blocked template files that may need to be allowed. WP Admin > s2Member > General Options > Pro Shortcode Templates Whitelist
- (Pro) Improvement: Hardened validation of PayPal Pro-Form `success` URLs used after subscription cancellation. Redirects are now limited to normal HTTP(S) destinations after replacement codes are processed, preventing executable or other non-web URL schemes from being used. Also hardened malformed programmatic `success` values to avoid PHP warnings.
- (Framework) Fix & UI: Corrected Asset Health reporting when static CSS or JavaScript cannot be used because the site's current hooks or configuration require dynamic delivery. This intentional compatibility behavior is now treated as healthy instead of being reported as an unexpected fallback, and it no longer creates misleading "Latest Issues" entries. Asset Health now identifies why dynamic delivery is required, explains when the Full WordPress Dynamic Loader is necessary, and points to the "JavaScript Text Delivery" setting when it can help more pages continue using static JavaScript.
- (Framework) Improvement: EOT demotion traditionally replaced all of a member's WordPress roles, but some sites need to preserve unrelated roles. The new Demote From setting can now remove only the member's s2Member Level role instead. New installations use this level-only behavior by default; existing installations keep the legacy replace-all behavior unless changed. Thanks to Craig for suggesting this. See: [thread #13494]
- (Framework) Improvement: EOT demotion normally sends members to Subscriber / s2Member Level 0, and using another role previously required custom code. The new Demote To Role setting lets site owners choose another s2Member Level or an available custom role directly from the EOT settings. Existing customizations using the `ws_plugin__s2member_force_demotion_role` filter continue to work.
- (Pro) Improvement: PayPal Checkout cancellation buttons using `output="button"` can now also use a `success=""` attribute to redirect the member after a successful subscription cancellation. If no Success URL is provided, the existing cancellation confirmation remains unchanged. Thanks to Felix for suggesting this. See: [thread #13462]
- (Framework) Improvement: Added date formatting support to the `[s2Get /]` shortcode when retrieving the current user's registration timestamps. `S2MEMBER_CURRENT_USER_REGISTRATION_TIME` and `S2MEMBER_CURRENT_USER_PAID_REGISTRATION_TIME` can now use the existing `date_format` attribute (e.g., `m/d/Y`, `default`, or `timestamp`), making these timestamps easier to display as readable dates without custom PHP. Also corrected the related scripting documentation to distinguish registration day counts from Unix timestamps. Thanks to Gerard for suggesting this. See [thread #13221]
- (Framework) Improvement: Expanded the AWS S3 region selector with several compatible regions that were missing: Canada Central (`ca-central-1`), Ohio (`us-east-2`), Mumbai (`ap-south-1`), Paris (`eu-west-3`), and Stockholm (`eu-north-1`). Sites using buckets in those regions can now select them directly. Thanks to David for the reminder. See: [thread #4706]
- (Framework & Pro) Improvement: Added some needed filters that were missing, giving developers more ways to customize s2Member emails and Tracking Codes.
- (Pro) Fix: Resolved PHP 8.x warnings in `[s2Member-List]` caused by optional member-query arguments, including `meta_query`, not always being present.
- (Framework) Fix: Prevented a fatal error in the s2Member-Only dynamic CSS/JS loader when BuddyPress is detected but its `bp_is_create_blog` helper is unavailable. This also prevents affected sites from unnecessarily falling back to the Full WordPress Dynamic asset loader.
Version 260913
- (Framework) Fix: Made frontend CSS/JavaScript monitoring less impatient on sites where expected assets take a little longer to become active. Although the monitor already waited until the page had fully loaded before checking, some setups make their CSS/JavaScript become active a little later, which could cause a false alarm. This has now been fixed. Thanks to Gerard for reporting this. See: [thread #13609]
- (Framework) Enhancement: Expanded the frontend CSS/JavaScript monitoring introduced in the previous release into a new "CSS/JS Asset Health" system. The earlier monitoring layer is now smarter, more patient, more informative, more self-healing, quieter when the administrator does not need to intervene, and still designed to stay lightweight during normal frontend traffic.
- New overall health status: "CSS/JS Asset Health" monitors frontend assets, including the Pro add-on's assets when installed, keeps track of recent delivery results, and summarizes the current situation as "Healthy", "Recent issue", "Working, review suggested", or "Needs attention" instead of reacting to every individual hiccup in isolation.
- More patient, configurable checks: The original monitor checked whether expected assets had become active 1 second after the page finished loading. The default wait is now 3 seconds, and the new "Wait Before Checking Frontend Assets" setting lets site owners adjust that delay for setups where optimization, caching, networking, or other conditions make assets become active a little later.
- Smarter issue handling: A single delayed or uncertain result no longer needs to become an immediate administrator problem. Asset Health considers both how recent and how persistent problems are, and can return to "Healthy" as normal loads continue.
- More resilient automatic recovery: If an enabled static asset file unexpectedly disappears, s2Member will try to rebuild it automatically the moment the problem is encountered instead of waiting for the administrator to refresh it manually. Assets that need rebuilding can also be recovered during normal admin activity, avoiding an extra rebuild during a frontend page-load when possible, and relevant settings changes can trigger affected assets to be rebuilt immediately, too.
- Clearer diagnostics: The new Asset Health panel shows each CSS/JavaScript asset and its current delivery state, including "Healthy", "Late", "Fallback", "Failed", "Not generated yet", and "Pending rebuild", with plain-language details when more information is useful. A persistent "Last issue" reminder and compact "Latest Issues" log preserve useful troubleshooting details, including affected frontend URLs, occurrence times, and repeated occurrences, with controls to clear them when they are no longer useful.
- Fallback visibility: Asset Health understands s2Member's existing automatic fallback behavior, distinguishes successful delivery from successful fallback, and shows when the preferred delivery method could not be used but a compatible fallback kept the asset working. It can also show when the fallback itself is unavailable, even while the preferred delivery method is still working, so the administrator knows that the safety net needs attention before it's needed.
- More useful administrator notices: Short-lived issues are given time to recover without unnecessary warnings. When a problem persists long enough to deserve attention, or is serious enough to require attention sooner, s2Member can show a compact administrator notice explaining the affected asset and link directly to the "CSS/JS Asset Health" section for review.
- Manual recovery and rechecking: The "Refresh Static Assets" button rebuilds the enabled static files, while the "Recheck Asset Health" button performs a fresh check of the current delivery setup. Refreshing static assets also rechecks their health automatically afterward.
- Performance-conscious health tracking: Frontend page-loads save small, independent Asset Health records without waiting for the shared health history to be updated. Those events are merged into the rolling history separately and in chronological order, preserving delayed reports and recent-issue details without making normal frontend page-loads wait on Asset Health bookkeeping.
- (Framework) UI: Refined the CSS/JavaScript delivery controls and status presentation. Renamed the beta section to "CSS/JS Delivery & Optimization (Beta)", improved the shared health-status colors used across s2Member status sections, clarified help text and status explanations, and corrected the disabled "Refresh Static Assets" button so it remains visibly disabled when unavailable because static assets are not enabled or a configuration change needs to be saved first.
- (Framework) Fix: Corrected a compatibility issue that could cause a PHP fatal error when another plugin printed WordPress scripts unusually early, before s2Member had finished initializing. s2Member now handles that early script output safely. Thanks to Sim Architect for reporting it.
- (Pro) Improvement: EOT Reminder failure notices are now more actionable. Reminder Status can identify the oldest failing recipient and, when available, the related WordPress user. Persistent admin warnings can now be dismissed for the current incident, while retry and failure details remain available in the EOT Reminder Status section. A materially new or escalated critical reminder problem will alert administrators again. Thanks to Matt for reporting this.
- (Framework & Pro) Fix: Restored compatibility with WordPress 4.2–4.3 by replacing uses of `wp_parse_url`, which wasn't introduced until WordPress 4.4.
Release notes published by the developer.
How to install
Automatic updates: this item is updated by the Ultrapack Auto Updater. With it installed, the new version shows up in your dashboard like any other WordPress update (how to set it up).
- Download the file
s2member-pro.zip. - In the WordPress dashboard, go to Plugins > Add New > Upload Plugin.
- Select the file
s2member-pro.zipand click Install Now. - Click Activate.
Requirements: Requires WordPress 4.2 or higher and PHP 5.6.2 or higher. Tested up to WordPress 7.2.
Stuck on a step? Open a ticket telling us which one you stopped at.

UAU Ready