Paid Membership Subscriptions – Effortless Memberships, Recurring Payments & Content Restriction


Paid Member Subscriptions is the #1 WordPress membership plugin focused on growing recurring revenue.

Increase conversions and generate subscription revenue with a feature-packed membership solution. It lets you accept recurring payments, register and manage new members, create subscription plans and restrict access to premium content.

Paid Member Subscriptions is designed to help you kickstart your subscription business in just a few minutes and begin generating income as quickly as possible.

Integrates with WooCommerce, allowing you to restrict product viewing and purchasing to members-only as well, offer special discounted product price based on subscription plans as well as allow your customers to purchase subscription plans through the WooCommerce Checkout.

You can also use it to setup an Elementor membership site fast and easy.

Free Demo | Compare Free vs Pro | Documentation

Optimize Membership Monetization And Boost Your Revenue

Offer premium access and exclusive benefits for members, establishing a thriving paid community that generates income through membership fees or subscription plans. This is ideal for:
* Paid Membership Services
* Online Courses
* Online Coaching
* Online Consultancy Services

Automate Revenue Streams With Our Proven Membership Tools

Keep your focus on content creation while Paid Member Subscriptions takes care of consistently generating revenue for you through its automated recurring revenue model. This is ideal for:
* Content restriction on blogs, news sites, and content hubs
* Members-only content subscriptions
* Private WooCommerce Stores
* Members-Only WooCommerce Stores

Build And Grow Your Community While Also Monetizing It

Communities are all about collaboration. By giving members the opportunity to gain exposure, promote their services or create networking opportunities, you’re building a valuable community that people are willing to pay to be a part of. This is ideal for:
* Business Directories
* Member Directories
* Online Associations and Clubs
* Online Communities

Shortcodes & Blocks for Member Registration, Login, Content Restriction and managing Membership Plans

You can use one of the following shortcodes or available blocks to get started:

  • [pms-register] – adds a front-end user registration form where users can purchase a membership level
  • [pms-login] – create a front-end member login form
  • [pms-restrict subscription_plans=”9,10″] Special content for members subscribed to the subscription plans that have the ID 9 and 10! [/pms-restrict] – to restrict content based on subscription plans or logged in status
  • [pms-account] – setup a WordPress members area where members can easily edit their account information and manage their subscription plan(s)
  • [pms-payment-history] – adds a front-end table with the member’s payment history
  • [pms-recover-password] – adds a recover password password form, that enables users to reset their password if needed

Membership Modules:

Content Restriction

You’ll find it really simple to restrict entire posts, pages or custom post types or just portions of them.

Restrict Content offers you options to:

  • display content based on logged in status
  • show content to members only, setup private pages for subscribers
  • partial content display by using the [pms-restrict][/pms-restrict] shortcode
  • display another template for restricted posts
  • restrict Gutenberg blocks

    Integrates with Elementor page builder allowing you to restrict content for Elementor sections and widgets based on logged in status or subscription plans, by using the visual interface.

Membership Payments

Accept PayPal or direct credit card payments from your subscribers. You can keep track of all member payments, payment statuses and purchased subscription plans. Access to detailed payment logs.

Recurring Payments

Ability to accept recurring payments through the PayPal Standard or Stripe payment gateways. The recurring setting can be forced or you can let the user choose whether he wants to subscribe for a recurring subscription or not.

Hierarchical Subscription Plans

You can create an unlimited number of hierarchical subscription plans (eg: Free, Silver, Gold). Each new user can choose a membership plan (subscription) during the registration process.
Existing users can purchase a subscription plan from a page with the [pms-subscriptions] shortcode.

Members can upgrade their subscription plan from the [pms-account] page, the same page also allows the member to Renew, Cancel or Abandon his subscription.

Subscription plans can offer free and/or paid memberships on your website.

Discount Codes

Create an unlimited number of discount codes and offer percentage or flat rate based discounts for your memberships.

Members Management

Have an overview of all your members and their subscription plans. Easily add/remove members or edit their subscription details.

Membership Emails and Messages

Customize default member emails and setup member messages sent/displayed on certain user actions.
Admin emails can also be customized.

Free Trial and Sign-up Fees

You can configure your subscription to have a free trial period and a sign-up fee, allowing you to have more control on your subscription setup. Click to view which payment gateways support this feature.

Reports and Exports

Whether you prefer to maintain your own records of your members’ database, do custom reports , or you simply need to import records into another service or application, such as MailChimp or Excel, you can do that with Paid Member Subscriptions. Export all member records to a CSV at anytime.

Payment history can be exported to a CSV file, letting you then import the payment data into Excel, QuickBooks, or other accounting software that can process a CSV file.

WooCommerce Integration

Paid Member Subscriptions integrates beautifully with WooCommerce, allowing you to do the following out of the box:

  • Create a Members-only Storerestrict access to the Shop page to members-only
  • Restrict Product Viewing and Purchasing – control who can see or purchase a WooCommerce product based on logged in status and subscription plan. Easily create members-only products.
  • Offer discounted product prices to members – offer special product prices to members based on their active subscription. Set membership discounts per product or subscription plan.
  • Sell subscription plans as products – associate products with Subscription Plans to offer customers a membership with a product purchase or allow customers to purchase Paid Member Subscriptions plans using the WooCommerce Checkout


Powerful Add-ons

Paid Member Subscriptions has a range of premium Add-ons that allow you to extend the power of the membership plugin:

Basic Add-ons (available in the Agency, PRO or Basic versions)

  • bbPress – integrate Paid Member Subscriptions with the popular forums plugin, bbPress, to restrict your forums and topics.
  • Global Content Restriction – add global content restriction rules to subscription plans, based on post type, taxonomy and terms
  • Email Reminders – create multiple automated email reminders that are sent to members before or after certain events take place (subscription expires, subscription activated etc.)
  • Navigation Menu Filtering – dynamically display menu items based on logged-in status as well as selected subscription plans
  • Fixed Period Membership – create subscriptions plans that end at a specific date, no matter when a member subscribes to it.
  • Pay What You Want – accept donations and let subscribers pay what they want when purchasing a subscription plan

Pro Add-ons (available in the Agency & PRO versions only)

  • Pro Rate – Pro-rate subscription plan Upgrades and Downgrades, offering users a discount based on the remaining time for the current subscription
  • Tax & EU VAT – collect tax or vat from your users depending on their location, with full control over tax rates and who to charge
  • Group Memberships – sell group subscriptions to your users
  • PayPal Express – accept one-time or recurring payments through PayPal Express Checkout
  • Stripe Gateway – accept credit card payments, both one-time and recurring, directly on your website via Stripe
  • Content Dripping – create schedules for your content, making posts or categories available for your members only after a certain time has passed since they signed up for a subscription plan
  • Multiple Subscriptions per User – setup multiple subscription level groups (e.g. Physics, Math) and allow members to sign up for more than one subscription plan, one per group (e.g. Physics Beginner and Math Advanced)
  • Invoices – both you and your members will be able to download PDF invoices for each payment that has been completed

The Ultimate Membership Bundle

Combine user registration, memberships, and recurring revenue in one powerful plugin bundle called the Ultimate Membership Bundle.

Get access to both Paid Member Subscriptions Pro and our all in one user management plugin, Profile Builder Pro. These two plugins are designed to work perfectly together, offering you a powerful toolkit for managing and expanding your user base while generating revenue through paid memberships and recurring revenue.

Paid Member Subscriptions in your Language

We’re focusing on translating Paid Member Subscriptions in as many languages as we can. So far, the translations for 10 languages are almost complete, but we still need help on a lot of other languages, so please join us at
You will be able to download all the available language packs as well as help us translate Paid Member Subscriptions in your language.
For more information please visit our documentation page





  • Member Registration Form (Account Details + Select Payment Method)
  • Membership options: Group Memberships, Fixed Period Subscription & Pay What You Want & more
  • Select your subscription plan and billing details form in Paid Member Subscriptions
  • Member Account - Subscription Plan Details
  • Member Profile - Edit Account and Billing Details
  • Member discounted products for WooCommerce store
  • WooCommerce shop page restricted on the front-end for non-members
  • WooCommerce product discounts for members and restriction settings for individual product
  • Paid Membership Subscriptions onboarding wizard
  • Settings interface - Membership, Recurring Payments, Content Restriction & more
  • Subscription Plans listing from Paid Member Subscriptions - membership plugin
  • Members Management
  • Membership Recurring Payments Details
  • Discount Codes for Membership Plans
  • Available Add-ons for extending your membership site


This plugin provides 6 blocks.

  • PMS Account Displays the Paid Member Subscriptions Account Form.
  • PMS Register Displays the Paid Member Subscriptions Registration Form.
  • PMS Login Displays the Paid Member Subscriptions Login Form.
  • PMS Recover Password Displays the Paid Member Subscriptions Recover Password Form.
  • PMS Content Restriction Start The first element of a Content Restriction block pair.
  • PMS Content Restriction End The final element of a Content Restriction block pair.


  1. Upload the paid-member-subscriptions folder to the ‘/wp-content/plugins/’ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Create a new page and use one of the shortcodes available. Publish the page and you’re done!


What type of membership sites can I create?

Here are some examples of what you could sell from your membership site: premium tutorials, newsletter, magazine, database, online community, software, apps, videos, ebooks, audio files, discount codes, fan clubs, consulting, coaching etc.

What type of memberships can I sell?

You can sell one-time or recurring memberships with any custom duration you wish.

You can also give users a free trial to your plans and/or charge a sign-up fee.

Can I offer both free and paid memberships at the same time?

Yes, you can have both free and paid memberships on your site.

Can I create discount codes for special promotions?

Yes, you can create percent or fixed-amount discount codes that are available for selected subscriptions. You can limit the uses of a discount code, make it available only to new users, have a set period in which the discount is available, and many more. Learn more

Can I restrict access to premium content allowing only paying users to view it?

Yes, the plugin allows you to restrict content and make it available to paid members only.

Any type of content can be restricted including posts, pages, and custom post types. We also have an integration with WooCommerce so you can restrict access (or purchase) to these products

We also offer an Elementor integration which lets you restrict any Section or Widget and make it available only to paid users.

Can I customize the registration form?

