Membership & Content Restriction — Paid Member Subscriptions


Paid Member Subscriptions is membership made easy.

It offers a complete membership solution, allowing you to accept member payments, manage members, create subscription plans and restrict access to premium content.

Integrates with WooCommerce, allowing you to restrict product viewing and purchasing to members-only as well as offer special discounted product price based on subscription plans.

To start simply create a new page and give it an intuitive name(e.g. Member Registration) and add the following shortcode: [pms-register].
Publish the page and you are done!

Like this plugin? Consider leaving a 5 star review.

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

You can use one of the following shortcodes:

  • [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] — allows members to 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

Please browse our plugin description page for more information regarding shortcode parameters and plugin modules.

Membership Modules:

Content Restriction

You’ll find it quite 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, based on their subscription plan(s)
  • partial content display by using [pms-restrict][/pms-restrict] shortcode
  • display another template for restricted posts

    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 payments from your subscribers. You can keep track of all member payments, payment statuses and purchased subscription plans. Access to detailed payment logs.

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.

Members Management

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

Member 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:

  • 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.

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 PRO or Hobbyist version)

  • 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
  • Discount Codes — create an unlimited number of discount codes and offer percentage or flat rate based discounts
  • 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
  • reCAPTCHA — add Google reCaptcha verification inside the Paid Member Subscriptions forms or inside the default WordPress forms
  • Labels Edit — edit any label/string that is coming from the Paid Member Subscriptions plugin

Pro Add-ons (available in the PRO version only)

  • Group Memberships — sell group subscriptions to your users
  • Recurring Payments for PayPal Standard — accept recurring payments from your members through PayPal Standard
  • PayPal Express — accept one-time or recurring payments through PayPal Pro (credit card) and 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

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

Адрес сайта

Документация (англ.)



  • Basic Information page for Paid Member Subscriptions - membership plugin
  • Subscription Plans listing from Paid Member Subscriptions - membership plugin
  • Adding a New Membership Plan
  • Member Registration Page - Front-end membership plans listing (logged out)
  • Member Registration Page - Front-end membership plans listing (logged in)
  • Member Login Page - Front-end user login form
  • Member Account Page - Subscriptions tab
  • Member Account Page - Edit Profile tab
  • Member Lost Password Page
  • Restrict Content - posts, pages, custom post types (Gutenberg)
  • Restrict Content - posts, pages, custom post types (Classic Editor)
  • Members Management
  • Add New/Edit Member on your Membership site
  • Membership Payments
  • Settings - General
  • Settings - Setup PayPal payment gateway used to accept payments
  • Settings - Content Restriction Messages
  • Settings - Customize default member emails
  • Add-ons - Paid Member Subscriptions
  • WooCommerce integration general settings
  • Product discounts and restriction settings for individual product
  • WooCommerce shop page restricted on the front-end
  • Display of member discounted products in the front-end


  1. Upload the paid-member-subscriptions folder to the ‘/wp-content/plugins/’ directory
  2. Активируйте плагин используя меню ‘Плагины’ в 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.

Can my members pay using a credit card ?

The subscription plan payments are handled via PayPal Standard. Your members will be able to pay for the membership via their credit card or their PayPal account. More payment gateways are supported via Add-ons.

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

Can I modify the registration form ?

Yes, this is possible using Profile Builder. For custom fields you will need a paid version.
More information can be found on this page.

Where can I find out more information?

For more information please check out Paid Member Subscriptions documentation.


I bought the plugin a few days ago. From my point of view one of the most beautiful membership plugins, that are currently on the market. It is very flexible and easy to customize so that it fits perfectly into every WordPress page. Moreover, it is very clean, only activate and use those things, who you truly need. Additionally, their customer support is without any doubt outstanding.
Perfect plugin to sell roles using paypal (or stripe). I use it combined to Profile Builder, so users subscribe using Profile Builder (email confirmation, password sent by email, password strength) and later they can buy a role using Paid Member Subscriptions. The support team is very responsive.
Very happy with plugin and support that I have received in setting up. Really like the plugin and would buy again it again if I had another website that needed it. Support people also helped add some coding to my website because I have no idea how to add in coding anywhere. The makers of the plugin are in Europe, so if you are in North America, it's best to request assistance the day before and be prepared to work with them in the morning hours. Would highly recommend the plugin.
Paid Member Subscriptions worked great for an educational website that we built. It allowed for multiple levels of subscription for our teacher, student, and parent accounts. Support was also excellent and was able to troubleshoot an incompatibility issue involving three separate plugins very quickly.
This plugin is awesome. Compared to any similar plugin out there, currently I would choose this plugin. But, please add more payment gateway. As you do that, ensure it's also easy for us to add our own custom ones. Please Please.. Thank you.
Посмотреть все 115 отзывов

Участники и разработчики

«Membership & Content Restriction — Paid Member Subscriptions» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:


«Membership & Content Restriction — Paid Member Subscriptions» переведён на 22 языка. Благодарим переводчиков за их работу.

Перевести «Membership & Content Restriction — Paid Member Subscriptions» на ваш язык.

Заинтересованы в разработке?

Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.

Журнал изменений


  • 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


  • Первая версия.