- Improvement: Updated French translation.
- Improvement: Display clearer error messages when there's a problem adding a discount code.
- Fix: Registration type changing mid-registration, which could impact signup fees with some gateways.
- Fix: Stripe invalid request error when someone with a non-recurring Stripe membership visits the page containing the [rcp_update_card] shortcode.
- Fix: Incorrect use of date_i18n() instead of date() when saving payment dates via webhooks.
- Fix: Filter the password reset URL to use the designated RCP login form when "Redirect Default Login URL" is enabled.
New: An admin notice will be displayed if you have the Stripe Checkout gateway enabled, explaining that the gateway will be removed in RCP version 3.2 due to SCA regulations. Read more here: Stripe Checkout - Deprecated - Restrict Content Pro
New: Added a date_completed column to the wp_rcp_queue table.
New: Unauthorized users are now redirected away from category archive pages if the category is restricted. (Requires that Hide Restricted Posts be checked on.)
New: Allow filtering by both level and status on Restrict > Memberships page. Note: you must choose a status filter first, then you can change the membership level.
New: Add support for a redirect query arg when generating a resend_verification link.
New: Add "Status" dropdown to the "add payment" form on the admin Membership Details page.
Tweak: Moved _rcp_reminder_sent_* user meta to membership meta.
Tweak: Adjust Redirect Default Login URL setting description to convey that the [login_form] shortcode is required on the page and not optional.
Fix: Free trial incorrectly granted again under certain circumstances.
Fix: If a customer signs up for a one-time payment membership and does not complete payment, they are unable to try again. (Usually only seen with the PayPal payment gateway.)
Fix: CSV import not setting correct password for new users.
Fix: CSV import missing old rcp_user_import_user_added action hook.
Fix: Incorrect ajax parameter used for error message when uploading a CSV import file fails.
Fix: Don't show an error message on [rcp_update_card] shortcode if the current user does not have a membership at all.
Fix: Ensure that free membership status is always converted to active (backwards compatibility with pre-3.0).
- Modified template files: card-update-form.php, paypal-express-confirm.php, register-single.php, register.php, subscription.php.
- New: Add support for multiple active memberships per customer.
- New (WARNING): Authorize.net has been removed from core and moved to a separate add-on. The new add-on can be installed here: Restrict Content Pro – Authorize.net
- New: One-time discounts can now be configured on a per-discount basis rather than globally.
- New: Stripe gateway has been updated to use Stripe Elements.
- New: CSV user import tool now available in Restrict > Tools > Import.
- New: Added WP-CLI integration.
- New: Expiration and renewal notices can now be limited to certain membership levels only.
- New: Added support for bulk adding memberships to existing users from the Users table.
- New: Added "payment received" email template for admins.
- New: Use WP_List_Table for all admin table pages.
- New: Add default email template content on new installs.
- New: Log all payment events in the customer notes.
- New: Send customer name in Stripe API request.
- New: Add payment meta and membership level meta functions.
- New: Signup fees are no longer applied when manually renewing an existing membership.
- New: Stripe gateway tested with API version 2019-05-16.
- Tweak: Stop unchecking "auto renew" when a membership expires.
- Tweak: All translation files have been updated from plugin source code.
- Tweak: Updated plugin author name and URL.
- Fix: RCP datepicker styles affecting other plugin datepickers.
- Fix: Reduce the three RCP membership columns on the Users table to one single "Membership" column. This reduces database queries and improves loading time on this page.
- Fix: Payments are now only recorded via webhooks/IPNs if we can match the payment to a very specific RCP membership. This resolves issues if the same PayPal account is used for multiple different products and one customer is involved in both products.