Limited-Time Offer

Get Extra 20% off on FullCharge Yearly Plan — available for first 10 users only. Don’t miss out! 🚀

Simple Membership · Version history

Simple Membership changelog and version history

Latest version
4.8.7
Nov 3, 2026 (6 days ago)
Releases
116
since 2014
In the last year
19
about one every 19 days
Tested up to
WordPress 7.1.4
PHP 7.4 or later

Releases each year

  • 20144 releases
  • 20156 releases
  • 201615 releases
  • 20179 releases
  • 20183 releases
  • 20197 releases
  • 20207 releases
  • 20213 releases
  • 20226 releases
  • 202311 releases
  • 202416 releases
  • 202511 releases
  • 202618 releases

202618 releases

  1. Simple Membership 4.8.7Latest

    • Stripe subscriptions: the first payment of a new subscription is now also saved as its own payment record (with the charge ID), in addition to the “subscription created” record. Every subscription charge now has a payment record, and a refund of the first payment can find its record. For a refund o…
    • Partial refunds are now shown as ‘Partially Refunded’ in the payments list (Stripe, PayPal PPCP and PayPal Standard). PayPal Standard refunds now also update the transaction’s status.
    • Added the swpm_payment_refunded action hook. It fires when a payment is fully or partially refunded (Stripe, PayPal PPCP and PayPal Standard).
    • Added refund details (full or partial, amounts) to the data passed to the swpm_deactivate_account_on_refund filter.
    • Added the swpm_transactions_page_columns and swpm_transactions_page_column_{column_name} filter hooks to add columns to the payments list.
    • Added the SwpmMiscUtils::get_countries_list() function so addons can reuse the plugin’s country list instead of keeping their own copy. The get_countries_dropdown() function now builds its output from it. Added the swpm_countries_list filter hook.
    • The trial info of a new subscription (trial or not, and the trial amount) is now saved on its subscription agreement record (Stripe and PayPal Standard subscriptions).
    • Stripe Checkout buttons now redirect to the checkout page using the Checkout Session URL, for compatibility with newer Stripe.js versions (Clover) loaded by other plugins or themes.
    • Security improvement for the Stripe checkout: the completed checkout session is now retrieved using its ID, and the payment is only applied to the logged-in account (or redirected to the paid registration link) in the browser that started the checkout. For a new member from a Stripe checkout, the t…
    • Fixed an issue where a PayPal subscription renewal payment could be saved with the wrong amount (for example, when the webhook arrived late). The amount from the webhook event is now saved.
    • Fixed an issue where the Force WP User Synchronization feature could log a user out during a two-factor authentication (2FA) login on the WordPress login page (for example, with Wordfence 2FA).
    • Fixed an issue where a subscription renewal payment could change the member’s reference to the original subscription checkout transaction record. It now only changes when the member makes a new subscription checkout.
    • Thanks to Th0masL for contributing the PayPal, refund and payments list changes in this release.
  2. Simple Membership 4.8.6

    • Fixed a login loop that could happen when the login form was submitted shortly after the member’s login session expired. The login request is now processed normally and a fresh login session is created. Thanks to freetiermorioka555 for reporting this.
    • The logout request now clears any leftover (expired) login cookies from the browser, even when the login session is no longer valid.
    • Fixed a grammatical error in the German translation of the password reset message. Thanks to Annika for reporting this.
    • Fixed an issue where the Force WP User Synchronization feature could log a member out right after a successful login.
    • Stripe Buy Now: the payment currency, billing country code, payment method type, card country and Stripe fee are now included in the payment data passed to the swpm_payment_ipn_processed hook. Thanks to Th0masL for the contribution.
    • Fixed an issue where PayPal PPCP subscription renewal payments could be saved with an empty member ID. The member is now found using the subscription ID.
    • Fixed an issue where a PayPal subscription payment (PAYMENT.SALE.COMPLETED webhook) could be lost when a PayPal API call failed. The webhook now responds with an error so PayPal sends it again. Also added a 30 second timeout to the PayPal API requests.
    • Added handling for the PayPal BILLING.SUBSCRIPTION.PAYMENT.FAILED webhook event. It logs the failed payment and triggers the new swpm_paypal_subscription_payment_failed action hook.
    • Fixed some registration form and payment button filter hooks that were not printing the value returned by the callback. Thanks to Th0masL for the contribution.
    • Improved PayPal and Stripe refund handling and synchronization of payment and subscription statuses.
    • Added two options in the Payment Settings menu to keep the member account active when a one-time or subscription payment is refunded (by default, the account is deactivated). Also added the swpm_deactivate_account_on_refund filter hook.
    • Added 3 new filter hooks: swpm_validate_user_name_ajax_override, swpm_registration_form_validation_query_args and swpm_login_widget_logged_in_username. Thanks to Th0masL for the contribution.
  3. Simple Membership 4.8.5

    • The attachment URL and metadata filters no longer run before the init hook. This prevents the “_load_textdomain_just_in_time” notice with themes (e.g. Cocoon) that request attachments early.
    • Added output escaping to the country field in the profile form.
  4. Simple Membership 4.8.4

    • Added two new filter hooks (swpm_show_expiry_date_value and swpm_show_expiry_date_output) to the [swpm_show_expiry_date] shortcode to allow customization of the displayed expiry date and the shortcode output.
    • Security fix: Registration and activation emails now use the member’s saved email address, preventing requests from redirecting these emails to another address.
    • Security improvement: Email activation uses securely generated tokens with 24-hour expiry validation and protection against reuse and concurrent requests. Resends preserve existing unexpired links and have configurable limits for public requests.
    • Registration and activation emails no longer include passwords. Existing password placeholders display password reset guidance, and previously saved activation passwords are removed automatically in batches while preserving valid links and add-on metadata.
    • Registration now preserves account creation and completion hooks when an email cannot be prepared, and displays recovery instructions instead of prompting members to register again.
    • Invalid or expired activation links now include an option to resend the activation email.
  5. Simple Membership 4.8.3

    • Added an option to send email notifications to members and the admin after automatic subscription renewal payments.
    • Added check to validate payment button IDs in payment notification handlers.
    • Applied a fix for the “Auto Prune Login Events” feature in the reports menu.
    • Fixed a Stripe SCA payment button issue where an unencoded reference ID in the checkout success URL could cause a “Payment button (ID: 0) does not exist” error after a completed payment. Thanks to Filip for reporting this.
    • Fixed an issue where Stripe subscription renewal payments in zero-decimal currencies (JPY, KRW, VND, MGA) were recorded incorrectly.
    • Fixed an issue with the “Annual – Fixed Date” membership level where a member’s expiration date was calculated from the current calendar year instead of the member’s subscription start year, causing the expiration to shift by a year once the calendar rolled over. Thanks to mcl_10 for reporting this.
    • Security improvement: Payment buttons and payment handlers now reject invalid or unpublished payment button records.
    • Security improvement: Strengthened paid registration completion to reject invalid or reused links and preserve the purchased membership level.
    • Security improvement: Automatic login after registration no longer includes passwords in redirect URLs.
  6. Simple Membership 4.8.2

    • The Recent Login Events table now displays events recorded from 12:00 AM on the selected start date through 11:59 PM on the selected end date.
    • Removed the WP user binding option from front-end registration. Users can use the new swpm_allow_existing_wp_user_registration filter hook to allow registration using an existing WordPress user account.
  7. Simple Membership 4.8.1

    • Updated the Stripe SDK to v21.2.1 and the Stripe API version to 2026-07-29.dahlia.
    • Updated the login count charts on the Reports menu counting failed login attempt records, which caused past dates to be listed with a count of zero.
    • Updated the date range condition in the login count queries so the one month window is applied correctly.
    • The Recent Login Events section in the Reports menu now displays login events from the last 30 days by default.
    • Fixed a false “Failed login limit could not be reset” entry appearing in the debug log after a successful login when no failed login attempts existed for that IP address.
    • WordPress Multisite install related vulnerability issue fixed.
    • New member registrations are no longer linked to a pre-existing WordPress user account matching the submitted username or email address by default. Site administrators can restore the previous behavior using the new Allow Existing WP User Registration option under Advanced Settings.
    • Password reset via a secure link is now enabled by default on new installations. Site administrators can disable it using the new Disable Password Reset Using Link option under Settings.
  8. Simple Membership 4.8.0

    • Gutenberg block compatibility for WordPress v7.1.
  9. Simple Membership 4.7.9

    • Added an option to enable a password visibility toggle on the ‘registration’ form. When enabled, users can show or hide the password as they type.
    • Added an option to enable a password visibility toggle on the ‘edit profile’ form. When enabled, users can show or hide the password as they type.
    • A PayPal trial subscription related security issue fixed. Thank you to Ananda Dhakal for reporting this.
  10. Simple Membership 4.7.8

    • Added validation of the ‘subscr_ref’ parameter in the PayPal standard IPN handling code. Thank you to Charles Vosburgh for reporting this.
    • Added sanitization to the PayPal payment notification handling code. Thanks to Yaswanth Reddy Sunkara for reporting this.
    • Added error checking to the ‘create_wp_user’ function for better security. Thanks to Brandon Steed for reporting this.
  11. Simple Membership 4.7.7

    • Removed the obsolete PayPal Smart Checkout related code to clean up the codebase.
    • The PayPal Standard IPN data validation now also validates the merchant/receiver email. Thank you to Muni Nitish Kumar for reporting this.
    • The deprecated/legacy PayPal hosted button code removed from the plugin to clean up the codebase.
    • Fixed a minor PHP notice issue in the PayPal IPN handler code.
  12. Simple Membership 4.7.6

    • Important Note: A Stripe webhook signing secret is now required to process Stripe subscription webhook events. This provides an additional layer of security.
    • If you are using Stripe subscription payment buttons, please make sure to configure the webhook signing secret key in the plugin settings menu. Refer to this documentation for more information.
  13. Simple Membership 4.7.5

    • Fixed an issue with the bulk account activation notification email.
    • Stripe subscription webhook: fixed a security issue.
  14. Simple Membership 4.7.4

    • Fixed a bug related to the annual expiry date settings.
    • Login event timestamps are now recorded according to the WordPress site’s timezone settings.
    • Added an admin notice that displays when a Stripe webhook is received from an outdated API version.
    • Added a search option on the payments table to find payments made by a specific member.
  15. Simple Membership 4.7.3

    • Added a new action hook ‘swpm_ipn_account_upgrade_event’ that is triggered when an account upgrade event is processed in the IPN handler.
    • Added a new action hook ‘swpm_ipn_account_renewal_event’ that is triggered when an account renewal event is processed in the IPN handler.
    • Added a link to the warning message about the Stripe webhook signing secret key so users can more easily locate the setting needed to fix the issue.
    • Added debug logging for HTML email option in the mail() function.
    • Added output escaping to the IP address field in the reports menu.
    • Gutenberg API v3 compatibility for payment button block.
  16. Simple Membership 4.7.2

    • Improved compatibility with bbPress. Updating a member’s WordPress role will no longer interfere with their existing forum roles.
    • Stripe webhook signing secret key missing notice now shows on admin dashboard.
    • Added a new filter hook ‘swpm_payment_button_shortcode_start_output’ to allow custom code to execute at the start of the payment button shortcode execution.
    • Added extra checks in the validate_subscription_checkout_txn_data() function to ensure the subscription checkout transaction data is valid before processing it.
    • SWPM Cloudflare Turnstile addon updated to handle some edge cases and added extra validation for the Turnstile response.
  17. Simple Membership 4.7.1

    • Added support for annual memberships, allowing you to create calendar year based memberships.
    • Added an option to delete the plugin generated required pages in the Reset Data addon.
    • The Stripe webhook endpoint URL is also displayed in the Stripe settings menu tab for easy copy-paste.
    • Added basic Stripe webhook event validation for sites that are not using the webhook signing secret option in the settings menu.
  18. Simple Membership 4.7.0

    • Improved the validation JavaScript for the Add/Edit Membership Level screen to simplify the interface.
    • Added extra validation checks to the front-end profile update process to improve security.

