- Fix: Registration totals are now properly formatted to 2 decimal places when appropriate.
- Fix: Issue where proration calculation amounts were incorrect due to date formatting.
- Fix: Set expiration on logged in transients when using Disable Account Sharing feature.
- Fix: Reports now work properly when switching from Last Year and back to This Year.
- Fix: CSV payment export now properly handles negative amounts.
- Fix: Issue where free members were marked as pending if they started to purchase a paid subscription and did not complete it.
- Fix: Issue with WooCommerce product visibility when products restricted to user level.
- Fix: Renew Your Subscription link no longer shows for members that have no expiration date.
- Fix: Members with overdue Stripe subscriptions will no longer be double billed if they go through the registration form and renew or subscribe to a different membership.
- Fix: Timestamp is now preserved when editing payments.
- Fix: Settings tabs now work on translated sites.
- Fix: Issue where pending member counts were incorrect under certain conditions.
- Tweak: If a member cancels a PayPal Express payment, they'll be returned to the page they came from instead of always going back to the registration page.
- Tweak: Adjusted markup on registration form pricing table.
- New: Added more data to payment export CSV files.
Fix: New subscriptions immediately cancelled when upgrading from another level and paying with PayPal. That no longer happens.
Fix: Roles defined on the subscription level are now reapplied to expired users when they are reactivated via some way other than the registration form.
Fix: Manual Payment emails to the admin are now sent to the addresses you have in the Admin Notification Email setting under Restrict > Settings > Email.
Fix: Stripe discount codes now properly work regardless of the case used when entering them.
Fix: Improve error message display in Stripe gateway.
Fix: Trailing zeroes are no longer stripped from amounts in emails.
Fix: [subscription_details] shortcode will now show the subscription level name if the member is still pending.
Fix: Earnings now calculate properly for very old payments that exist before payments had a status.
Fix: Confirm dialog no longer shows twice if you want to delete a payment. Once is enough.
Fix: Debug logging now uses the site's configured timezone when logging.
Fix: When specifying a subscription level ID with the [register_form] shortcode, the form will no longer show if the subscription level is unlimited and the member already has the level.
Fix: PHP notice when viewing the [subscription_details] page while logged out.
Fix: _rcp_new_subscription usermeta flag now properly removed on free users when registration processing is complete.
Fix: Changed the font size in the settings page tabs, and fixed the display of the active tab.
Tweak: Swapped the order of the Stripe key settings to match the order Stripe shows them to make things a little easier.
Tweak: Exclude admins from Prevent Account Sharing feature.
Fix: Issue where expired members or manually renewing members paying via Stripe could have ended up with two subscriptions in Stripe.
Fix: Updated the Authorize.net SDK to the latest version, to help with all the Authorize.net fixes listed below.
Fix: Authorize.net will now authorize cards before creating a subscription, which should reduce or eliminate failed payments due to Authorize.net delaying captures.
Fix: Authorize.net now does single charges instead of one-time recurring charges when auto-renew is disabled or not selected.
Fix: Proration message no longer shows if the member isn't eligible for proration.
Fix: Downgrading from a paid to a free subscription will now properly cancel the paid subscription.
Fix: Authorize.net will no longer attempt to create invalid subscriptions with a duration greater than 1 year, since they don't support that.
Fix: Removed Alipay from Stripe Checkout since Stripe no longer supports Alipay via Stripe Checkout. Alipay will be introduced again in the future using another method.
Fix: [register_form_stripe] shortcode behavior is now more consistent with the [register_form] shortcode. It now shows the subscription name in the Stripe Checkout popup instead of the site name. It also now supports image.
Fix: REST API requests failing when the Prevent Account Sharing option is enabled.
Fix: PHP notice when using RCP_Payments::get_payment() with a non-existent payment ID.
Fix: PHP notice Undefined property: RCP_Emails:payment_id when sending emails.
Fix: When a member has a lifetime membership, RCP no longer shows that membership level to them on the registration page because renewing a lifetime membership makes no sense.
Fix: rcp_is_post_taxonomy_restricted() is unavailable during AJAX requests, which caused issues with certain WooCommerce extensions.
Fix: Invoice notes now better support multiple paragraphs and other formatting.
Fix: RCP_Payments::get_payment_by() now works properly with strings as parameters.
Fix: Braintree compatibility with old Braintree add-on that existed before Braintree was merged into RCP.
New: New action hooks for developers: rcp_options_install and rcp_create_tables.
New: Allow admins to manually verify accounts that are subject to email verification.
New: Added rcp_get_currency_symbol function to get the just the currency symbol of the site's currency.
New: Password reset form now shows a success message after members successfully reset their passwords.
Tweak: Discount code input fields on the registration form are now wrapped in a span element, to make layouts in CSS easier.
Tweak: Change capability required to view Tools menu from rcp_view_payments to rcp_manage_settings. For admin users, this means nothing since you already have both of those capabilities. This is for fine grained access control to menus, if needed.
Tweak: Improve rcp_has_post_restrictions() checks to better support legacy data.