Yes, the registration form can be customized using Profile Builder. You can change the order of the form fields, remove fields that aren’t required and also add extra fields to the form like Inputs, Checkboxes, Selects, Radio buttons, and more. Learn More

Can I ask users to confirm their Email Address before they can register and pay?

Yes, this is possible through Profile Builder as well using its Email Confirmation feature. In this case, the payment will happen after the user has clicked the link he received in the confirmation email after registering. Learn more

Can my members pay using a credit card ?

Yes! Users can pay with a credit or debit card without leaving your website through the Stripe payment gateway.

Where can I find out more information?

For more information please check out Paid Member Subscriptions documentation.


18 February 2024 1 reply
I've been using the Paid Member Subscriptions plugin by Cozmoslabs on my WordPress site, and it's honestly been a breeze. Setting it up was easy, even for someone not too tech-savvy like me. What really stands out is the range of payment options—it's made subscribing super accessible for my audience. But the real gem here? The support team. They are simply top-notch! Every question or hiccup I've encountered was met with quick, friendly, and super helpful responses. It's like having tech support buddies who really want your project to succeed. Also, it plays well with other plugins, making my life a lot easier. So, if you're thinking about adding subscriptions to your site, I'd definitely recommend giving this plugin a shot. Great functionality paired with amazing support—it's a no-brainer!
05 December 2023 1 reply
Excellent plugin and the customer support is second to none. They go above and beyond, fully recommended.
09 November 2023 1 reply
Paid Membership Subscriptions has proved an invaluable tool in delivering and managing my licenced products. It is simple enough to make day-to-day admin manageable but sophisticated enough to handle the varied demands I make of it. I have been most impressed by the levels of support (and patience!) from the development team. They always respond promptly and are able to clearly explain where I have misunderstood or poorly implemented elements of the plug-in.
07 November 2023 1 reply
I have been using Paid Member Subscriptions (and Profile Builder) for over five years now to manage a website that looks after a community group with around 500 members. Five years ago the functionality was already good, but now it is really good. I regularly find and take advantage of new features. But most importantly, the support is brilliant. Responsive, accurate and super helpful.
03 November 2023 1 reply
I have been using this plugin for the last 4-5 years on a membership site. It was the only plugin we could find at that time to accomodate all our needs and work on a multi-site. The support has been phenomenal and the development in the last 5 years as added more features and stability. I really appreciate the work of Cozmolabs I have also been using Profile Builder with Paid Member Subscriptions. Highly recommend.
Read all 221 reviews

Contributors & Developers

“Paid Membership Subscriptions – Effortless Memberships, Recurring Payments & Content Restriction” is open source software. The following people have contributed to this plugin.


“Paid Membership Subscriptions – Effortless Memberships, Recurring Payments & Content Restriction” has been translated into 22 locales. Thank you to the translators for their contributions.

