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+.
New: Added the ability to recover pending and failed payments. A "Complete Payment" link has been added to the list of payments on the [subscription_details] shortcode.
Tweak: Added terms/privacy checkboxes to [register_form_stripe] shortcode if enabled. This also fixed an issue where the shortcode was validating for these checkboxes but not displaying them.
Tweak: CSV Importer: improve CSV mime type detection.
Tweak: CSV Importer: if incorrect file type is detected, include the detected file type in the error message.
Tweak: Localize Stripe error messages that occur via JavaScript. Also add a new filter rcp_stripe_error_messages to allow these error messages to be modified.
Tweak: Include original Stripe error message if we don't have our own localized version.
Tweak: Show admin notice if manual membership cancellation fails.
Fix: Sign up fees not being applied if someone attempts a payment, doesn't complete it, then tries a second type. This typically only occurred with the PayPal gateway, which allows you to not complete a payment in progress.
Fix: Heuristics.Phishing.Email.SpoofedDomain false positive from virus scanners, due to us making a link to developer.paypal.com, which actually led to our documentation on how to use that site to get API credentials.
Fix: Add missing try/catch block during certain Stripe operations.
Fix: Correct formatting on sprintf() functions.
Fix: Undefined property errors while updating pending payments via cron job.
Fix: Under certain circumstances, RCP was incorrectly creating a second Stripe customer record.
Fix: Stripe webhook conflicts when RCP is installed on two separate sites but both use the same Stripe account.
Fix: Remove admin_url() base from rcp_get_invoice_url() function. In certain edge cases this was resulting in admin_url() being included in email notifications.
Fix: Update WP_User display name when editing Customer first/last name via Customer Details page.
Fix: Email verification link not working when using plain text emails.
Fix: CSV Importer - use email as the username if username is omitted from the CSV file.
Fix: Recurring fees not being properly passed to payment gateway during registration.
Fix: Do not apply prorated credits when multiple memberships are enabled and registering via [register_form_stripe].
Fix: "Renews automatically" incorrectly displaying on [subscription_details] shortcode for inactive memberships.
Fix: rcp_get_user_payments() was returning all user payments if the current user was logged out. It now returns an empty array.
Fix: Display issues on admin payments table on mobile devices.