Membership Plugin – Restrict Content


Restrict Content is a powerful WordPress membership plugin that allows you to monetize content access. As a content restriction plugin, Restrict Content gives you full control over who can and cannot view content on your WordPress site. As a design tool, Restrict Content helps you create pages that dynamically display content based on user role or membership level.

Restrict Content can power a full-fledged membership or subscription website with multiple membership levels, or just hide a page or post. Restrict Content makes it simple to limit access to posts, pages, media, custom post types, and even API requests. This gives you full control over who can and who cannot view content on your WordPress site.

Restrict Content is completely customizable with features built for developers and extensible with a library of Pro add-ons.

💪 As Powerful as a WordPress Membership Plugin … or as Simple as a Content Restriction Plugin

Use Restrict Content as a WordPress membership plugin to:

  • Create unlimited membership levels or subscription packages. Easily create free, trial, and premium memberships or subscriptions. Each plan can be used to set a user’s access to specific content on your site.
  • Sell memberships and collect payments on your WordPress site. You can even collect payments with Stripe in the free version!
  • Control content access for your members. Decide who can access specific pages, posts, archives, and even WordPress blocks based on a member’s plan, status, and more.
  • Manage your members or subscribers. Restrict Content lets you easily keep track of your memberships through an intuitive admin interface. Quickly view active, expired, cancelled, and pending memberships. Memberships can be added manually, modified in bulk, and easily searched for when you need to locate a specific record. Each membership can also be manually modified at any time.
  • Allow members to manage their account with self-service account management. Members can easily view their account status, renewal or expiration date, and options to upgrade or cancel their account. They can also access a complete history of payments made to their account, including PDF invoices for each payment. Finally, members are able update their account name, email, and password through an included profile editor.
  • Offer prorated memberships. Customers can also upgrade and downgrade between membership levels at any time. These upgrades and downgrades are prorated based on how much the customer has already paid and how much time is left in their current membership.
  • Auto-renew membership payments. Select whether membership payments should always auto renew or let the customer decide.

Use Restrict Content as a WordPress content restriction plugin to:

  • Restrict access to your WordPress site based user role. Limit access to full content via a simple interface on the post, page, and custom post type editing screens.
  • Control user access to content based on WordPress user role, access level(s), or membership level(s).
  • Protect sensitive content.
  • Clearly separate public content from private content
  • Restrict access to entire pages or specific sections
  • Let users register and login from the frontend of your site

“Most plugins that restrict content are heavy and need 3rd party commerce solutions like WooCommerce to work. Restrict Content Pro has EVERYTHING built-in: memberships, payment gateways and plenty of add-ons – a true, one-stop solution for membership websites!”
David Attard, CollectiveRay

✨ Features

Our feature-rich plugin comes with everything you need to restrict content and sell memberships from your WordPress site.

  • 👥 Membership Levels – Set access level, duration (in days, months, years), number of renewals, price, signup fee, status, assign WordPress user role. Set any price (including free) or optionally set a sign up fee. Set the frequency and period, and specify a user role that will be assigned to members when they register.
  • 🖥 Auto-Created Member Pages – Pages generated by the plugin include: Registration, Success, Account, Edit Profile, Update Billing Card
  • 🔁 Auto Renewals – Select to let customer choose whether to auto renew, always auto renew, or never auto renew.
    💳 Payment Gateways – Stripe and Manual Payments, PayPal (Pro), (Pro), Braintree (Pro), Custom (Pro).
  • Upgrade/Downgrade Membership – Allow members to change their subscription level at any time.
  • ✉️ Member Emails – Paid membership activation email, free membership activation email, cancelled membership email, expired membership email, payment received email, renewal payment failed email.
  • 📄 Payment Invoices – The payment invoice has a clean design and is printable. Customize with your logo, company name, address, email, header text, notes, and footer text
  • 🪄 Prorated memberships – Allow members to pay the price difference when they upgrade.

🙌 Even More Features

