Today we are happy to announce the final release of Restrict Content Pro version 2.9. There are several significant improvements in this release, along with a number of smaller fixes. Included in version 2.9 are better payment record tracking, complete post type restriction options, better user-role restrictions, renewal reminder notices for subscriptions, and more.

Subscription renewal reminders

In Restrict Content Pro 2.9, we have introduced the ability to email paid subscribers a reminder notice before their subscription’s renewal payment is processed. This lets you set up courtesy emails that can dramatically reduce charge-back claims and abuse reports from customers that fail to remember their subscription is still active. The system also allows site admins to configure any number of renewal reminders, each sent at a different time period.

Restrict complete post types

We offer a number of ways to configure content restriction through Restrict Content Pro and in 2.9 we’ve added another: whole post type restrictions. This allows site owners to easily restrict all entries in any public post type (like those registered in many popular plugins) to paid subscribers or members with specific user roles or subscription levels. This includes the singular and archive views of the post types.

The screenshots below illustrate how this looks for the Downloads post type registered through our sister project, Easy Digital Downloads.

The Restrict Access menus are automatically registered for all public post types.

Support for custom user role restrictions

Our content restriction options have always supported limiting content access to just members with a specific user role, but up until now the restrictions were limited to the default roles provided by WordPress. In Restrict Content Pro 2.9 we have added support for limiting content access to any registered user role, such as those provided by many of the popular plugins.

Automatically register users to subscription

It is pretty common for Restrict Content Pro customers to utilize other plugins, such as Gravity Forms, to create user accounts. When this is done it is helpful to be able to automatically register these users to a subscription level so Restrict Content Pro recognizes them. In 2.9 this is now fully supported through a new option added to the Settings → Misc.

Debug tools

While we’d love to say everything always goes perfectly, the reality is that sometimes systems do not work quite as they are expected. In order to help make it easier to track down unexpected or non-functioning behavior, we have add a new set of debug tools to Restrict Content Pro.

Debug mode can be enabled from Settings → Misc:

Once enabled, a new Debug tab will be added to the Tools page:

The debug log records events as they happen in RCP, such as a payment being processed, accounts being cancelled, registrations being submitted, etc. It’s essentially a historical view of what was done when.

Additional improvements

In total, we have made more than 19 distinct sets of improvements in Restrict Content Pro 2.9 and we have also fixed 24 different bugs.

  • The [register_form] shortcode now permits multiple subscription level IDs to be specified
  • The redirect performed after logging in now uses wp_safe_redirect()
  • A template tag has been added to email settings for retrieving the URL to the most recent invoice on a member’s account
  • Password reset emails are now sent in the standard HTML email as all other RCP emails
  • The process-data.php file has been broken up into multiple PHP files to make it easier for developers
  • RCP_Payment_Gateway now includes better inline documentation
  • The register-single.php template file now includes a log in link
  • A new action hook has been added that fires after successful member registration
  • Payment records now get created earlier and include a pending status
  • Payment records now store the discount code that was used
  • Payment records now store the exact subscription level ID related to the payment
  • Payment records now store the slug of the payment gateway used, such as stripe
  • Admin screens for subscription levels, discount codes, and payment records now include status filters
  • Invoice download links are now available from the edit member screen
  • Memberships were not properly renewed in Authorize.net if they included a free trial
  • PayPal Express could return a fatal error on the confirmation screen for some PayPal accounts
  • Stripe customer ID not saved early enough during registration
  • rcp_member_get_expiration_date filter did not include necessary $formatted and $pending variables
  • WooCommerce: products in restricted category/tag were still accessible via direct URL
  • WooCommerce: active members could not view products restricted to “Active subscribers only”
  • Expiration date incorrectly calculated for manual renewals
  • Subscriptions that auto renew but started with a 100% discount expire improperly
  • Registration submit button disabled improperly if reCaptcha is enabled but API keys are not entered
  • Stripe Checkout modal shows price even when signing up for a free trial with the [register_form_stripe] shortcode
  • Filter in rcp_currency_filter() not used properly
  • Subscription ID saved to Stripe customer metadata before subscription is actually created in Stripe
  • Pending users can view content protected by [restrict] shortcode
  • Duplicate subscriptions created on customers in Stripe if their customer record had a previously delinquent subscription

Version 2.9 is available today. The update can be installed directly from the Plugins page for all customers with a valid license. Do not have a license yet or need to renew a license? Head over to the pricing page to purchase one or your account page to renew an existing list.

Pippin Williamson

About the author: Pippin Williamson is the founder of Restrict Content Pro, Easy Digital Downloads, and AffiliateWP. When not writing PHP, he can often be found sipping coffee or brewing beer in his home brewery.

2 comments

Leave a Reply

Your email address will not be published. Required fields are marked *