202511 releases

  1. Simple Membership 4.6.9

    • Added a new {expiry_date} email merge tag.
    • Bulk account activate notification email body now supports email merge tags.
    • Spanish language translation files updated.
    • Added center text align CSS to the WooCommerce protection message.
    • Romanian Leu currency can now be used for stripe buy now buttons.
  2. Simple Membership 4.6.8

    • Added a new free social login addon to allow users to log in using their social media accounts. Refer to this documentation for more information.
    • Added a payment button shortcode field in the button edit interface for easy copy-and-paste.
    • Introduced a new filter hook ‘swpm_after_login_form_output’ to display custom content below the login form on the login page.
    • Updated the French language translation file. Thanks to David Ramery for the update.
    • Updated the code to remove a minor PHP notice issue.
    • Improved the WooCommerce page protection message HTML.
    • Enhanced the date selector UI with a button to quickly return to the current month.
    • Added a new filter hook ‘swpm_edit_profile_form_before_submit’ to allow custom code to display content before the submit button in the profile form of admin dashboard.
  3. Simple Membership 4.6.7

    • Improved the renewal logic to include a check for account inactivity so access starts date is calculated correctly.
    • WooCommerce product pages can now be protected using the standard content protection feature.
    • Added a new email settings section for the manual approval notification email.
    • Added a button in the Edit/View Member profile page to let admins easily approve accounts using the manual approval feature.
    • Fixed an issue with the Stripe button when using a custom button image.
  4. Simple Membership 4.6.6

    • Added a new filter hook ‘swpm_override_login_limit’ to allow custom code to override the active login limit check.
    • The default subject for the account upgrade email has been changed to “Account Upgrade Confirmation Email” for clarity.
    • The default subject for the account renewal email has been changed to “Account Renewal Confirmation Email” for clarity.
    • Added debug logging for after logout redirection URL.
    • Changed the call to wp_logout() function to use a custom logout method to prevent the ‘wp_logout’ action hook from being triggered, which causes our plugin’s after logout redirection to not work properly.
    • Added a new action hook ‘swpm_wp_user_logout_complete’ that is triggered after the wp_destroy_current_session() and wp_clear_auth_cookie() functions are called in the custom logout method.
    • The plugin now hooks to the ‘swpm_after_logout_function_executed’ hook instead of the ‘swpm_logout’ hook to handle after logout tasks. This allows for better clarity with the action name.
    • Fixed the description of the “Disable Access to WP Dashboard” setting.
    • Added new filter hook ‘swpm_email_prompt_to_complete_registration_body’ to allow custom code to modify the body of the email sent to members prompting them to complete their registration.
    • Added new function ‘swpm_dummy_country_names_for_translation’ to include dummy country names to the POT file for translation purposes.
    • Replaced the jQuery code for the Stripe button with vanilla JavaScript to resolve fatal errors on certain themes.
    • Updated the code to handle the new Stripe webhook API format for subscriptions.
    • Improved the account access start date updating issue when recurring subscription charge attempt fails.
    • All setcookie function has updated for secure http only protocols.
    • Some translation related improvements also regenerated a new POT file for the plugin.
    • Spanish language translation updated.
  5. Simple Membership 4.6.5

    • Added a new feature to send separate email notifications for account upgrades and renewals.
    • New feature added to display warning message above subscription payment buttons if there is already an active subscription.
    • Translation string updated for the ‘Auto Delete Pending Account’ field.
    • Added a new option to resend member account activation email in the Tools menu.
    • Renamed the ‘has_tag’ function to ‘has_email_merge_tag’ to avoid confusion.
    • Added a new filter hook ‘swpm_payment_button_note_msg_output’ to allow custom code to insert a message or note before the payment button.
    • Added a new filter hook ‘swpm_hide_payment_button’ to allow custom code to hide the payment button based on custom logic.
    • Added a validation for the PayPal client ID to ensure it is not empty when using the PayPal PPCP checkout.
    • For PayPal PPCP guest checkout, it will query the subscription or order details from the PayPal API to retrieve the email address (if needed).
    • Updated the plugin name to “Simple Membership” in the main PHP file to match the plugin slug and readme file.
  6. Simple Membership 4.6.4

    • Added a new feature to limit failed login attempts. Read the failed login limit documentation for more information.
    • Improved user experience by disabling browser auto-fill on the password field in the new registration form.
    • Added a debug log entry for successful user logouts.
    • Refactored Stripe-related code for the client reference ID.
    • Added new filter hook: ‘swpm_paypal_ppcp_order_shipping_preference’ to customize the shipping preference in PayPal PPCP checkout.
    • Added new filter hook: ‘swpm_paypal_ppcp_order_item_category’ to customize the item category in PayPal PPCP checkout.
    • For PayPal PPCP checkout, if no Thank You page URL is set, a default success message will now appear above the PayPal button.
    • Introduced a new feature: users are redirected to the paid registration page after successful payment to complete their account setup.
    • Added ‘redirect_to_after_cancel’ parameter to the ‘swpm_show_subscriptions_and_cancel_link’ shortcode to allow redirection to a custom URL after subscription cancellation.
    • Added escaping functions to improve security on the payment button configuration admin screen.
    • Introduced two new utility functions: apply_protection_to_post and apply_protection_to_posts.
    • Addressed minor PHP notices and warning-related issues.
  7. Simple Membership 4.6.3

    • WordPress 6.8 compatibility related changes.
    • Added a new feature to set ‘default content protection’ settings.
    • Password reset processing code refactored to be in ‘wp’ hook.
    • Modified the ‘Tools -> System Info’ menu to accurately display the language translation directory path: /wp-content/languages/plugins/
    • Updated the Hungarian language translation file.
    • WordPress 6.8 uses new password hashing. We have updated the function that is used to check the password so it is compatible with WP 6.8.
  8. Simple Membership 4.6.2

  9. Simple Membership 4.6.1

  10. Simple Membership 4.6.0

  11. Simple Membership 4.5.9