✔️ Redirect Default Login URL – Force the default login URL to a custom URL.
✔️ Content Excerpts – Choose whether or not to show content excerpts to members without access to the content.
✔️ Import/Export Data – Whether you prefer to maintain your own records of your memberships database, you wish to run your own analysis, or you simply need to import membership records into another service or application such as MailChimp or Excel, Restrict Content allows you to export all membership records to a CSV at anytime.
✔️ Restricted Content Message – Customize the message shown to users who do not have permission to view the content.
✔️ Restrict access to WooCommerce products.

🏋️‍♀️ More Power with Pro Features

  • 🏷 Discount code support – Discount codes allow you to provide your customers with special promotional codes that give them a discount on the purchase of a membership. Restrict Content Pro supports various kinds of discount codes and site administrators can easily create any number of discounts from the admin interface. Discount codes can be set up to provide a percentage discount or a flat rate discount. Each discount code is created with a name, description, unique code, maximum uses, and optional expiration dates.
  • 📈 Detailed reporting – Restrict Content Pro provides a complete reports section where you can view the earnings of your membership website. You can view total earnings for any given period or drill down to specific membership levels.
  • 🕵️‍♀️ Free trials – Allow prospective members to try a membership before they buy. Send emails to free trial users when their free trial is about to end.
  • ✉️ Member Email Customization – Add a personal touch to all of your member emails with Restrict Content Pro.
  • 🔒 Google reCAPTCHA – Protect your member login form from bots with Google reCAPTCHA.
  • 🚀 34 Powerful Add-ons – All Restrict Content Pro plans come with all Restrict Content Pro add-ons to add more integrations and functionality to your site.

Upgrade to Restrict Content Pro now

🛠 Developer Features

Restrict Content Pro has been built with developers in mind. That means it is flexible, easy to extend, and chocked full of action hooks and filters, making it easy to modify and tweak to your specific needs. With clean and simple display options, Restrict Content Pro is designed to integrate perfectly with every theme without any custom CSS being necessary.

Extensive and easy to modify template files are included with Restrict Content Pro. If you have built a theme, for clients or general distribution, you can easily customize the display of registration forms, profile editor, account pages, and more through custom template files added directly to your theme’s folder.

Because of the huge number of action hooks and filters, Restrict Content Pro can be easily integrated with other plugins to help provide a more seamless experience for customers. This also makes it possible to build add-on plugins for Restrict Content Pro that extend its functionality.

✔️ Theme Integration – Designed to work with any theme.
✔️ Action Hooks & filters galore – Restrict Content contains a bunch of action hooks and filters, allowing you to easily customize the plugin to your specific needs. Check out our extensive developer docs for actions, filters, classes, constants, and functions.
✔️ Easy to Modify Template files – Making changes to Restrict Content Pro template files is a cinch. Make a copy of any plugin template file and drop it in your theme to override the plugin’s file with your own custom markup.
✔️ So Many Integrations – Restrict Content plays nice with a bunch of plugins and third-party services, including e-commerce systems like WooCommerce, lots of Pro payment gateways, email newsletter services, and much more!
✔️ REST API – Restrict Content Pro includes a complete REST API, allowing you to extend the plugin and its functionality beyond WordPress and into your web application. The possibilities for what you can do are nearly limitless!
✔️ WP-CLI Integration – Restrict Content Pro integrates with WP-CLI. Several commands are supported in order to speed up your workflow with batch processing jobs, creating memberships, and viewing customer information.
✔️ Debug mode for developers – Turn on error logging to help identify issues. Logs are kept in Restrict > Tools.

💳 Stripe payment processing support

It’s no secret that we believe Stripe is the best payment processor. Stripe currently supports 14 languages, over 35 countries and 135+ currencies. Check support for your country.

Hands down, Stripe has the simplest setup process and highest reliability we know of – and support for Stripe is included in Restrict Content. Stripe has a per-transaction charge which varies by country. See Stripe’s pricing page for more information. However, if you prefer a different payment gateway or your country does not support Stripe, we’ve got you covered…

