Product update

Version 3.3 released with Stripe saved cards & Braintree 3D secure

Restrict Content Pro version 3.3 includes many exciting new features, such as: saved cards for Stripe, support for 3D secure 2.0 with Braintree, a new admin report, and more!

Saved cards for Stripe

The Stripe gateway has always saved cards inside Stripe, but we’ve never had a UI within Restrict Content Pro that allowed customers to select these cards for new purchases; customers have always had to re-enter their card details for each transaction. We’re thrilled to announce that version 3.3 will allow existing customers to select a saved card to use when upgrading, downgrading, or manually renewing their membership.

This option also extends to the [rcp_update_card] shortcode. When updating the payment method for a Stripe subscription, the customer will be able to choose a saved card or enter a new card.

We hope this will allow for much easier and faster registrations for your existing customers.

Braintree 3D secure support

After adding 3D secure support for Stripe, we turned our focus to Braintree. There are a number of Braintree-related changes in the 3.3 release, including:

  • The Braintree SDK has been updated.
  • We’ve changed our implementation to use the Braintree drop-in UI.
  • The drop-in UI gives us built-in support for using saved Braintree cards for additional purchases.
  • We’ve added support for 3D secure 2.0.

The drop-in UI may be a big visual change, but it will allow us to more easily consider adding support for alternative payment methods through Braintree in the future (such as PayPal payments through Braintree).

In order to utilize 3D secure, it needs to be enabled in your Braintree account. It’s automatically enabled for sandbox accounts, but you will need to contact Braintree to have it enabled in your live account.

Once enabled, some customers may see a 3D secure prompt like this while their card is being processed:

New report for membership counts over time

We’ve added a new admin report that graphs your number of memberships with each status over time. In order to accurately track this information each day, we’ve added a new database table called wp_rcp_membership_counts. Each day Restrict Content Pro runs a cron job that counts the number of memberships for each level and in each status and records those numbers in the database table. These values then generate a graph much like this:

This graph allows you to get a picture of the overall status of your membership site over a period of time. Are active memberships trending up or down? How does your number of expired memberships this month compare with last month?

Unfortunately, as this table has only just now been added, historical data is not available. But the numbers will start getting logged as soon as you upgrade to version 3.3, and then you’ll have all the information available from here on out!

Support for reCAPTCHA v3

Once upgrading, you will have the option of enabling reCAPTCHA version 3. In order to remain fully backwards compatible with supporting version 2, you may select your desired version number in Restrict → Settings → Misc.

If you were previously using v2 and decide to switch to v3, you will need to generate a new set of keys from the reCAPTCHA website and update your settings accordingly.

Unlike v2, which shows an “I’m not a robot” checkbox, reCAPTCHA v3 is nearly invisible on your site. When enabled, all your customers will see is a reCAPTCHA logo in the bottom right corner of the page. Your customers do not have to interact with it at all. Google then uses a scoring system to determine how likely it is that the user is a real person.

This is a great option if you want the help of reCAPTCHA to prevent spam without inconveniencing your customers.

Full changelog

  • New template file: card-update-form-fields.php
  • Modified template files: card-update-form.php, register-total-details.php
  • New: Added support for using saved Stripe cards for new purchases.
  • New: Updated the Braintree SDK, added support for the drop-in UI, and added support for 3D secure.
  • New: Added support for reCAPTCHA v3. This can be enabled in Restrict → Settings → Misc by changing the version number. You will also need to generate v3 keys.
  • New: When in test mode, test credit card numbers are now displayed in the registration form for supported gateways. This allows for easier and faster testing. This can optionally be disabled with this filter: add_filter( 'rcp_show_test_card_on_registration', '__return_false' );
  • New: Added RCP_GATEWAY_SANDBOX_MODE constant. This allows you to force sandbox mode to always be enabled. Recommended on staging sites.
  • New: The membership next renewal date is now displayed in the registration form.
  • Improvement: Attempt to auto-style the Stripe Elements field, using styles on existing on-site checkout fields.
  • Improvement: Our discounts database code has been rewritten to use our new custom table engine. This resulted in a number of discount classes being deprecated and new classes/functions being introduced. All changes should be fully backwards compatible.
  • Improvement: Code changes that allow for payment gateways to override the card update form.
  • Fix: If someone applies a one-time 100% off discount code and does not sign up with auto renew, their expiration date is incorrectly set to “never expires”.
  • Fix: Always set the type attribute on all admin text input fields. This fixes a display inconsistency in WordPress 5.3+.
  • Fix: Invalid HTML markup with Stripe Elements.

Upgrade to version 3.3

Version 3.3 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 to your account page to renew an existing license.

Similar Posts


  1. Wonderful addition .. saving Stripe cards for future use. Thanks.

    Can the Stripe format (styling) be similar to the more aesthetically pleasing style shown on the Braintree images?

    Additionally with Stripe, can the user update their card and change their renewal method to auto renew? Or this is limited to only when they are processing a renewal (checkout)?


    1. Hi Dave!

      We’ve chosen not to apply huge amounts of styling to Stripe in order to best allow the gateway to blend in with each users’ theme. We don’t want to make too many aesthetic choices for our customers. However, the Stripe UI can be styled with custom code. We have some instructions here that demonstrate the process:

      I’m afraid users cannot enable auto renew at the fact at this time. This is definitely something we’re looking at for the future though! In the meantime, if a non-recurring customer wants to enable auto renew they have to click the link to manually renew their membership again, and this time enable auto renew during checkout. This will renew their membership and set up a recurring subscription in Stripe. The process should be super quick though, because they will be able to select an existing card to use if they’ve used Stripe before.

      1. Ashley,

        Thanks for the thorough reply. I understand and look forward to continued future enhancements to RCP. Its awesome!!


  2. This is a great update! Building a new site out over the holiday break and I plan on using the Stripe, so having saved cards there will be awesome!

    The new report also looks amazing! Excited to have that available as well!

    I am wondering what the status is of moving the shortcodes over to blocks. Is there a timeline you can share?

  3. Great stuff! Those Memberships graphs are aMaZiNg!

    Quick question:

    Does the “Saved Cards for Stripe” update make it possible for logged in members to make a one-time purchase of a product, say a book, without having to reenter their credit card info? Either with RCP (ideally) or some other plugin like Gravity Forms w/ Stripe?

    Thanks for your time and the work you all do!


    1. If a customer has paid with Stripe before through RCP, then wants to make another purchase also through RCP, they will be given the option to select a saved card to use during checkout. However, RCP is only really designed to sell memberships, so the “product” you’re selling would technically have to be a membership level in RCP.

      We cannot guarantee that the saved cards will appear with other Stripe implementations such as Gravity Forms because there’s no guarantee the customer will have the same Stripe Customer ID recognized across different plugins. The saved cards will only carry over if both platforms are using/recognizing the same Stripe Customer ID (as that’s where the cards come from).

        1. Brent’s question opens the possibility for a great add-on. The ability to synchronize stripe credit cards (stripe customer id) across Easy Digital Downloads and WooCommerce e-commerce platforms. This gives the ability to provide customers an integrated purchasing platform between their memberships and products.


  4. Hi there,

    I’ve sent multiple support tickets, none have been received. No confirmation emails have been sent to my email or junk/spam mail either.

    I have no other means of contact than through here. Can someone please send an email direct to me at my account email and I can discuss my technical issue.

    Kind Regards,

Comments are closed.