202416 releases

  1. Simple Membership 4.5.8

  2. Simple Membership 4.5.7

  3. Simple Membership 4.5.6

  4. Simple Membership 4.5.5

  5. Simple Membership 4.5.4

  6. Simple Membership 4.5.3

  7. Simple Membership 4.5.2

  8. Simple Membership 4.5.1

  9. Simple Membership 4.5.0

  10. Simple Membership 4.4.9

  11. Simple Membership 4.4.8

  12. Simple Membership 4.4.7

  13. Simple Membership 4.4.6

  14. Simple Membership 4.4.5

  15. Simple Membership 4.4.3

  16. Simple Membership 4.4.2

202311 releases

  1. Simple Membership 4.3.9

  2. Simple Membership 4.3.8

  3. Simple Membership 4.3.6

  4. Simple Membership 4.3.4

  5. Simple Membership 4.3.3

  6. Simple Membership 4.3.2

  7. Simple Membership 4.3.1

  8. Simple Membership 4.3.0

  9. Simple Membership 4.2.9

  10. Simple Membership 4.2.4

  11. Simple Membership 4.2.3

20226 releases

  1. Simple Membership 4.2.1

  2. Simple Membership 4.2.0

  3. Simple Membership 4.1.8

  4. Simple Membership 4.1.6

  5. Simple Membership 4.1.4

  6. Simple Membership 4.1.0