Besides Stripe, we have several payment gateways available to Restrict Content Pro. Visit the following links to get more details for the payment gateway of your choice.

🧰 Shortcodes

  • Limit access to content with a shortcode. Example: [restrict]This content is limited to logged in users.[/restrict]
  • Limit access to content based on user role. Example: [restrict userlevel="editor"]Only editors and higher can see this content.[/restrict]
  • Display a registration form for new accounts on any page of your website with [register_form].
  • Display a login form for existing users on any page of your website with [login_form].

🛒 WooCommerce integration

Restrict Content allows you to easily control who can view and/or purchase products in WooCommerce, the most popular eCommerce plugin for WordPress.

💬 Get reliable help

Restrict Content is backed by top-notch technical support from our full-time support team. We also have extensive documentation site available. If you’re looking for faster support via email, we encourage you to purchase a Restrict Content Pro license.

We check in on the The Restrict Content forum here on about once a week to help users with basic troubleshooting and identifying bugs. If you’re looking for premium, personalized support, consider upgrading to Restrict Content Pro.

📃 Documentation

All of our documentation can be found in the iThemes Help Docs.

🤔 Who is Restrict Content Pro for?

No matter what kind of membership site or plans you offer, Restrict Content Pro can be adapted to suit your business needs – and set up in many different ways, based on how you want to allow members to access your site’s content.

Here are a few examples:

“RCP is always at the top of my list when helping clients choose a membership platform. In addition to being a great plugin ​today​, the pace of improvement is impressive. RCP gets better and better all the time.”
Travis Northcutt, Member Up

💌 Email marketing service provider add-ons

With a Professional or higher license, you can connect Restrict Content Pro to any of the following email marketing service providers. This allows you to add members to your mailing lists for different membership levels as well as synchronize account details.

🔌 Other add-ons in Restrict Content Pro

  • Group Accounts – Sell multi-member group memberships.
  • Drip Content – Release content to members on a schedule.
  • Custom Redirects – Specify where members are redirected on a per-membership-level basis.
  • WooCommerce Member Discounts – Give members automatic discounts on purchases in your WooCommerce store.
  • Site Creation – Allow paid members to purchase sites in a WordPress multisite.
  • Restriction Timelock – Keep content unrestricted until a specified date in the future.
  • Restriction Timeouts – Specify a date and time when restricted content will have its restrictions removed, making it available to everyone.
  • Restrict Past Content – Restrict content published prior to a member’s join date.
  • Hard-set Expiration Dates – Allows for a specific expiration date to be assigned to membership levels.
  • Help Scout – Display customer’s membership information from Restrict Content Pro inside of Help Scout when viewing tickets.
  • Math Verification – Add a math verification field to registration forms.
  • IP Restriction – Allow specific IP addresses to bypass content restrictions and ban other IP addresses from signing up for a membership plan.
  • Enforce Strong Passwords – Enforce strong passwords during registration.

👋 Meet the team

Restrict Content is built by iThemes. We also make popular WordPress plugins like iThemes Security Pro and BackupBuddy used by hundreds of thousands of people just like you.

✏️ From our blog

Check out some of our popular posts for actionable advice for running membership sites.

Subscribe to our newsletter to get posts like these in your inbox as soon as they’re published.

Install Restrict Content Manually

  1. From the dashboard of your site, navigate to Plugins –> Add New.
  2. Select the Upload option and hit “Choose File.”
  3. When the popup appears select the file from your desktop. (The ‘x.x’ will change depending on the current version number).
  4. Follow the on-screen instructions and wait as the upload completes.
  5. When it’s finished, activate the plugin via the prompt. A message will show confirming activation was successful.

That’s it! Just configure your settings as you see fit, and you’re on your way to restricting content. Need help getting things started? Check out our getting started guide for help with settings and features.

To restrict an entire post or page, simply select the user level or membership level you’d like to restrict the post or page to from the drop down menu added just below the post/page editor.

There is also a short code for showing content only to users that are not logged in.

[not_logged_in]This content is only shown to non-logged-in users.[/not_logged_in]



