=== Membership Plugin - Restrict Content ===
Author URI: https://restrictcontentpro.com
Author: StellarWP
Contributors: stellarwp, reedyseth, highprrrr
Tags: restrict pages, restrict posts, restrict access, membership, registration form, access control
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 6.9
Stable tag: 3.2.17

Restrict Content is a powerful WordPress membership plugin that gives you full control over who can and cannot view content on your WordPress site.

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

https://vimeo.com/650723404

Restrict Content is completely customizable with features built for developers and extensible with a library of [Pro add-ons](https://restrictcontentpro.com/add-ons/pro/).

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

Use Restrict Content as a <strong>WordPress membership plugin</strong> to:

- <strong>Create unlimited membership levels or subscription packages.</strong> 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.
- <strong>Sell memberships and collect payments on your WordPress site.</strong> You can even collect payments with Stripe in the free version!
- <strong>Control content access for your members.</strong> Decide who can access specific pages, posts, archives, and even WordPress blocks based on a member’s plan, status, and more.
- <strong>Manage your members or subscribers.</strong> 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.
- <strong>Allow members to manage their account with self-service account management. </strong> 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.
- <strong>Offer prorated memberships.</strong> 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.
- <strong> Auto-renew membership payments.</strong> Select whether membership payments should always auto renew or let the customer decide.

Use Restrict Content as a <strong>WordPress content restriction plugin</strong> to:

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

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

- 👥 <strong>Membership Levels</strong> - 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.
- 🖥 <strong>Auto-Created Member Pages</strong> - Pages generated by the plugin include: Registration, Success, Account, Edit Profile, Update Billing Card
- 🔁 <strong>Auto Renewals</strong> - Select to let customer choose whether to auto renew, always auto renew, or never auto renew.
💳 <strong>Payment Gateways</strong> - Stripe and Manual Payments, PayPal (Pro), Authorize.net (Pro), Braintree (Pro), Custom (Pro).
- ↕️ <strong>Upgrade/Downgrade Membership</strong> - Allow members to change their subscription level at any time.
- ✉️ <strong>Member Emails</strong> - Paid membership activation email, free membership activation email, cancelled membership email, expired membership email, payment received email, renewal payment failed email.
- 📄 <strong>Payment Invoices</strong> - The payment invoice has a clean design and is printable. Customize with your logo, company name, address, email, header text, notes, and footer text
- 🪄 <strong>Prorated memberships</strong> - 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](https://woocommerce.com/) products.

= 🏋️‍♀️ More Power with Pro Features =

- 🏷 <strong>Discount code support</strong> - 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.
- 📈 <strong>Detailed reporting</strong> - 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.
- 🕵️‍♀️ <strong>Free trials</strong> - Allow prospective members to try a membership before they buy. Send emails to free trial users when their free trial is about to end.
- ✉️ <strong>Member Email Customization</strong> - Add a personal touch to all of your member emails with Restrict Content Pro.
- 🔒 <strong>Google reCAPTCHA</strong> - Protect your member login form from bots with Google reCAPTCHA.
- 🚀 <strong> 34 Powerful Add-ons</strong> - 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](https://restrictcontentpro.com/pricing/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=upgrade&utm_term=description)**


= 🛠 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](https://stripe.com/) is the best payment processor. Stripe currently supports 14 languages, over 35 countries and 135+ currencies. [Check support for your country](https://stripe.com/global).

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](https://stripe.com/pricing) 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.

- [PayPal](https://restrictcontentpro.com/tour/payment-gateways/paypal/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=paypal&utm_term=description)
- [Authorize.Net](https://restrictcontentpro.com/tour/payment-gateways/authorize-net/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=authorize-net&utm_term=description)
- [Braintree](https://restrictcontentpro.com/tour/payment-gateways/braintree/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=braintree&utm_term=description)
- [Build your own (extensive API available)](https://restrictcontentpro.com/tour/payment-gateways/add-your-own/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=add-your-own&utm_term=description)
= 🧰 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](https://woocommerce.com/), 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](https://help.ithemes.com/hc/en-us/categories/360004039733-Restrict-Content-Pro?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=docs&utm_term=description) available. If you’re looking for faster support via email, we encourage you to purchase a [Restrict Content Pro license](https://restrictcontentpro.com/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=purchase&utm_term=description).

We check in on the [The Restrict Content forum here on WordPress.org](https://wordpress.org/support/plugin/restrict-content) 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](https://help.ithemes.com/hc/en-us/categories/360004039733-Restrict-Content-Pro).

= 🤔 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](https://restrictcontentpro.com/tour/use-cases/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=use-cases&utm_term=description), based on how you want to allow members to access your site’s content.

Here are a few examples:

- [Member Blogs](https://restrictcontentpro.com/tour/use-cases/member-blogs/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=member-blogs&utm_term=description)
- [Group Accounts](https://restrictcontentpro.com/tour/use-cases/group-accounts/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=group-accounts&utm_term=description)
- [Club Memberships](https://restrictcontentpro.com/tour/use-cases/club-memberships/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=club-memberships&utm_term=description)
- [Co-operatives](https://restrictcontentpro.com/tour/use-cases/co-operatives/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=co-operatives&utm_term=description)
- [Job Boards](https://restrictcontentpro.com/tour/use-cases/job-boards/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=job-boards&utm_term=description)
- [Magazine Subscriptions](https://restrictcontentpro.com/tour/use-cases/magazine-subscriptions/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=magazine-subscriptions&utm_term=description)
- [Maintenance Contracts](https://restrictcontentpro.com/tour/use-cases/maintenance-contracts/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=maintenance-contracts&utm_term=description)
- [Private Communities](https://restrictcontentpro.com/tour/use-cases/private-communities/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=private-communities&utm_term=description)
- [Support Agreements](https://restrictcontentpro.com/tour/use-cases/support-agreements/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=support-agreements&utm_term=description)

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

- [Mailchimp](https://restrictcontentpro.com/downloads/mailchimp-pro/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=mailchimp&utm_term=description)
- [AWeber](https://restrictcontentpro.com/downloads/aweber-pro/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=aweber&utm_term=description)
- [ConvertKit](https://restrictcontentpro.com/downloads/convertkit/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=convertkit&utm_term=description)
- [ActiveCampaign](https://restrictcontentpro.com/downloads/activecampaign/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=activecampaign&utm_term=description)

= 🔌 Other add-ons in Restrict Content Pro =

- [Group Accounts](https://restrictcontentpro.com/downloads/group-accounts/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=group-accounts&utm_term=description) - Sell multi-member group memberships.
- [Drip Content](https://restrictcontentpro.com/downloads/drip-content/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=drip-content&utm_term=description) - Release content to members on a schedule.
- [Custom Redirects](https://restrictcontentpro.com/downloads/custom-redirects/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=custom-redirects&utm_term=description) - Specify where members are redirected on a per-membership-level basis.
- [WooCommerce Member Discounts](https://restrictcontentpro.com/downloads/woocommerce-member-discounts/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=woocommerce&utm_term=description) - Give members automatic discounts on purchases in your WooCommerce store.
- [Site Creation](https://restrictcontentpro.com/downloads/site-creation/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=site-creation&utm_term=description) - Allow paid members to purchase sites in a WordPress multisite.
- [Restriction Timelock](https://restrictcontentpro.com/downloads/restriction-timelock/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=timelock&utm_term=description) - Keep content unrestricted until a specified date in the future.
- [Restriction Timeouts](https://restrictcontentpro.com/downloads/restriction-timeouts/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=timeouts&utm_term=description) - Specify a date and time when restricted content will have its restrictions removed, making it available to everyone.
- [Restrict Past Content](https://restrictcontentpro.com/downloads/restrict-past-content/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=past-content&utm_term=description) - Restrict content published prior to a member's join date.
- [Hard-set Expiration Dates](https://restrictcontentpro.com/downloads/hard-set-expiration-dates/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=expiration&utm_term=description) - Allows for a specific expiration date to be assigned to membership levels.
- [Help Scout](https://restrictcontentpro.com/downloads/help-scout/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=help-scout&utm_term=description) - Display customer's membership information from Restrict Content Pro inside of Help Scout when viewing tickets.
- [Math Verification](https://restrictcontentpro.com/downloads/math-verification/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=math&utm_term=description) - Add a math verification field to registration forms.
- [IP Restriction](https://restrictcontentpro.com/downloads/ip-restriction/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=ip&utm_term=description) - Allow specific IP addresses to bypass content restrictions and ban other IP addresses from signing up for a membership plan.
- [Enforce Strong Passwords](https://restrictcontentpro.com/downloads/enforce-strong-passwords/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=strong-passwords&utm_term=description) - Enforce strong passwords during registration.

= 👋 Meet the team =

Restrict Content is built by [iThemes](https://iThemes.com/team/?utm_medium=readme&utm_source=wporg&utm_campaign=rc-lite-plugin&utm_content=ithemes&utm_term=description). We also make popular WordPress plugins like [iThemes Security Pro](https://ithemes.com/security?utm_medium=readme&utm_source=wporg&utm_campaign=rc-lite-plugin&utm_content=popular&utm_term=description) and [BackupBuddy](https://ithemes.com/security?utm_medium=readme&utm_source=wporg&utm_campaign=rc-lite-plugin&utm_content=popular&utm_term=description) 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.

- [The top 8 benefits of running a membership site](https://restrictcontentpro.com/top-8-benefits-to-running-a-membership-site/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=8-benefits&utm_term=description)
- [Which membership model is best for your business?](https://restrictcontentpro.com/which-membership-model-is-best-for-your-business/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=which-model&utm_term=description)
- [How to start a membership site on a budget](https://restrictcontentpro.com/how-to-start-a-membership-site-on-a-budget/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=start-on-budget&utm_term=description)
- [Should you be offering tiered memberships?](https://restrictcontentpro.com/should-you-be-offering-tiered-memberships/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=tiered-memberships&utm_term=description)

**[Subscribe to our newsletter](https://restrictcontentpro.com/subscribe/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=subscribe&utm_term=description)** to get posts like these in your inbox as soon as they’re published.

== Installation ==

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!

== 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 restrict-content-x.x.zip 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](https://help.ithemes.com/hc/en-us/articles/4402387794587-Getting-Started-with-Restrict-Content) 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]

== Frequently Asked Questions ==

= 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](https://restrictcontentpro.com/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=faq).

= 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](https://restrictcontentpro.com/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=faq) 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.

== Screenshots ==

Go to the demo page to see examples:

https://restrictcontentpro.com/tour/screenshots/

== Changelog ==

= 3.2.17 =
* Security: Added nonce and permission checks for adding Stripe payment methods.

= 3.2.16 =
* Security: Improved escaping and sanitization for [restrict] and [register_form] shortcode attributes.

= 3.2.15 =
* Tweak: Improved performance of restricted post queries.

= 3.2.14.1 =
* Security: Added more safety checks to telemetry opt-ins/opt-outs.

= 3.2.14 =
* Fix: Updated PayPal's transaction and subscription details URLs
* Fix: Fixed one hard coded string in the registration form template
* Security: Improved how restricted posts are removed from the WP REST API when the "Hide Restricted Posts" option is enabled
* Tweak: Ensured that the "Hide Restricted Posts" option is enabled by default during plugin installation

= 3.2.13 =
* Tweak: Updated how notices are dismissed.

= 3.2.12 =
* Fix: Prevent fatal errors in legacy mode.

= 3.2.11 =
* Fix: Updated knowledge base links

= 3.2.10 =
* Fix: Updated libraries to avoid conflicts

= 3.2.9 =
* 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

= 3.2.8 =
* 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

= 3.2.7 =
* Fix: Stripe webhook error
* Misc: Removed all remaining freemius code
* Misc: Updated telemetry constant

= 3.2.6 =
* Fix: Error in the welcome page using PHP 8.1.x.

= 3.2.5 =
* 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

= 3.2.4 =
* 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.

= 3.2.3 =
* 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 https://restrictcontentpro.com/knowledgebase/stripe/ 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.


= 3.2.2 =
* 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.

= 3.2.1 =
* 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.

= 3.2.0 =
* 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.

= 3.1.9.1 =
* HotFix: Fatal Error Calling `RCP_Telemetry`. Action Hook added in constructor executed before the file was included.

= 3.1.9 =
* 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.

= 3.1.8 =
* 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.

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

= 3.1.6 =
* Add: Freemius integration to help Restrict Content Pro be a better plugin.

= 3.1.5 =
* Fix: Fixes to prevent usage of PHP Short tags.

= 3.1.4 =
* Fix: Compatibility with The Events Calendar and Pods.

= 3.1.3 =
* Fix: Styles from the registration button, the font size in the password hint text

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

= 3.1.1 =
* 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.

= 3.1.0 =
* 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.

= 3.0.5 =
* Fix: Error using `[restrict]` shortcode in legacy version. props @fdanell

= 3.0.4 =
* Fix: Broken help page form

= 3.0.3 =
* Fix: Fixing upgrade logic
* Fix: Fixing Restrictions
* Fix: Multisite downgrade link

= 3.0.2 =
* Fix: Set option for Stripe updates displayed to admin
* Fix: Renaming base plugin filename.

= 3.0.1 =
* Note: Readme version bump

= 3.0 =
* 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

= 2.2.10 =
* Fix: Options Comparison broken for new Installs

= 2.2.9 =
* Note: Version Bump

= 2.2.8 =
* Note: Tested with WordPress 5.8
* Improvement: Adding Help Page
* Improvement: Adding Welcome page on activation

= 2.2.6 =
* 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

= 2.2.5 =
* Note: Tested with WordPress 5.7
* Updating Tested Up To Version

= 2.2.4 =
* 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.

= 2.2.3 =
* Fix: Registration now works properly if you have JavaScript disabled in your browser.

= 2.2.2 =
* Fix: Content visibility in the REST API.

= 2.2.1 =
* 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.

= 2.2 =
* 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

= 2.1.3 =

* 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

= 2.1.2 =

* Removed incorrect contextual help tab

= 2.1.1 =

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

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

= 2.0.4 =

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

= 2.0.3 =

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

= 2.0.2 =

* Added new [not_logged_in] short code.

= 2.0 =

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

== Upgrade Notice ==

= 2.2.1 =

Removed hard-coded red color from restriction message and deactivate plugin when pro version is activated.

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

= 2.0.4 =

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

= 2.0.3 =

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

= 2.0.2 =

* Added new [not_logged_in] short code.

= 2.0 =

Added message configuration, custom post type support, and improved plugin infrastructure.