Translate “Paid Membership Subscriptions – Effortless Memberships, Recurring Payments & Content Restriction” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Fix: Security issue. Thanks to Lucio Sá
  • Fix: Add nonce check when creating pricing pages. Thanks to Lucio Sá
  • Misc: Declare translations domain path so the .pot file with translations can be identified properly


  • Fix: Issue with subscription not activating correctly when Stripe was used after a Profile Builder Email Confirmation
  • Fix: Add nonce check when dismissing SSL notice. Thanks to Dhabaleshwar Das for the report
  • Fix: A notice regarding the Discounts functionality
  • Fix: Back-end pages styling when plugin name is localized
  • Fix: An issue with Password Strength functionality not loading correctly
  • Fix: Issue with PSP notice not appearing for Stripe gateway
  • Misc: Added actions after the plugin adds or removes a user role from a member: pms_add_user_role and pms_remove_user_role
  • Misc: Small styling change for Setup Wizard active tabs


  • Fix: Issue with plugin logo from Basic Information page not being displayed correctly on multisite
  • Fix: Notice coming from the Gutenberg Content Restriction functionality
  • Fix: Issue with serial number detection on certain multisite WordPress setups
  • Misc: Disable auto hide discount codes box functionality when the website has too many discount codes defined
  • Misc: Display future subscription billing amount when viewing a subscription in the back-end


  • Fix: Don’t show Cancel subscription button for Unlimited subscriptions
  • Fix: An issue where there expiration date wasn’t correctly set when a 100% discount code was used
  • Fix: Issue with Profile Builder form not being validated properly when Stripe was used
  • Fix: Issue with Sign-up fees being added to every Stripe recurring payment
  • Fix: Issue with free trial subscriptions that also had a sign-up fee not being properly activated through Stripe
  • Fix: Register form sidebar issue when it was placed alongside a login form on the same page
  • Misc: Added a shortcode that can be used to get a member count: [pms-count-members plan_id=”” status=””]
  • Misc: Enable support for the Stripe Elements Appearance API. Rules can be added through the: pms_stripe_connect_elements_styling filter
  • Misc: Correct display for Payment Logs View Details modal
  • Misc: Added a new initial recommended step: Create Pricing Page


  • Feature: Added Divi Modules that can be used to create the pages with the plugin shortcodes
  • Fix: Issue with form location when validating Discount Codes request
  • Fix: Issue with doing it wrong notice relating to Gutenberg Content Restriction blocks
  • Fix: When using Stripe make sure usual URL parameters are retained when redirecting to the Register Success Page
  • Fix: Use site_url() when determining the location to return the admin when a Stripe connect account request is made
  • Fix: Issue with the Automatically Generate Password for users feature from Profile Builder when using Stripe
  • Misc: Hide Lost Connection notice from the plugin custom post type pages
  • Misc: Updated Stripe PHP bindings to the latest version
  • Misc: Added click to copy functionality for shortcodes displayed on the back-end pages
  • Misc: Fix javascript custom post types error showing in back-end


  • Feature: Added default form styling for block themes
  • Fix: Issue between Content Restriction and Gutenberg Blocks which was causing them to not load in back-end
  • Fix: Issue with Sign-up fee not being taken into consideration by tax breakdown on the Profile Builder form
  • Fix: A notice coming from the Gutenberg integration
  • Fix: Issue with Pricing Tables generation
  • Fix: Javascript error coming from the Subscription Purchase Link generator option from Gutenberg
  • Fix: Use the price of a subscription plan from the website when creating the initial payment intent
  • Fix: Stripe issue with future payment amount when a zero decimal currency was used
  • Misc: Stripe Copy Webhook URL button now works again
  • Misc: Added a filter over the Stripe redirect URL when an error happens: pms_stripe_error_redirect_url
  • Misc: Settings pages width improvements


  • Fix: Incompatibility issue with older versions of the paid plugin


  • Feature: Added the ability to customize the Password Reset Email
  • Fix: Added compatibility for the Profile Builder form and Stripe payment methods that redirect the user off site for completion
  • Fix: Issue with Link Popup not showing inside the Email or Content Restriction fields
  • Fix: Some issues with the subscription expiration date tag for Profile Builder
  • Misc: Small styling changes for Setup Wizard page
  • Misc: Added options to see This or Last Year data for the Dashboard stats widget
  • Misc: Fix a Stripe issue when trying to update metadata
  • Misc: More improvements to the settings pages


  • Feature: Added Password Strength and Length functionalities. Activate them from the Settings -> Misc page
  • Fix: Issue with Stripe Extra fields not showing in some cases
  • Fix: Stripe issue when a 100% discount code is used
  • Fix: Security issue when an admin was manually adding logs
  • Misc: Hide data saved in the PayPal API credential fields
  • Misc: Added a filter that can be used to set the language of the Stripe Payment Element: pms_stripe_elements_locale


  • Feature: Added the option to Bulk Import Discount Codes through a .csv file
  • Fix: Declare WooCommerce HPOS compatibility
  • Fix: Show correct price in the 3D Secure Authentication window when a plan has sign-up fees and the Profile Builder form is used
  • Misc: Fix some notices coming from the Export page and functionality
  • Misc: Small improvements to the Dashboard page for free users


  • Feature: Content Restriction for Gutenberg Blocks. You can now restrict any block based on subscription plans
  • Fix: Retry payment button wasn’t showing when a subscription plan price was 0 but it had a sign-up fee
  • Fix: A notice triggering from the WooCommerce Discounts functionality in some cases
  • Fix: For PayPal Standard memberships with Free Trial where IPNs were not processed correctly in some cases
  • Fix: License activation messages when site limit is reached
  • Fix: Small corrections and more polishing for the new back-end styles
  • Misc: Filter account page base URL so you can make the shortcode work on multiple pages: pms_member_account_page_link


  • Feature: Updated Setup Wizard to a more modern interface
  • Feature: New main plugin page Dashboard which serves as a quick plugin overview
  • Fix: A notice appearing in some cases when localizing data for Gutenberg assets
  • Fix: A notice appearing on PHP 8.2
  • Fix: Issue with the Expiration Date tag for Profile Builder Userlisting where it wasn’t returning the correct date in a case
  • Fix: Small fixes for the settings interfaces


  • Feature: Added a simple Pricing Page creation interface on the Subscription Plans page
  • Feature: Allow non-recurring Stripe payment methods to appear when recurring payments are disabled in settings
  • Fix: issue with Bulk Add Members filter by role not working when user role key was different than 0
  • Fix: warning appearing in some cases from the Redirect functionality from Content Restriction
  • Fix: some warnings relating to PHP 8.2
  • Fix: issue with Activate Subscription email not being sent when changing subscription
  • Fix: issue with expiration date being broken for unlimited subscription when adding a new manual payment


  • Fix: Issue with Stripe Connect and change/upgrade subscription
  • Fix: Small issue with the Dashboard Payments Widget not showing the full payments amount
  • Fix: Correct display issue for the expiration date of canceled PayPal subscriptions
  • Fix: Improve behaviour for WooCommerce Product Membership Discounts when the website has a lot of products defined
  • Misc: Added some information about a users subscriptions on the Edit User page


  • Fix: A case where the subscription was not updating correctly when adding a manual payment
  • Fix: An issue regarding WooCommerce integration
  • Fix: Issue with Stripe Connect free trials getting activated twice
  • Misc: Fixed visual issue for jQuery dialog in back-end
  • Misc: Added styling for the Dashboard Payments Summary widget
  • Misc: Small corrections regarding the new setting styles


  • Feature: Added a simple Pricing Table pattern
  • Feature: Added a way to insert subscription plan purchase links on Gutenberg button blocks (core and 3rd party)
  • Fix: Improve compatibility with WordPress 5.8 and lower
  • Misc: Adjusted the size of the Stripe Connect button
  • Misc: Add back Register Version page for Multisite environments


  • Updated back-end interfaces to a more modern style
  • Fix: Case when admin was setting a subscription to abandoned and the PayPal Subscription would remain active
  • Misc: Added Connect With Stripe button in the Setup Wizard
  • Misc: Fixed some documentation links from the interface


  • Feature: Allow users of the oldest Stripe implementation to update their credit card details through the newest gateway
  • Fix: Issue with Stripe gateway and free trial subscriptions on the Profile Builder form
  • Fix: An issue with WooCommerce cash on delivery orders and subcriptions
  • Fix: Potential notice coming from the content restriction metabox
  • Misc: Added filter to allow the extension of the Paments List table from the members view
  • Misc: Extend account page filters that are triggered before and after the cotent


  • Fix: Issue with Stripe free message appearing in unwanted cases
  • Fix: Issue with Sign-up fee not applying for Stripe payments
  • Misc: Return empty strings instead of the tag for empty merge tags
  • Misc: Added settings on the Misc -> Payments page to disable specific settings


  • Fix: Error triggered with older Pro versions of the plugin


  • Feature: Stripe payment gateway is now available in the free version. Allow your users to pay using credit and debit cards directly on your website. Go to PMS -> Settings -> Payments to enable it
  • Fix: Integration issue with WooCommerce where subscription wasn’t extended properly when manual payment gateways from WooCommerce were used
  • Fix: Issue with WooCommerce integration where subscription was set to Canceled instead of Expired
  • Misc: Reports page now takes into consideration the Currency Position setting
  • Misc: Added a filter to completely disable the Chosen functionality in front-end: pms_enable_chosen_in_frontend


  • Fix: Disable Payment Retry when activating subscriptions through PayPal Standard
  • Fix: Issue with Manual Payment gateway not activating memberships when payment was completed
  • Misc: Indicate recurring status for PayPal Subscriptions on the front-end Account page shortcode


  • Feature: Added new options for Elementor Content Restriction functionality: show section/widget to Logged Out users and show section/widget for Non Subscribers or users that are not subscribed to a specific plan
  • Fix: Issue with password reset functionality not working correctly
  • Misc: WooCommerce Sync option to also sync Billing Details on Checkout completion
  • Misc: Better handling of Billing Details when Profile Builder Email Confirmation functionality is used
  • Misc: Extend option to match dates displayed by the plugin with WordPress for Profile Builder integration


  • Fix: Fatal error with the free version of Elementor


  • Feature: Added Dynamic Tag option for Elementor in order to insert a link to buy a specific plan
  • Fix: Refactor password reset functionality to use WordPress core functions
  • Fix: WPDB warnings when disabling full name search for Members
  • Fix: Compatibility issue with Events Calendar when saving Community Events in the front-end
  • Fix: Issue with Billing Fields not appearing in a situation by default
  • Misc: Fixes for sub renewal through WooCommerce


  • Feature: added ‘subscription_plan_price’ tag for emails
  • Fix: cancel subscription issue with WooCommerce Memberships
  • Fix: issue with payment editing redirecting back to the payments list
  • Misc: fix issue with subscription update hooks missing data when subscription was inserted from WooCommerce
  • Misc: backwards compatibility for Elementor widgets
  • Misc: show Subscription Plan name in the Payments History table from the Account shortcode
  • Misc: added filters to manage members and payments columns when exporting data to csv: pms_export_members_csv_columns and pms_export_payments_csv_columns
  • Misc: added a filter to change the name that is displayed when selecting users to add a payment: pms_add_new_payment_dropdown_display_name


  • Fix: some PHP 8.1 notices
  • Fix: compatibility issue with Elementor popups
  • Fix: compatibility between Discount Codes and Profile Builder Conditional Logic functionality
  • Fix: issue with PWYW validation messages not appearing on Profile Builder forms due to a Discount Codes add-on incompatibility
  • Misc: remove some unnecessary back-end code from the WooCommerce Product Discounts functionality
  • Misc: extend filters that allow other user roles to access plugin pages and functions
  • Misc: fix use of deprecated function used for Elementor widgets


  • Fix: Cancel WooCommerce Subscription when PMS membership gets canceled and they are linked
  • Fix: Update PMS membership status when a WooCommerce order is refunded
  • Fix: Issue with Pending Payment email for manual payments was not working correctly in some cases
  • Misc: Run a hook when a payment is manually edited from the back-end: pms_manually_edited_payment_success


  • Feature: Add an option to the [pms-restrict] shortcode that will restrict specific content for Free Trial users. Usage [pms-restrict subscription_plans=”1,2,3″ restrict_free_trial=”true”]
  • Fix: An issue when expiring memberships and the user has abandoned memberships with the same subscription plan
  • Fix: Expiration Date merge tag will now return Unlimited for subscription plans that do not have a duaration
  • Misc: Add a setting under Settings -> Misc -> Others to always show the Expiration Date when editing Subscriptions
  • Misc: Added filters for Edit Profile: pms_edit_profile_shortcode_content and Payment History: pms_payment_history_shortcode_content shortcode output


  • Fix: issue with bypass default login page redirect
  • Fix: issue with Upgrade button not appearing in some scenarios
  • Misc: small improvements to basic info page
  • Misc: added new action that is triggered when a subscription is upgraded, downgraded or changed through the manual payment gateway: pms_manual_subscription_change_plan
  • Misc: small changes and fixes regarding blocks


  • Fix: Compatibility between reCaptcha feature and block only themes
  • Fix: Syncing of Postal Code between Paid Member Subscriptions and WooCommerce
  • Fix: Allow admin to clear the association of a subscription plan with a WooCommerce product
  • Fix: Cancel PayPal gateway subscription when a subscription is abandoned from the admin interface
  • Fix: Issue with the GDPR delete account functionality not working correctly
  • Misc: Add a mention in subscription logs when a free trial is not applied because the user already benefited from it
  • Misc: Save subscription ID for newly added plugin scheduled payments
  • Misc: Subscription List table to make use of the Match Date to WP Settings option if set


  • Feature: Added Gutenberg Blocks for Register, Account, Login and Reset Password forms
  • Fix: issue with Redirect Default WordPress Pages bypass not working in some cases
  • Fix: reCaptcha issue on subsequent AJAX validation requests
  • Fix: error triggering from subscription price merge tag in some cases


  • Feature: Added Recurring Payments support for PayPal Standard. Go to PMS -> Settings -> Payments to control the recurring option and add your PayPal API Credentials
  • Feature: Added Discount Codes option. Go to PMS -> Discount Codes to start creating your first code

  • Fix: Make sure Pending Payment Email respects the enabled/disabled setting

  • Fix: An issue with the Change button not appearing when only downgrades were available
  • Fix: Reset Payments page counters when a payment is added or deleted
  • Fix: Issue with WooCommerce Integration when the order is manually edited
  • Misc: Added an option to use the WordPress Date Format on all back-end screens
  • Misc: Don’t show Register Version page when only free version is present
  • Misc: Added the possibility to search payments by email address


  • Fix: merge tags incompatibility with discount codes add-on
  • Fix: issue with emails not sending when manually confirming WooCommerce order for the Product Memberships integration
  • Fix: potential issue with renewals for the Product Memberships integration
  • Misc: added option to sync Billing Details with WooCommerce Billing Fields
  • Misc: keep admin on the selected view when doing bulk members or payments actions


  • Fix: issue with PSP message appearing even after being dismissed


  • Fix: case where content restriction function was failing
  • Fix: issue with expiration date being cleared in some cases when the admin manually canceled a subscription
  • Fix: allow links to be added in the GDPR checkbox text
  • Fix: some notices appearing on PHP 8.1
  • Misc: improvements to the Pending Manual Payment admin so the payment id tag is available
  • Misc: add documentation link to PSP disabled message


  • Fix: issue with ReCaptcha functionality affecting Profile Builder login form
  • Fix: issue with change subscription button appearing in unwanted cases
  • Fix: a notice appearing in some cases
  • Misc: remember selected Profile Builder edit profile form user when switching between Paid Member Subscriptions account tabs


  • Fix: An issue with user roles when 2 plans were using the same role
  • Misc: Added more settings to setup wizard, reorganized some pages
  • Misc: The Content Restriction metabox will now list the plans in alphabetical order


  • Fix: Issue with {{subscription_name}} tag not working
  • Fix: Issue with Profile Builder Userlisting merge tags that have dates
  • Fix: Make sure PSP cron doesn’t start again if another instance of it is running
  • Misc: added option to export Default Website field using PMS Export feature (only for new users)
  • Misc: Added documentation help links to most back-end interfaces


  • Fix: an issue with the website clone functionality not detecting https correctly in some cases
  • Fix: Payments list table display when you remove some of the bigger columns like Type or Transaction ID
  • Fix: disable payments retry functionality when an admin cancels a subscription from the back-end
  • Misc: rewrite {{subscription_name}} tag function


  • Complete update regarding add-ons


  • Fix issue with add-ons page not allowing add-ons to be activated


  • More small changes regarding updates


  • Fix: some compatibility issues with Profile Builder conditional logic fields
  • Feature: added option to load scripts and styles only on specific pages. Find it under Settings -> Misc -> Others -> Scripts
  • Changes regarding how paid version updates are handled


  • Fix: issue with sign-up fees and trials not working correctly on the Profile Builder form
  • Fix: a notice that was coming from Payment Logs in some cases
  • Fix: small compatibility tweak for PHP 8.1
  • Fix: issue with WooCommerce auto-renewals not reactivating an expired PMS subscription in some cases
  • Fix: upgrade/downgrade plans issue when WooCommerce Checkout is used for payments
  • Fix: issue with manual pending payment email
  • Fix: notice appearing in some cases from the WooCommerce Memberships functionality
  • Misc: added a filter to force the display of the back-end subscription expiration date: pms_view_add_new_edit_subscription_hide_expiration_date
  • Misc: added a filter to increase the delay when expiring subscriptions: pms_check_expired_subscriptions_delay
  • Misc: compatibility for the update credit card details functionality from Stripe
  • Misc: added support for the membership discount message in Product Messages Widget for Elementor


  • Elementor Integration: added Content Restriction compatibility with the new Elementor containers feature
  • Elementor Integration: added an extra widget ‘Product Restricted Message` which can be used to show the restriction message when the WooCommerce Single Product page is built using Elementor
  • Fix: issue with PSP subscription not being canceled correctly when admin was doing it from the back-end
  • Fix: issue with the subscribe form not showing after a Profile Builder Email Confirmation if the PB Automatically Login feature was activated
  • Misc: limit Subscription Plans duration value based on PayPal restrictions


  • Feature: Added a Pending Manual Payment email that can be enabled for both the user and admin
  • Fix: Better PSP compatibility for WooCommerce Memberships
  • Misc: Improve speed in certain cases after searching and clicking on a member


  • Fix: Issue with Manual recurring payments not working when the user was attempting to change his subscription plan
  • Fix: Billing Fields initial display with certain gateway combinations
  • Fix: Sign-up fee issue with Manual payments where it was taken into account for future payments


  • Feature: Associate a Subscription Plan with a WooCommerce Product allowing users to purchase a plan using the WooCommerce Checkout
  • Feature: Added the option to filter users by role on the Bulk Add New Members page
  • Fix: Issue with the All Plans content restriction option not considering new subscription plans
  • Misc: Fix a table query declaration


  • Misc: Added option to apply sign-up fee to upgrades and downgrades
  • Misc: Restrict dashboard access when Redirect Default WordPress Pages option is enabled. The redirect can be disabled separately from Settings -> Misc -> Others
  • Misc: Added filter after pms-account subscription actions: pms_subscriptions_table_after_actions
  • Misc: Filter plans displayed on the Change Subscription form


  • Compatibility with new Pro-rate pro version functionality
  • Fix: reset pending update when serial number is saved
  • Fix: subscription still showing as recurring when going from PayPal Standard Recurring to Non-Recurring
  • Fix: issue with non fixed period plans complaining about an empty fixed expiration date
  • Misc: added more details in the Setup Wizard about the Redirect Default WordPress pages option


  • Fix: issue with membership -> add log button duplicating entries if the button is clicked multiple times
  • Misc: better nonce validation for Labels Edit requests
  • Misc: added some filters for the Elementor content restriction functionality
  • Misc: added a filter to disable full name search for members: pms_members_list_search_query_fullname


  • Fix: issue with Profile Builder conditional logic when interacting with a single plan field
  • Fix: a notice with PHP 8
  • Misc: add submit button customizations for Profile Builder when the button gets disabled
  • Misc: removed subtab titles from the Misc settings page
  • Misc: improve back-end validation when saving prices or sign up fees for plans
  • Misc: added a limit for different duration units when defining a free trial
  • Misc: don’t allow admins to change the expiration date of a subscription if the relevant plan is fixed period with renewals enabled


  • Feature: added new Payments tab under Settings -> Misc with 2 new options: Renew button output time and Redirect after manual payments
  • Fix: an issue with the update class
  • Fix: issue with Members page generating a too big query string when searching, filtering multiple times
  • Fix: issue with Retry payment action showing for inactive expired plans
  • Fix: JS error showing in the console for admins from the Labels Edit functionality
  • Fix: Payments table issues where you could break the date of any payment in some scenarios
  • Fix: Subscription Price tag is now respecting the currency format settings
  • Fix: Subscription Price tag is now outputting Free instead of nothing for free plans
  • Misc: added compatibility for button instead of input as the submit form button for the processing states


  • Fix: warning caused by an undefined constant


  • Feature: Added option to Bulk Delete Payments
  • Misc: Fix a typo in emails class
  • Misc: For Multisite installs, the serial number can now be added on a separate page in the network admin
  • Misc: Add First and Last Names next to username on the Members List page
  • Misc: Remove WCK API form Labels Edit functionality


  • Fix: An issue with manual gateway renewal
  • Fix: A notice coming from the manual payment gateway
  • Fix: An issue with the pms-restrict shortcode not working correctly when negating a subscription
  • Fix: Issue with single plan url parameter sometimes displaying subscriptions that couldn’t be purchased
  • Fix: A notice coming form the content restriction functionality in some cases
  • Misc: Ignore content restriction redirect if IPN parameters are in the URL
  • Misc: Display Expiration Date for Recurring Subscriptions when hovering over the users subscriptions on the Members List page
  • Misc: Add support for the subscription name tag in the Register email
  • Misc: Transformed the Settings -> Misc page into a tabbed interface


  • Feature: added option to display prices with a space between the currency and the amount. Choose your preferred display from Settings -> Payments -> Currency Position
  • Fix: compatibility issue with PB conditional logic where if more than one subscription plans field was in the form, the one showing didn’t always have a default plan selected
  • Fix: Dashboard widget to respect Currency display settings


  • Fix: Issue with honeypot field displaying in some cases
  • Fix: Don’t display Free Trial when downgrading subscriptions
  • Fix: Apply Free Trial when changing subscriptions
  • Fix: An issue when searching for Members


  • Fix: issue with reset password form not working with usernames
  • Fix: chosen js load for front-end billing fields
  • Fix: member subscription class to set the new data after an update
  • Misc: added a notice if serial number is added but premium version not installed


  • Fix: Display of some back-end strings that weren’t properly escaped
  • Fix: Some issues with the Upgrade/Change subscription button showing in some cases it wasn’t intended to
  • Fix: Issue with the Date filters from the Members page not including members subscribed in the last selected day


  • Feature: added possibility for users to Downgrade or Change their subscriptions. Disabled by default, admin can activate these options from the PMS -> Settings -> Payments page
  • Fix: some issues with HTML characters showing in some back-end strings


  • Fix: issue with user roles not getting assigned correctly after a subscription was purchased
  • Fix: issue with the payment gateway selector not showing when the form was placed in an Elementor Popup


  • All Premium Add-ons have been repackaged in new archives downloadable from account. All the old plugin Add-ons will no longer receive updates.
  • Reconfigured add-ons to be activated from Add-ons page
  • Fix: an error triggering in some cases regarding content restriction
  • Misc: added a filter that can be used to disable the Elementor Content Restriction functionality: pms_elementor_enable_content_restriction


  • Fix: Issue with plugin generated URLs on page with slugs that contained special characters
  • Fix: Issue with Bulk Delete Subscriptions popup triggering in unwanted cases
  • Fix: Make [pms-account] actions work from within a Profile Builder edit profile form
  • Misc: Added possibility to search Members by full name
  • Misc: Improved payment retry workflow
  • Misc: Added option to select all subscription plans when restricting a post/page


  • Feature: Add recurring support to Manual/Offline payment gateway
  • Fix: Issue with Elementor Template restriction


  • Feature: Apply tax to payments added from back-end if necessary billing data is available
  • Feature: Add option for a Honeypot field that can be used as an alternative to reCaptcha or alongside it. The option is found under Settings -> Misc
  • Fix: Issue with gateway display and refresh when a single plan was showing in the form
  • Fix: Compatibility issue with TranslatePress so the current language is not added to the plugin supplied IPN URL for PayPal
  • Fix: Show members with only Abandoned subscriptions under Members -> Add New


  • Fix: Issue with Subscriptions form not appearing after Profile Builder Email Confirmation
  • Fix: Price couldn’t be updated for Subscription Plans in some cases
  • Fix: Login form will now redirect back to the same page if no redirect_url parameter is set
  • Fix: Cases where back-end strings were escaped incorrectly


  • Fix issues with login form


  • Even more security changes


  • Security audit


  • Fix: Security issue on Members and Payments pages


  • Fix: Compatibility issue between reCaptcha and new Stripe add-on version
  • Fix: For the Uninstall option to remove PMS metadata tables and other data
  • Misc: Do not let admins change the subscription plan on the back-end page for recurring subscriptions
  • Misc: Payment Retry interval is now saved in the log message data instead of being determined when the message is displayed. Thanks to Ionut Radu


  • Misc: Small compatibility update for the new Stripe add-on


  • Fix: Display free trial and sign-up fee information on the Profile Builder forms
  • Misc: CSS improvements to forms
  • Misc: Add class to login form register/reset password link separator
  • Misc: Added class to register form submit button
  • Misc: Changes necessary for upcoming Stripe add-on update


  • Fix: A js error appearing in the console on the Login page
  • Fix: An issue with the Activation and Renewal emails both being set in a case
  • Fix: An issue where the bulk actions from different pages were disappearing when Paid Member Subscriptions was active
  • Misc: Use default website user role when the plugin adds an user role after removing the Subscription Plan role and the user is left without any other roles
  • Misc: Improve HTML/CSS for the Login form


  • Fix: A potential notice with the content restriction messages
  • Fix: Do not apply limit concurrent logins feature to administrators
  • Misc: Added confirmation box for bulk delete members
  • Misc: Added subscription id as parameter to Payment Retry count and interval filters


  • Fix: A notice happening on the Add New Member or Payment pages
  • Fix: An issue with the Custom filter from the Members page
  • Fix: A couple instances where the text domain we were using for our strings was wrong
  • Misc: Implemented WPML support for the custom GDPR checkbox text from settings


  • Fix: A notice happening on the Add New Member or Payment pages
  • Fix: An issue with the Custom filter from the Members page
  • Fix: A couple instances where the text domain we were using for our strings was wrong
  • Misc: Implemented WPML support for the custom GDPR checkbox text from settings


  • Feature: Added an email for subscription renewals. Disabled by default
  • Fix: Make the GDPR text that the user enters translateable
  • Misc: Change method of determining website user count when choosing to show a select or input on the Add New Member and Add New Payment pages


  • Fix: A notice that started appearing with WordPress 5.7
  • Fix: An issue with a link from our Setup Wizard appearing as an empty link under the Dashboard menu
  • Feature: Improved Add New Payment page behaviour when the website has a lot of users
  • Misc: When exporting members that are part of a group subscriptions, every member will have an entry with his group name
  • Misc: Show current website IPN Url on the back-end payments page where credentials are added
  • Misc: Updated provided .po/.mo files with new strings from the plugin


  • Misc: Don’t show empty expiration date in back-end for recurring plugin managed subscriptions.
  • Misc: Added a button on the Settings -> Misc page that will re-register the Cron jobs from the plugin.
  • Misc: Fix an inconsistency in the checkout function.


  • Misc: Hide comments from restricted pages
  • Misc: Update WooCommerce Compatibility
  • Misc: Fixed a display issue for the subscription plans box with the Twenty Twenty-One theme
  • Misc: Added a filter to bypass the site clone checking feature


  • Fix: recurring subscriptions not being cancelled when the user was deleting his own account through the GDPR functionality
  • Fix: sign-up fees should not be shown during a subscription upgrade as they are not applied
  • Fix: small incompatibility when Profile Builder was being used alongside WooCommerce
  • Misc: improved reliability of the duplicate website cron check


  • Feature: Added more filtering options on the Members page
  • Feature: Bulk delete subscriptions from the Members page
  • Misc: Added a filter that lets users enable sign-up fees for forms other than the defaults: pms_checkout_signup_fee_form_locations


  • Fix: Issue with subscription plan user role not being assigned in some cases
  • Fix: Fixed a notice introduced in the last updated
  • Misc: Added confirmation box when deleting a subscription
  • Misc: Added {{payment_id}} tag for emails


  • Fixed Fatal Error that was happening in some cases introduced in the last update.


  • Feature: Added possibility to set a subscription as pending and add expiration date when bulk adding members
  • Fix: A notice that appeared in some cases when exporting members or payments
  • Misc: Reworked how merge tags work internally
  • Misc: Added a filter over the id column value of the payment history shortcode: pms_payment_history_id
  • Misc: Improved mobile experience for [pms-account] menu


  • Feature: Redirect logged-in non-member users to a specific page
  • Fix: A potential notice that could be thrown
  • Fix: Issue with the duplicated website detector


  • Feature: Send website locale to PayPal checkout
  • Fix: Reset custom billing schedule on PayPal Standard subscription renewal or upgrade
  • Fix: An issue with the payment gateways being added to the Profile Builder edit profile form
  • Misc: Added a ‘View Logs’ link to failed payments
  • Misc: Added a filter to change the name that’s displayed for an user when adding a member manually: pms_add_new_member_dropdown_display_name


  • Feature: Payments Retry functionality for plugin scheduled payments.
  • Feature: Payment Failed email. Disabled by default.
  • Fix: Rework how payment gateways work with a Profile Builder form.
  • Fix: An jQuery error thrown from the migrate plugin.
  • Misc: Fixed an issue in the plugin supplied German translation files.


  • Fix: An error that happened sometimes with variable WooCommerce products
  • Fix: Sign-up fees not being applied when upgrading a subscription
  • Fix: Issue with the {{subscription_price}} tag not taking into consideration discounts correctly in some cases
  • Misc: Don’t attempt to output pms-account navigation tabs markup if no tabs are defined
  • Misc: Improve UI when adding a payment manually


  • Fix: An issue when determining the current form location
  • Misc: Added information about bypassing the default login page redirect feature on the settings page
  • Misc: Fix some notices thrown by IPNs in some cases
  • Misc: Add a custom data attribute to determine the default seledcted plan for each plans group
  • Misc: Updated German translation files.


  • Fix: Show Billing Schedule metabox for PayPal Recurring Subscriptions
  • Misc: Added an action before and after a PSP subscription upgrade
  • Misc: Added message interpretation for a payment log.


  • Feature: Added an exclude parameter to the [pms-register] shortcode
  • Fix: Single Post/Page content restriction rules were being overwritten by Global Content Restriction in some cases
  • Fix: An issue with the cancel or abandon form display
  • Fix: An issue with redirects being cached even after a user has logged in
  • Misc: Remove wrapper paragraph from when the message parameter of [pms-restrict] shortcode was used
  • Misc: Upgrade form before message is now bigger


  • Fix: issue with PayPal Subscription IPNs being processed incorrectly in some cases
  • Fix: issue with renew link not appearing in some cases when the Manual payment gateway was used
  • Misc: added a filter over the get_expiration_date() subscription plan function: pms_subscription_plan_get_expiration_date


  • Feature: restrict Buddypress Activity and Members pages
  • Feature: allow admins to set subscription status when bulk adding subscriptions
  • Feature: show extra currencies for admin if manual payment gateway is enabled
  • Fix: a notice that appeared on some cases
  • Fix: issue with WordPress timezone not being taken into consideration for tags with dates in emails
  • Fix: issue with the redirect settings from the WPBakery Page Builder widget
  • Fix: issue with automatic renewal box checked status not being remembered when email confirmation was enabled on the PB form
  • Fix: issue with billing fields not appearing on the edit profile form
  • Fix: a compatibility issue for front-end forms with WP Download Manager


  • Feature: choose how prices are display: with or without insignificant zeroes
  • Fix: issue with per page setting for Members, Payment and Bulk Add Members pages
  • Misc: Added more line breaks to the usage tracker notice


  • Fixed a js error


  • Misc: Localized Country and State placeholder and no results strings.
  • Misc: Front-end user interface improvements


  • Feature: Usage tracking functionality – learn more
  • Fix: A notice coming from the recaptcha functionality that was happening in some cases
  • Fix: An issue with subscription logs in case of PayPal non-recurring payment
  • Misc: Record a log entry on the subscription when it’s canceled because the associated user account is deleted
  • Misc: Update german translation files


  • Misc: Make Sign-up fee & trial visible but disabled when no gateways that support them are enabled.
  • Fix: Minor fix to html in Reset password form.
  • Fix: Subscription status email tag was always returning abandoned.


  • Fix: Use settings From Name and Email for the password reset email
  • Misc: Load Content Restriction metabox later so we’re sure all post types are covered
  • Misc: Added a link to the Setup Wizard on the Basic Information page


  • Fix: An issue with the Add New Member search box
  • Fix: An issue when generating action links
  • Misc: When an admin manually edits a subscription, set expiration time to 23:59 instead of 0:00
  • Misc: Override register / password reset default links with the ones defined in the shortcode (for pms-login)
  • Misc: Added a default selected plan when upgrading a subscription
  • Misc: Added a filter over the limit of users that transforms the Add New Member select into an input: pms_add_new_member_select_user_limit


  • Feature: Give admins access to member billing details on the Members -> Edit Member page
  • Fix: Issue with trials not being applied when retrying a payment
  • Fix: Issue with the Members -> Add New pages on some multi site installations
  • Fix: Issue with meta tables not being created correctly on some environments
  • Misc: Added French translation files to the plugin
  • Misc: When creating the subscription plan user role, add a capability with the same slug to it


  • Fix: Add New and Bulk Add New Members page to display only users from the current site in a multi-site scenario
  • Misc: Added {{user_id}} as a tag that can be used in emails
  • Misc: Fixed a theoretical issue with cron jobs
  • Misc: Added extra parameter to pms-restrict to specify the group owner ID when display_to = group_owner


  • Feature: Target Group Subscriptions owners using the pms-restrict shortcode: [pms-restrict display_to=”group_owner”] content [/pms-restrict]
  • Feature: Do not let the same email benefit from a Free Trial Subscription Plan more than once
  • Misc: Change Turkish Lira currency symbol to the new one
  • Misc: Localized some back-end strings that were missing
  • Misc: Update German translation files


  • Misc: Allow editing of Customer and Card ID for Stripe Payment Intents subscriptions
  • Misc: Fix an error triggered with WooCommerce in some cases
  • Misc: When adding a new member manually, transform the select into an Username input if the website has a lot of users
  • Misc: Fix an incompatibility issue between reCaptcha and Profile Builder
  • Security fix (thanks to Alex Haynes)


  • Feature: Added reCaptcha functionality under the new ‘Misc’ tab
  • Feature: Added option to hide admin bar for logged in users under the new ‘Misc’ tab
  • Feature: Allow admins to define multiple subscription plan tiers using the ‘Add New’ button
  • Fix: Wrap Email messages in HTML tags if not already there
  • Fix: Correctly identify Profile Builder registration form when making a Discount Codes Ajax request
  • Fix: Make the Profile Builder automatically login option work when the user is sent to PayPal
  • Misc: Ask users to confirm the deletion of a subscription plan
  • Misc: Add a link to the login page (if selected in settings) when showing the username or email already exists message
  • Misc: GDPR options can now be found on the ‘Misc’ tab
  • Misc: Improved back-end pages accessibility
  • Misc: Use recurring renewal date for the {{expiration_date}} email tag when the expiration date is empty (stripe subscriptions etc)


  • Fix: A notice that appeared when adding a new member.
  • Fix: An issue with the registration form when there was a validation error.


  • Feature: When exporting payments or members, the selected meta columns will be saved for each user so they don’t need to be added every time
  • Fix: Discounted price for WooCommerce products was not showing up in the Cart Widget
  • Fix: An issue with the Select Profile Builder form feature
  • Fix: Don’t remove Global Content Restriction rules when moving plans up and down
  • Fix: An issue with the GDPR field
  • Misc: Correctly handle the case where WordPress isn’t able to register the user
  • Misc: Add a filter to not remove trailing zeroes when formatting prices: pms_format_price_trim_zeroes
  • Misc: Show restricted Elementor sections/widgets to administrators
  • Misc: Added a parameter to bypass the wp-login.php redirect: pms_force_wp_login
  • Misc: Improvements to subscription logs
  • Misc: Add separate setting for PayPal Test Email address


  • Feature: Added extra tags that can be used in emails (eg. subscription_price, start_date, expiration, duration, user first name, last name etc)
  • Fix: Use the date format from settings when constructing the renewal date from the front-end user message
  • Fix: An issue with the Bulk Activate/Deactivate subscription plans features
  • Fix: Correctly generate an upgrade link with the pms-action shortcode
  • Fix: Send Canceled email when an user abandons his subscription
  • Misc: Disable editing of Payment Type by admins
  • Misc: Allow user roles with a custom capability to edit members: pms_edit_capability
  • Misc: Added an action just before the manual payment gateway success redirect: pms_manual_gateway_signup_processed


  • Add a filter over the register form username value.
  • Fixed a js error with Chosen State Select field and the Invoices add-on


  • Compatiblity changes for the new Tax & EU VAT add-on
  • Fix: Handle Free Trial correctly for Unlimited subscriptions
  • Fix: Correctly expire subscriptions for which the payment method fails
  • Fix: Remove subscription plan user role when user abandons a subscription
  • Misc: Small CSS change for better compatibility with 2020 WordPress Default theme
  • Misc: Improve Currency selector dropdown


  • Fix for Setup Wizard not working in some cases.


  • Feature: add ability to negate the pms-restrict shortcode (e.g. show content for non-subscribers)
  • Fix: An issue with looping cron updates for add-ons
  • Fix: The Register Success redirect was not working if the pms-register shortcode used the subscription_plans=”none” parameter
  • Fix: Don’t show renew link for Unlimited subscriptions
  • Fix: Take into account the Currency Position option on the Payments List table
  • Misc: Small fixes for the Subscription Logs feature
  • Misc: For Payments, log changes made to the Payment Type
  • Misc: Show currency code in the Currency selector from the back-end
  • Misc: Hide Subscription Billing Details metabox for manual payments


  • Try the update again


  • Fix: Select subscription plan when clicking anywhere on the row
  • Fix: Show Cancel / Abandon links on non-https and indicate why they are not working
  • Fix: Show payment error messages on Profile Builder form.
  • Feature: Subscription logs. Now you can see changes/actions made to subscriptions in the back-end
  • Feature: Now you can find abandoned subscriptions in the back-end
  • Feature: Add support for Free Trials and Sign Up Fees to the Manual / Offline payment gateway
  • Misc: Translation improvements


  • Fix: Show the Content Restriction metabox for new posts.
  • Fix: Make the Upgrade functionality work through the Manual / Offline payment gateway.
  • Fix: An issue with pms-account tabs permalinks.
  • Misc: Make use of home_url() when generating the current page URL.
  • Misc: Add support to grab payments using transaction_id.
  • Misc: Check if the payments cron is defined when the payments page is opened.


  • Fix: Show success message after updating profile
  • Fix: When a plan is deleted, also remove it from all applied restrictions
  • Fix: Send registration email regardless if Profile Builder is installed or not
  • Misc: Change country name from Macedonia to North Macedonia
  • Misc: Filter subscriptions by the ‘Canceled’ status on the PMS -> Members Page
  • Misc: Added tooltips for the Cancel and Abandon pms-account actions
  • Misc: Basic information page updates
  • Misc: Added a new action: pms_password_reset_email_sent which is triggered after the password reset email is sent to the user
  • Misc: Add unique class to pms-account subscription containers


  • Compatibility changes for the SCA ready Stripe Payment Intents integration.Learn more
  • Feature: Added integration with MailChimp for WordPress
  • Feature: Added the ability to restrict the Posts page when it’s set to a static page
  • Fix: Improve back-end metabox loading behaviour
  • Fix: The Labels Edit add-on couldn’t be activated from the PMS -> Add-ons page
  • Fix: An issue with the back-end payments page counts not being correct
  • Fix: Apply Free Trials when a subscription is upgraded
  • Fix: An issue with the restriction of Elementor Templates
  • Fix: Don’t show a red line when Elementor widgets or sections are being restricted
  • Fix: Autologin feature when using the PayPal Express gateway with Reference Transactions enabled
  • Fix: A notice that was triggered when activating an add-on with WooCommerce active on new install
  • Fix: An issue with the [pms-account] shortcode tab permalinks when the page was not selected in the back-end
  • Misc: Add custom classes to the rows of the account subscription table
  • Misc: Modify css class on the GDPR delete account button
  • Misc: Show Free Trial information on the Members list when hovering over a subscription and on the Edit Member screen


  • New: Group Memberships add-on – sell group subscriptions that are managed by a single person.
  • Feature: Restrict the content of Elementor Single Page templates using the Content Restriction metabox
  • Fix: issue with the automatic memberships page creation feature from the Setup Wizard
  • Fix: Manual Payments: extend subscription duration when a completed manual payment is added by an admin, as well as when an admin changes the status from Pending to Completed
  • Fix: Style register success message when there are no plans in the form
  • Misc: PMS Action Links: this shortcode can now be used to return only the url (instead of html link) ex.: [pms-action]{{upgrade}}{{/upgrade}}[/pms-action]
  • Feature: Added GDPR features in core plugin: GDPR Checkbox on form, Delete Button on Edit Profile, integration with Export Personal Data


  • Fix: notice that appeared sometimes when clearing the serial cron jobs for add-ons.
  • Fix: notice when a user registered without the plans in the form.
  • Fix: a warning in the rare case when an unlimited plan was renewed


  • Feature: Setup Wizard – when you activate the plugin for the first time, you will be redirected to the Setup Wizard allowing you to create the membership pages, setup the PayPal gateway and configure some settings
  • Feature: Duplicate Subscription Plan
  • Fix: Issue with Payment Exports in a special scenario
  • Fix: Issue with Free Trials and Sign-Up Fees when a payment was retried
  • Fix: Issue with the default per_page option for the Payments and Members pages
  • Fix: Issue with the Payment Error message when the automatically login option is active
  • Fix: Correct padding for the Live/Test mode notice
  • Misc: Added the custom capability: pms_bypass_content_restriction that can be added to User Roles to bypass the Messages Content Restriction option


  • Fix: Issue with the Bulk Add New Members page
  • Misc: Add support for the single_plan=yes parameter to the Profile Builder form
  • Misc: Improve back-end and front-end display for Unlimited subscriptions


  • Release: Elementor Content Restriction – you can now apply PMS restrictions directly to widgets or sections. Read more
  • Fix: Issue with Reports page showing only 10 payments.


  • Release: Labels Edit add-on – gives you the possibility to edit any string coming from the plugin
  • Release: [pms-action] shortcode which lets you generate a link pointing directly to a subscription action (ex. retry, renew). See the Shortcodes documentation for details
  • Fix: Issue with HTTPS detection in a special case.
  • Fix: Take into account Fixed Period Memberships when manually adding a payment as an admin
  • Fix: Do not log the ‘waiting for IPN’ message if payment is already completed (discount codes)
  • Fix: Potential notice when filtering content when the global $post object is empty
  • Fix: When grabbing members or payments, if the ‘*_per_page’ option is empty, add a default limit.
  • Fix: Issue with recurring subscriptions when a 100% first month discount code was used.
  • Fix: Reset update status for all add-ons when the serial number is updated.
  • Misc: Added a filter over the output of the pms-restrict shortcode: pms_restrict_content_output
  • Misc: Notify admins in the back-end if PayPal API credetials are needed but missing
  • Misc: Add register/recover links to the Login form based on the pages saved in Settings.
  • Misc: Add a small margin after forms.
  • Misc: Add a notice linking the Submit Buttons styling doc page if the Avada theme is used.


  • Fixed issue with Members getting a wrong Expiration Date for subscriptions.


  • Implemented a Payments logging system for easier debugging of payment related issues
  • If a payment gateway is not configured correctly, do not proceed and show admins a relevant message
  • Let admins apply the ‘Who can purchase ?’ subscription plans restriction without checking the Logged in Users option first
  • Allow admins to hide/show columns from the Payments table using the Screen Options menu
  • If the pms-account shortcode is on the same page as the WooCommerce account shortcode, do not add our URL rewrite rules
  • Added the ‘logout_redirect_url’ shortcode parameter to pms-account which allows the admin to define the Logout Redirect URL
  • Added the ‘pms_member_account_logout_tab’ filter so the Logout tab can be removed from the pms-account shortcode
  • Added actions before and after a tab content for the pms-account shortcode
  • Added compatibility with the AutoLogin feature from the Eduma theme
  • Fix error with SiteOrigin Widgets Bundle
  • The screen options -> members per page option is now also working for the Bulk Add Members table


  • Hide Retry Payment action for manual payments
  • Allow users to request only one Renewal through the manual payments gateway
  • Allow admins to show a single plan in a subscription/register form using URL parameters
  • For recurring payments, show the amount that will be charged at the Next Payment Date
  • Profile Builder Integration – Fix issue with payment form not appearing


  • When detecting HTTPS, take into account some edge cases
  • Assign the correct expiration date in case of a manual renewal for a canceled subscription with an expiration date in the future
  • Allow users to specify their own custom tab for the pms-account shortcode (through custom code)
  • Don’t manipulate window history if no parameters were removed from the URL
  • Notify admins in the front-end about a missing PayPal Email Address
  • Added a filter over the subscription plans from pms-register
  • Fixed an issue with the verification of a password reset request
  • Profile Builder Integration – Assign the selected subscription plan if an admin manually activates an email address
  • Profile Builder Integration – Added an action to the Email Confirmation payment form so custom validation can be added


  • Made pms-account permalinks work even if the page with the shortcode is not top level.
  • When completing a manual payment request for an Upgrade, replace the subscription plan with the new one.
  • When completing a manual payment request for a Renew with the subscription being Expired, use the current date to generate the Expiration Date.


  • Add a filter over the pms-register shortcode output.
  • Visual Bakery widgets for our shortcodes.
  • Fixed pagination for the payment history shortcode.
  • Beaver Builder modules for our shortcodes.
  • Add a logout link to the Account page tabs.
  • Siteorigin Pagebuilder widgets for our shortcodes.
  • Allow a plan pre-selection based on an URL parameter.
  • Display success messages only once if multiple shortcodes are on the same page.
  • For pms-register, if the user is logged in, display the pms-subscriptions shortcode.
  • Elementor widgets for our shortcodes.
  • Tabbed interface for account page & render login form if user is logged out.
  • Add paypal link to open payment page to the ProfileBuilder success message.
  • Payment type column is now filled when retrying a payment.
  • Added View & Edit link near the selected pages in settings.
  • Add unique class over the subscription plan wrapper.
  • Add a filter in plans output to be able to preselect a plan using custom code.
  • Compatibility with PB since we use the same class names.
  • Fix notice on Add New plugin page when an add-on update was pending.
  • Add option to export Canceled subscriptions.
  • Add option to restrict comments.
  • Removed logged-in requirement for Subscription Plans restriction.
  • Made test/live mode more obvious.


  • Fixed an error on PHP 5.3 and lower versions.


  • Add option to disable a specific email.
  • Implemented redirect from default WP forms (wp-login.php) to the front-end ones created with our plugin
  • Added option to set Paid Member Subscription pages in Settings
  • Fix filter to return the correct serial number.
  • Fixed out of date notifications display.


  • Added an option to prevent account sharing by not allowing users to be logged in with the same account from multiple places at the same time
  • Refactored the Settings Page
  • Implemented functionality to add the serial number only once.
  • Small visual changes for the Add-ons page.
  • Add Settings, Documentation and Get Support links on the Plugins page.
  • We no longer take into consideration the users can register option
  • Removed all other plugin notifications from our pages.
  • Fixed some php notices
  • Refactored activation key for password resets retrieval
  • Fixed notice when default payment gateway was not active anymore.
  • Manually adding a Fixed Expiration Date subscription is now using the correct date.


  • Fixed issue with YOAST SEO plugin that was executing the shortcodes from our messages on the wp_head hook so they weren’t executing again in the content
  • We now render HTML from plan descriptions for single plans.
  • We now add a subscription time for manual payments.
  • Corrected some typos from the Export page.
  • We no longer show Upgrade, Renew or Cancel links if plan is inactive.
  • Removed shipping details from the PayPal Standard Checkout page.
  • 100% discount codes now work when only one gateway is active.
  • Fixed: manually adding a pending payment over an existing active subscription, changes the subscription status to pending


  • Added export functionality in PMS: you can now export payments and members to csv format
  • You can now add payments manually from the admin area


  • Refactored the login form to have greater compatibility with other plugins and
  • Added i18n support for numbers.
  • Hide Email Confirmation payment message on Profile Builder forms if no plan is selected
  • Added a filter to stop all emails from being sent
  • Added more actions and filters to the codebase
  • Fixed problem with Profile Builder conditional fields when the credit card info wasn’t showing on stripe gateway
  • Fixed Automatically Login Feature breaks PayPal Express gateway
  • PMS Account actions are now replacing our shortcode instead of the_content.
  • Don’t process payment if user doesn’t exist anymore.


  • Added “Template” content restriction mode
  • Added “Automatically login” new members after successful registration setting
  • After confirming the email for a Free subscriber, do not make him subscribe again to get the Free subscription, simply register him as a member.
  • Fixed: Issue with content restriction redirect url when it didn’t contain http
  • Fixed: Now content restriction with more tag restricts the whole post if there is no more tag
  • Added a filter over the Profile Builder field subscription plans output.


  • When changing a users subscription plan from the back-end we now change the billing amount as well
  • Fixed: discount codes being applied twice for Stripe & PayPal Express in some cases
  • Fixed: The rule to remove the list bullet points is more specific.
  • Fixed: Don’t send activation email on subscription renewal.
  • Fixed: discount code box not loading if you have the Multiple Subscriptions Per User and define two individual plans, a free and paid one
  • Added a filter over the redirect URL so we can change or add parameters to it.
  • Added a filter for $payment_data when processing plugin scheduled payments using a cron job
  • Added a filter so we can change the content restriction message.


  • Fixed: the activation email is now sent when upgrading a subscription.
  • Fixed: pms-restrict shortcode wasn’t working when sub expiration date was empty.
  • Fixed: problem with trial and non recurring subscriptions
  • Fixed: compatibility issue with Profile Builder conditional logic on Edit Profile forms


  • Small modifications required for the new addon that will be launched
  • Added missing addons to Basic Info page and a notice for Fixed Period Memberships addon


  • Added individualized classes on the field containers on register and profile forms
  • Added hooks below each item in Subscription Plan Details metabox
  • Added a filter on the pms_get_subscription_plans function output


  • Fixed: a possible notice if there was no subscription plan selected on the Profile Builder form
  • Fixed: issue with Woocommerce discounts that did not get applied to products that existed before we activated PMS
  • Fixed: payments that were not showing in reports for the last day of the month.
  • Added GMT offset to the date we display in the payment history shortcode.


  • Fixed: Issue with Profile Builder registration forms, when multiple subscription fields were present the user got the same subscription multiple times
  • Fixed: Issues with subscriptions not registering when registering from a Profile Builder form
  • Fixed: Issues with Profile Builder register form and the Stripe gateway
  • Fixed: Issue with post preview when there was a restrict shortcode in the post (it crashed bad)
  • New: Added filter on the returned value of the pms_get_subscription_plans() function: pms_get_subscription_plans
  • New: Added the filter pms_change_default_site_user_role which you can use to only have the subscription role and not the default site role
  • Misc: If Payment Type is MANUAL allow manual adding of the TRANSACTION ID


  • Fixed: Sorting subscription plans up/down would break hierarchy.
  • Fixed: Subscribing to a free trial subscription plan would not go to the payment processor.
  • Misc: Deleting a user directly from the admin Users interface will not cancel all member subscriptions for that user.


  • Fixed: Registration failing on Profile Builder register forms when Email Confirmation feature is active.
  • Fixed: Editing a member’s subscription from the admin area without changing the status of the membership would send an email to the user that the status of the membership has changed even if it hadn’t.
  • Fixed: The dates from across the plugin were not translatable. Now they are.
  • Fixed: PHP notices on the register forms, when deactivating a payment gateway without removing it first from the active payment gateways.
  • Misc: Added WooCommerce compatibility tags.
  • Misc: Updated translation files.


  • Fixed: Validation issues for extra checkout form fields when using a Profile Builder custom form


  • Fixed: Saving a subscription plan breaks subscription plans hierarchy


  • New: Added support for YouTube video embeds into restriction messages.
  • Fixed: Activation emails not being sent properly for some payment gateways.
  • Fixed: Adding an upgrade / downgrade to subscription plans would mess the order of the subscription plans.
  • Fixed: The styling of WooCommerce’s messages would be applied to restriction messages, instead of the default styling.
  • Fixed: Member payments history table pagination would break in some scenarios.
  • Misc: Member payments history table status column are now translatable.


  • New: Added new payment action hooks: pms_payment_insert, pms_payment_update, pms_payment_delete
  • New: Added new member subscription action hooks: pms_member_subscription_insert, pms_member_subscription_update, pms_member_subscription_delete
  • New: Added new payments list table filter for entry actions: pms_payments_list_table_entry_actions
  • Fixed: PHP notice conflict when using Profile Builder Pro and Paid Member Subscriptions
  • Fixed: [pms-restrict] shortcode not displaying restriction message when user is logged-in, but does not have a subscription attached
  • Fixed: [pms-restrict] shortcode not displaying the custom message set for the current post
  • Fixed: Sorting members in the admin area as it was not working
  • Misc: Deprecated following payment action hooks: pms_payment_inserted, pms_payment_updated, pms_payment_deleted
  • Misc: Deprecated following member subscription action hooks: pms_member_subscription_inserted, pms_member_subscription_updated, pms_member_subscription_deleted


  • Fixed: “ip_address” database table column had a character count of 32, smaller than the needed for IPv6 addresses, resulting in payments not being added to the database
  • Fixed: Recover password shortcode was being echoes instead of being returned


  • New: Added action hook to payment history table so that developers can add extra columns
  • New: Added action hook to member account for the member subscriptions so that developer can add extra member subscription actions
  • Fixed: Removed trial end field from member subscription edit page if there aren’t any payment gateways that support trials
  • Fixed: Canceled member subscriptions can be renewed before the default 15 renewal period


  • New: Modified the Checkout Extra Fields API naming to Form Extra Fields API
  • New: Added support for “required” parameter for the Form Extra Fields API
  • New: Added Form Extra Fields API support to the edit profile form
  • Fixed: “pms_get_current_page_url” filter did not apply correctly


  • Fixed: Email notifications were not being sent properly. Instead of sending the custom emails set in the settings page, the defaults were being sent.
  • Misc: Small code clean up.


  • New: Added administrator email notifications for member subscription status changes.
  • Fixed: Issue with subscription plans not being displayed on Profile Builder register forms.
  • Fixed: Compatibility issue with Paid Member Subscriptions restrict content meta-box and custom post types created by PODS plugin.


  • Fixed: Fatal error that happens on registration when checking for an amount in payment data.


  • New: Added supported for payment meta information and provided a basic API to get, add, update and delete payment meta data
  • New: Extended member subscription meta information basic API to handle add and delete member subscription meta data
  • New: Implemented the Checkout Extra Fields API, which permits developers to easily extend Paid Member Subscriptions checkout sections and fields
  • Misc: Refactored the member admin interface to greatly improve performance


  • Fixed: If the register automatic billing information fails, the member subscription is being added as active, which should not be the case, it should be added as pending.
  • Fixed: Members subscribing for an unlimited plan do not have access to the restricted content
  • Fixed: Canceled member subscriptions now expire on the proper expiration date


  • Fixed: Unlimited time subscriptions and trial subscriptions that expired prematurely
  • Fixed: Fixed PHP notice of undefined $payment variable when registering to a free subscription plan
  • Fixed: Subscription Plan field from Profile Builder was not displaying in the edit profile custom forms
  • Fixed: Abandoning a subscription removes the user role associated to the subscription plan tied to the subscription
  • Fixed: “Something went wrong. Could not process your request.” message being displayed in the admin screen after saving a post
  • Misc: Improved pms_get_member_subscriptions() function to accept a better set of arguments
  • Misc: Removed the subscription plan sorting tags added in Profile Builder plugin, due to the fact that they are not supported


  • New: You can now add HTML into the description field of the subscription plans
  • Fixed: PayPal Standard Payment Gateway issue when registering from a Profile Builder custom form
  • Fixed: Issue with “Processing, please wait…” button text appearing before the button, not on the button
  • Fixed: When a member’s subscription expires, the user role of the subscription plan will now be removed
  • Fixed: Upgrading to a subscription plan removes the user role that is attached to the old/downgrade subscription plan
  • Misc: Small refactoring to move utility functions in their own separate file


  • Fixed: Issue with subscription submit button on Chrome browser.
  • Fixed: Issue with Profile Builder compatibility when Profile Builder’s email confirmation option was active


  • Notice: This is a major update! Please read and follow the Update Procedure to maintain full functionality.
  • New: Added support for subscription plan free trials.
  • New: Added support for subscription plan sign-up fees.
  • New: Added option to set the automatic renewal option for each subscription plan, if the active payment gateways support the renewal functionality.
  • New: Added Abandon Subscription action to mimic the Cancel Subscription action.
  • Fixed: The Cancel Subscription action will now only cancel the members subscription without removing it completely.
  • Misc: The Member Account shortcode has been improved to display more information about the user’s subscription.
  • Misc: The admin Edit Subscription screen has been improved, to offer more flexibility for setting up and editing the details of a subscription.


  • New: Allow only logged-in users or members to view your WooCommerce products by restricting access to them, the same way as you restrict content
  • New: Allow only logged-in users or members to purchase your WooCommerce products
  • New: Add special automatic discounts to your WooCommerce products that only your members have access to


  • Fixed: Major issue regarding content restriction for attachments


  • Fixed: Issue regarding the from email address. The from email address set in the Settings page would be replaced for all emails sent, not only the ones sent by Paid Member Subscriptions.
  • Fixed: Content restrictions for attachment pages did not work.
  • Misc: Added “pms_get_subscription_plan_upgrades” filter on the return values of the function that gets the subscription plan upgrades available for a subscription plan.


  • New: Added German, Italian and Portuguese translations
  • Misc: Small refactor on the email system


  • New: Added logout_redirect_url to the login shortcode
  • Misc: Extended with 12 hours the cron job that verifies if a subscription should be set as expired


  • Fixed: Currency is now being displayed properly on forms.


  • Fixed: Issue with HTML elements not being saved in the e-mail and content restriction messages fields from the Settings page
  • Misc: Payment dates are now displayed by taking into account the website’s timezone
  • Misc: Display correctly the currency symbol in the Payment History shortcode


  • Fixed: Subscription activation e-mail was being sent instead of the expiration e-mail when a subscription would expire
  • Fixed: Fixed security issues and performed a security audit


  • New: Added option for members to cancel their pending subscriptions from the account page
  • Fixed: Redirect to PayPal compatibility issue when registering from a Profile Builder form
  • Fixed: Content Restriction shortcode now displays the default message set in the Settings page
  • Misc: Removed the cancel subscription option if the website does not have HTTPS


  • New: Added custom and general redirect as a method of restricting access to the protected content.
  • New: Added [pms-logout] shortcode for easy placement of a logout link.
  • Misc: Extended the ability to search for members by custom user meta in the admin Members page.


  • Fixed: PHP fatal error on certain versions of PHP


  • New: Custom restriction messages per individual post basis
  • Fixed: PHP 7.1 warnings when using certain shortcodes without any parameters
  • Fixed: Compatibility error with Profile Builder plugin when registering a new user while using the E-mail Confirmation feature and choosing an e-mail address as the username
  • Fixed: Retry payment, renew subscription, upgrade subscription and cancel subscription did not work when using a page built with Page Builder by SiteOrigin plugin
  • Misc: Restricted post preview now displays only text. Shortcodes are no longer processed due to security reasons.
  • Misc: pms_member_check_expired_subscriptions() function has been rewritten for increased performance.


  • New: Added conditional function pms_is_post_restricted() that verifies if the current post has access restriction for the current user viewing it. An $post_id can be provided as the first parameter to check if the current user is restricted from accessing the post with the id = $post_id.
  • New: Added new insert() method for the PMS_Payment class. Deprecated add() method from PMS_Payment class.
  • Fixed: Recover Password functionality works now for users that have multiple words as their username.
  • Fixed: Changing tabs in plugin Settings page doesn’t lead anymore to 404 error, when JavaScript isn’t loaded.
  • Fixed: Scheduled posts don’t lose Content Restriction meta data anymore when automatically changing status from Scheduled to Published.


  • New: Added ability to search users by typing their username in the Add Member Information page.
  • Fixed: pms_member_payments table does not have a primary key. A column named ‘id’ is now the primary key for this table.
  • Fixed: Retry Payment success messages were not being displayed to the member after the payment process.
  • Misc: Restricted Posts Preview option now permits the use of shortcodes in the preview.


  • Fixed: pms_get_payments() function did not return complete data for a payment.
  • Misc: JavaScript refactoring for improved performance and readability.
  • Misc: jQuery UI Smoothness is now served over https.
  • Misc: Deprecated several methods of the PMS_Payment class.


  • New: Subscription Plans compatibility with Profile Builder’s conditional logic rules.
  • Fixed: Undefined index PHP Notice for Default Payment Gateway when first installing the plugin.
  • Misc: Refactored parts of the payments system to improve performance.


  • Fixed: Payment Expiration date was not set properly in certain situations.
  • Fixed: “Headers already sent” warning in certain conditions on Reports Page.
  • Fixed: Bug where payment did not end up as Complete when using a 100% discount code.
  • Fixed: Manual/Offline payment gateway error when registering through Profile Builder.
  • Misc: Small code refactoring for integration with AffiliateWP.


  • New: Changed PayPal’s endpoint to the new and supported ones.
  • Fixed: PHP warnings on first activation.
  • Fixed: Single site activation of the plugin on a network installation would create custom database tables for all sites.
  • Misc: Added various hooks in the Payments and Members list tables for extensibility reasons.


  • New: Added new Reports page where the administrator cand view a summary of the total earnings and payments for a given period.
  • New: Added ability to filter members by Subscription Plan in the admin Members page.
  • Fixed: Upgrading a member’s subscription plan from the admin interface would add the user role of the new plan to the member without removing the one of the old plan.
  • Misc: Completing a Manual Payment from the admin interface will now activate the member’s subscription automatically.


  • New: Added option to display a preview of the restricted posts to users that are logged-out or that are not subscribed to a plan.
  • Fixed: Plugin is no longer displayed in the admin menu for users that are not administrators.


  • New: Paid Member Subscriptions and Profile Builder are now compatible when using Profile Builder’s E-mail Confirmation feature


  • New: Added manual payment gateway
  • Misc: Small text formatting fixes


  • New: Added an Uninstall tool that removes all custom data saved by the plugin in the database


  • New: Added a WP Dashboard payments summary box, with a brief income report for the current month, current day and also a list of the latest completed payments
  • Misc: Small refactoring to the redirect to success page from Profile Builder forms
  • Misc: Small code clean-up and new comments added to certain class properties and methods


  • Misc: Code clean-up and small refactoring


  • Fixed: Password Reset security issue


  • New: Added a Recent Payments table in the edit screen of the member for a quick view of the member’s latest payments
  • New: Added new developer hooks in the pms_get_payments(), pms_get_members() and pms_get_users_non_members() functions
  • Fixed: WordPress database warning when using the search form the Payments admin screen
  • Misc: Minor admin CSS improvements


  • New: Added the “pms_payment_updated” developer hook after a payment was updated.
  • New: Added the “pms_email_subject” and “pms_email_content” developer hooks to filter the subject and content of an e-mail before sending it.
  • Misc: Refactored the code that manages the content filtering


  • New: We now load the plugin translation from the current theme in the folder local_pms_lang if it exists otherwise normally from the plugin dir
  • New: Added “refunded” status for payments
  • Fixed: PHP warning that appeared in [pms-payment-history] shortcode
  • Fixed: Content restriction bug that permited access to the post’s excerpt on archive pages


  • New: Admin option to select whether the currency appears before or after the subscription’s price
  • New: Added HTML “id” parameter to all forms outputted by the plugin


  • New: Added new shortcode [pms-payment-history] to display the user’s payment history
  • Fixed: Subscription price and description show up once again on front end forms when only one subscription plan is present
  • Fixed: Fixed issues with PMS_Email class that throw PHP notices


  • New: Admins can now edit payments from the WordPress admin area
  • New: The user’s last login time is now saved in the ‘last_login’ user’s meta, for usage by add-on developers
  • Misc: Member Subscription start time is saved now as the current time, not the one at the ending of the day
  • Misc: Extended the PMS_Email class with new functionality


  • New: Added a new developer hook “pms_update_check” that executes when the plugin updates automatically
  • New: Refactored display of the subscription plans when only one option is available from single input radio field to hidden field
  • Misc: Discount Code code is now saved in the payments table and is displayed in the admin area for each payment that was made with a discount code
  • Misc: Minor front-end CSS improvements


  • New: Added a delete payment action in the admin Payments table
  • New: Added two new hooks for the subscriptions plan table in account short code
  • Fixed: Subscription Plan custom user role is now added only on plan activation
  • Misc: Minor CSS fixes


  • Added front-end JavaScript helper functions for add-on developers
  • Small refactoring to better integrate future payment gateways


  • Small refactoring to better integrate future payment gateways


  • Added possibility to load translations
  • Small refactoring to better integrate future payment gateways


  • New PayPal IPN validation system
  • Refactoring to better integrate future payment gateways


  • Small refactoring to better integrate future payment gateways


  • [pms-restrict] shortcode has new attribute “display_to” which can take the value “not_logged_in” to show content only to logged out users
  • [pms-subscriptions] now redirects the user back from the payment gateway to the website
  • Added new hooks for increased functionality options
  • Minor CSS changes
  • Minor bugs and improvements


  • Fixed issue where PayPal IPN was not working on certain servers
  • Fixed bug where the slug of any post could not be modified
  • Added new hooks for increased functionality options
  • Various minor bugs and refactoring


  • Added plugin update checker method


  • The IP address of the user registering a payment gets saved for each payment
  • Fixed bug where post slug could not be changed
  • Added new hooks for renew, upgrade and retry forms


  • Added ‘redirect_url’ attribute to the [pms-recover-password] shortcode


  • Fixed issues with payment gateways functions


  • Refactored the general payment gateway processes to better integrate future payment gateways
  • Fixed logout redirect issue that was interfering with Profile Builder
  • Changed e-mails mime type to text/html


  • Changed [pms-new-subscription] shortcode to [pms-subscriptions]
  • Added Bulk Add New members feature


  • Minor modifications in the readme file
  • Minor bug fix for [pms-account] shortcode
  • Updated functionality for the [pms-new-subscription] shortcode


  • Initial release.