This plugin provides 1 block.

  • Content Upgrade Redirect Link to a page containing a Registration Form, then redirect the registration form to the specified Redirect URL.


  1. Visit the plugins page within your dashboard and select ‘Add New’
  2. Search for “Restrict Content”
  3. Activate Restrict Content from your Plugins page
  4. You’re done!


Can I just restrict part of a post/page?

Yes. You can choose exactly which content to protect with the [restrict] shortcode. You can set the userlevel attribute to specify which role is required to view the content. For example, to restrict to editors you would use: [restrict userlevel=”editor”]Your protected content here.[/restrict]

Can I charge customers when they register an account?

Yes! With the Restrict Content plugin, you can offer paid membership levels with manual payments or Stripe. For even more payment gateways, check out Restrict Content Pro.

Does the plugin protect images and other media files?

Yes. Restrict Content can restrict access to media that is embedded within a post or page, but it does not protect the original file URL on the server.

Can I restrict content in my RSS feed?

Yes. There’s a checkbox for this within each post/page. If enabled, that content in your RSS feed will be restricted.

Can I integrate newsletter signups with the registration form?

Not with this plugin, but Restrict Content Pro has integrations for many popular email marketing providers, including Mailchimp, ConvertKit, ActiveCampaign, and more.

Do restrictions work in REST API requests?

Yes. All restrictions apply in REST API requests – exactly the same as if viewing your site normally.

Does Restrict Content work with the Gutenberg editor / the WordPress block editor?

Yes. Full page restriction settings as well as the [restrict], [register_form], and [login_form] shortcodes all work with Gutenberg.

Does this plugin support restricting access by custom user roles?

Yes! Restrict Content provides the ability to limit access based on custom roles.

Will the plugin work with third party page builders?

Restrict Content works with most third party page builders. However, if using the [restrict] shortcode, most page builders will require that the opening and closing shortcode tags be within the same element/block.

Does this plugin include frontend login or registration forms?

Yes. Restrict Content includes shortcodes for a registration form, a login form, and a password reset form.


ሓምለ 1, 2024
On May 3, I alerted the authors of this plugin to a “Deprecated” message from this plugin. I am also a programmer myself and know that such messages are quite easy to resolve. Instead of resolving the message, I was informed that it was related to the Restrict Content Pro plugin. I indicated that this did not necessarily help me and I have since been awaiting a follow-up response. For me this is a reason to give this plugin 1 star, if you use the platform to make your plugin visible, make sure that the support handling is good.
ሕዳር 25, 2023
Love this plug-in. It works and it’s fairly easy to develop with and extend. Does exactly what I need. I did upgraded to the pro version for the extra features.
ሓምለ 15, 2023
Plugin features are solid for member management, in many areas i find it better than wishlist members but at lower cost. POwerful API and hooks are well documented. support is slow. I hope the new owners show more love and care for this
ሕዳር 7, 2022
I have the highest tier license available, and yet I have not received help with an urgent support request in 5 days. The plugin seems to be very much neglected since it was acquired a couple of years ago. If you check its change log, it has had just 2 updates this year. Compare that to 2019 when it had 20 updates (before the plugin was acquired). They’re wasting time with things like “rebranding” the plugin, instead of putting time into making sure it is actually being well maintained and supported. When I have received support responses, the current developers seem to know less about the plugin than I do. It’s very disappointing as this used to be an excellent plugin.
ጥቅምቲ 1, 2022 6 replies
I”m very disappointed that you added Freemius. It is a very bad decision. It is a huge privacy issue.
Read all 90 reviews

Contributors & Developers

“Membership Plugin – Restrict Content” is open source software. The following people have contributed to this plugin.


“Membership Plugin – Restrict Content” has been translated into 9 locales. Thank you to the translators for their contributions.

Translate “Membership Plugin – Restrict Content” into your language.