20213 releases

  1. Simple Membership 4.0.7

  2. Simple Membership 4.0.6

  3. Simple Membership 4.0.5

20207 releases

  1. Simple Membership 4.0.1

  2. Simple Membership 4.0.0

  3. Simple Membership 3.9.9

  4. Simple Membership 3.9.8

  5. Simple Membership 3.9.7

  6. Simple Membership 3.9.5

  7. Simple Membership 3.9.4

20197 releases

  1. Simple Membership 3.9.2

  2. Simple Membership 3.8.9

  3. Simple Membership 3.8.4

  4. Simple Membership 3.8.2

  5. Simple Membership 3.8.0

  6. Simple Membership 3.7.9

  7. Simple Membership 3.7.4

20183 releases

  1. Simple Membership 3.7.0

  2. Simple Membership 3.6.6

  3. Simple Membership 3.6.2

20179 releases

  1. Simple Membership 3.5.8

  2. Simple Membership 3.5.7

  3. Simple Membership 3.5.4

  4. Simple Membership 3.5.1

  5. Simple Membership 3.4.7

  6. Simple Membership 3.4.6

  7. Simple Membership 3.4.5

  8. Simple Membership 3.4.3

  9. Simple Membership 3.4.0

201615 releases

  1. Simple Membership 3.3.9

  2. Simple Membership 3.3.8

  3. Simple Membership 3.3.6

  4. Simple Membership 3.3.5

  5. Simple Membership 3.3.2

  6. Simple Membership 3.3.1

  7. Simple Membership 3.3.0

  8. Simple Membership 3.2.7

  9. Simple Membership 3.2.6

  10. Simple Membership 3.2.5

  11. Simple Membership 3.2.3

  12. Simple Membership 3.2.2

  13. Simple Membership 3.2.1

  14. Simple Membership 3.1.8

  15. Simple Membership 3.1.5

20156 releases

  1. Simple Membership 3.1.1

  2. Simple Membership 3.0.1

  3. Simple Membership 2.2.9

  4. Simple Membership 2.2.7

  5. Simple Membership 2.2.6

  6. Simple Membership 2.2.4

20144 releases

  1. Simple Membership 1.8.0

  2. Simple Membership 1.6

  3. Simple Membership 1.5.1

  4. Simple Membership 1.5

Questions about Simple Membership’s releases

What is the latest version of Simple Membership?

4.8.7, released on Nov 3, 2026 (6 days ago). It’s tested up to WordPress 7.1.4 and needs PHP 7.4 or later.

How often is Simple Membership updated?

19 releases in the last year, about one every 19 days. Its first release on WordPress.org dates from June 2014.

Know when your rivals ship

Track your plugin and its rivals: TrackWP sees each new release in the nightly snapshot and alerts you, with what it did to their rank.

Start free

Release dates come from the day each version’s folder was made in Simple Membership’s WordPress.org SVN repository; the notes from its readme’s changelog, as its authors wrote it.