Version 2.5.7 of Paid Memberships Pro is out with a handful of bug fixes. These bugs have the potential to hinder sales, so be sure to upgrade.
In particular, there are important updates to how subscriptions are handled when using the Braintree Gateway. If you are using Braintree Payments with recurring subscriptions, you will want to upgrade right away.
The full list of updates is below.
- ENHANCEMENT: Added a pmpro_checkout_message filter that can be used to filter error messages shown at checkout.
- BUG FIX/ENHANCEMENT: Now making sure some billing address fields are available for the billing failure emails sent during the PayPal IPN handler.
- BUG FIX/ENHANCEMENT: Fixed issues where HTML entities were shown in level prices in some places when using certain currencies. All prices are sent through a special pmpro_escape_price function that allows div, span, and sup tags with id and class attributes. Also removed from unneeded small tags and grey coloring of prices in certain spots.
- BUG FIX: Now cancelling membership when a SUBSCRIPTION_CANCELED message is sent to the Braintree webhook handler. In the past, we incorrectly sent the payment failed email instead.
- BUG FIX: Fixed display issues with the Require Membership block. The level select field has been swapped with a list of checkboxes.
- BUG FIX: Fixed warnings that occurred when processing failed payments in webhook and IPN handlers.
- BUG FIX: Fixed our Braintree class so we will only attempt to update a user’s credit card and address when the getCustomer method is called at checkout or during a billing update.
- BUG FIX: Fixed issue where refreshing the checkout review page when using PayPal Express caused the associated order to be updated again. Now the order status is updated to review and only updates again when the user confirms.
- BUG FIX: Avoiding warnings when the pmpro_url function is used if the PMPro pages haven’t been set up yet. (Thanks, Thomas Sjolshagen)
- REFACTOR: Updated the pmpro_getSpecificMembershipLevelForUser( $user_id, $level_id ) function so both fields are required. Will still default to the current user if null is passed for the $user_id.