Interested in development?

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



  • Fix: Updated knowledge base links


  • Fix: Updated libraries to avoid conflicts


  • Fix: PHP 8.2+ warnings related to the creation of dynamic properties
  • Fix: PHP 8.2+ errors after deleting a membership level
  • Fix: Added type to button HTML elements
  • Fix: Stripe credit card form on the Account page
  • Fix: Proration Credits not working when changing membership level
  • Improvement: Cancels subscriptions on Stripe after a membership level gets deleted
  • Improvement: New styles for Group Accounts add-on
  • Improvement: Compatibility with Ultimate Members Add-on
  • Security: Improved validation for the default log file
  • Security: Tightened opt-in/opt-out links security
  • Misc: Updated links in the plugin’s general settings page


  • Fix: PayPal renew date
  • Fix: Extended compatibility with PHP 8.x
  • Fix: Prevent fatal error while trying to send emails using Event Tickets and The Events Calendar
  • Fix: Don’t allow negative values for maximum renewals
  • Misc: Updated telemetry key names
  • Security: Fixed issues with log file


  • Fix: Stripe webhook error
  • Misc: Removed all remaining freemius code
  • Misc: Updated telemetry constant


  • Fix: Error in the welcome page using PHP 8.1.x.


  • Fix: Extended compatibility with PHP 8.x
  • Fix: Fix compatibility with custom database prefix on Site Info > Restrict Content Pro
  • Updated: Languages domain path to increase ease of usage with translation plugins
  • Security: Update third-party libraries that had vulnerabilities


  • HotFix: Resolved a conflict that caused a critical error when Restrict Content Pro is active at the same time as The Events Calendar or Event Tickets.


  • Fix: Resolved a security vulnerability on the admin pages to ensure the protection of your website.
  • Improvement: We removed the Stripe webhooks setting in Restrict > Settings / Misc.
    RCP uses these 6 webhooks only: customer.subscription.created, customer.subscription.deleted, charge.succeeded, charge.refunded, invoice.payment_succeeded, invoice.payment_failed.
    See for additional details.
  • Enhancement: We have enhanced the functionality of the RCP core by incorporating the ‘RCP Custom Redirect’ add-on. This addition allows for custom redirection capabilities within the RCP system, providing more flexibility and control for administrators.


  • Fix: Updated codes for Stripe Error messages to reduce false positives.
  • Enhancement :Telemetry settings are now shown on initial plugin activation, and can be accessed from Plugins > Installed under the Restrict Content Pro plugin.
  • Update: Removed outdated notices for certain add-ons.


  • Enhancement: Make sure that the Stripe integration is returning a valid success or error response. Allow stripe to retry the event if it was not processed.
  • Enhancement: Add Stripe configuration to make sure it retries events that were not process. This is helpful if many events are process at the same time.


  • Enhancement: Add new feature in our Telemetry integration to send additional information to Telemetry.
  • Fix: Style fixes to register Forms.
  • Fix: Earnings calculations that were not correctly evaluated.

  • HotFix: Fatal Error Calling RCP_Telemetry. Action Hook added in constructor executed before the file was included.


  • Enhancement: Replace Freemius third-party integration with our StellarWP Telemetry.
  • Enhancement: Add reCaptcha feature from Pro.
  • Enhancement: Add Add-Ons page.
  • Enhancement: Add Stripe webhooks option to include any missing webhook.
  • Update: Language domain in were using LION for rcp.
  • Fix: Replaces Divs with tables on the ‘Register page’ and ‘Your Membership’ page.
  • Fix: Gutenberg Block “Content Upgrade Redirect” that was missing.
  • Fix: Revert div for tables in registration pages.


  • Fix: Sanitation issues in core files.
  • Fix: Fatal error cannot redeclare “rcp_should_show_discounts” when using multiple paid registration forms.
  • Enhancement: Update Stripe library to version 10.3.


  • Fix: Email templates that were deleted when saving any RC setting.
  • Enhancement: Register templates and remove duplicated code.


  • Add: Freemius integration to help Restrict Content Pro be a better plugin.


  • Fix: Fixes to prevent usage of PHP Short tags.


  • Fix: Compatibility with The Events Calendar and Pods.


  • Fix: Styles from the registration button, the font size in the password hint text


  • Fix: Registration form with missing labels.
  • Enhancement: Styling of registration form for desktop and mobile.


  • Fix: Error when updating or adding a card with Stripe. Update RCP JS Stripe code since it was using deprecated function.
  • Enhancement: Update styles of registration page. Remove tables, replace with divs. Props @highprrrr
  • Enhancement: Update styles of Membership page. Remove table, replace with divs. Align columns. Tweak mobile view. Give inputs a max width. Props @highprrrr.


  • Fix: Correct trail validation. Trail is valid if the number of days is greater than zero in the Membership configuration.
  • Enhancement: Stripe statement descriptor and Statement descriptor Suffix.
  • Enhancement: Change the label “Membership Level” -> “Membership” in the exporting tools.
  • Enhancement: Add new options in the System Info report.
  • Feature: Add an Option to allow the user to switch between free subs.
  • Feature: Use user levels or roles in the [restrict] shortcode. Parameter user “level”.
  • Update: Restrict Content Branding.


  • Fix: Error using [restrict] shortcode in legacy version. props @fdanell


  • Fix: Broken help page form


  • Fix: Fixing upgrade logic
  • Fix: Fixing Restrictions
  • Fix: Multisite downgrade link


  • Fix: Set option for Stripe updates displayed to admin
  • Fix: Renaming base plugin filename.


  • Note: Readme version bump


  • New: Create and Sell Memberships
  • New: Collect payments with Stripe
  • New: Send Customer Emails
  • New: Powerful Content Restriction Options
  • New: Pro Level Shortcodes added
  • Note: Legacy version of Restrict Content still included and maintained until Dec. 2022


  • Fix: Options Comparison broken for new Installs


  • Note: Version Bump


  • Note: Tested with WordPress 5.8
  • Improvement: Adding Help Page
  • Improvement: Adding Welcome page on activation


  • Note: Tested with WordPress 5.7.2
  • Improvement: Moving Restrict Content Settings from Generic Settings Menu to Admin Menu as individual menu item.
  • Improvement: Adding additional styling to metabox settings.
  • Tweak: Adding Why Go Pro Page


  • Note: Tested with WordPress 5.7
  • Updating Tested Up To Version


  • Note: Tested with WordPress 5.3.
  • Improvement: Display wp_signon() errors while processing login.
  • Fix: Typo in setting description.
  • Tweak: Adjusted plugin author name and URL.


  • Fix: Registration now works properly if you have JavaScript disabled in your browser.


  • Fix: Content visibility in the REST API.


  • Tweak: Remove hard-coded red color from restricted message. A class rc-restricted-content-message has been added to the span tag if you’d like to add the color back in with CSS.
  • Tweak: The Restrict Content plugin is now auto deactivated when Restrict Content Pro is activated.


  • New: Login form shortcode – [login_form]
  • New: Password reset form – part of the [login_form] shortcode
  • New: User registration form – [register_form] shortcode
  • New: Improved compatibility with Restrict Content Pro, allowing for seamless upgrades
  • Fix: Undefined index PHP notice
  • Tweak: General code cleanup and improvements


  • Fix: Undefined nonce index when saving some post types
  • Fix: Removed restrict metabox from post types that it does not apply to
  • Fix: Made restricted message shown in feeds translatable
  • Fix: Some text strings not translatable
  • Tweak: Added new rcp_metabox_excluded_post_types filter


  • Removed incorrect contextual help tab


  • Some general code cleanup and compatibility checks for WordPress 4.1+


  • Improved settings page to match core WordPress UI
  • Fixed problem with unescaped HTML in restricted messages options
  • Added complete internationalization on default language files


  • Added do_shortcode() to the not logged in short code


  • Fixed a problem with the not logged in short code.


  • Added new [not_logged_in] short code.


  • Added settings page with options to configure each of the messages displayed to users who do not have permission to view a page.
  • Improved the performance of several functions.
  • Better organization of the plugin files and improved infrastructure for soon-to-come new features.