PMPro Update 1.9.4

Version 1.9.4 of Paid Memberships Pro is being pushed out shortly. This update includes fixes that could impact sales, and we recommend everyone upgrade as soon as possible. There are two updates in particular to look out for related to our Stripe integration as well as new frontend layouts for improved display across devices.


The included Stripe PHP Library has been updated to the latest version.

While not necessary, after upgrading it is a good idea to log into Stripe to change your API settings to use the latest version of the Stripe API. To do this log into Stripe, click on API in the left sidebar, then click on “Upgrade Available” and follow the directions.

If you don’t see the “Upgrade Available” link, then you are already running on the latest version of the Stripe API. Be sure to test checkouts on your site after making this change. For 72 hours, you’ll be able to roll back to the previous version of the Stripe API if needed.


“Table-free” Frontend Pages for Improved Display on All Devices

In an effort to improve the display and responsive layout of default plugin pages, v1.9.4 of Paid Memberships Pro has migrated to a “table-free” layout for selected frontend pages. Affected pages include those pages using the following shortcodes: [pmpro_checkout], [pmpro_confirmation], and [pmpro_billing]. These pages have been updated to use a div-based HTML layout where possible instead of a table-based layout.

We’ve done our best to make sure this update has minimal impact on all of our users, but if you notice UI issues after performing the update (in particular users with custom checkout templates or CSS styling might be affected), you can use the Table Layout Add On to revert to the table-based layout on your site. Note that if you roll back PMPro entirely, you will lose the benefit of the 30+ other fixes and enhancements included in this update. So using the table pages add on the preferred way to fix any UI issues that come up.

It is also important to note that this add on is meant as a temporary solution while you update your site to make use of the new div-based layout. We will support the plugin for about a year. During that time, be sure to reach out to use with any issues caused by our add ons and code and take time to update your own customizations to work with the new layout.


Add Ons Updated to be “Table-free” and for 1.9.4 Compatibility

Many of our Add Ons have also been updated to use the new div-based layout or other bug fixes included in this update. Those add ons will have updates available as well, so be sure to update all of your PMPro Add Ons with update notices before you update the core Paid Memberships Pro plugin.

Affected Add Ons Include


How to Update

Please update Paid Memberships Pro from the plugins page of your WordPress dashboard. You can also get the latest version of PMPro here or version 1.9.4 specifically here.


Changelog

In terms of number of fixes and enhancements, this is one of our largest updates ever. The full list of updates is below.

  • BUG FIX: Fixed issue where PayPal was not working for amounts over $1000.
  • BUG FIX: Non-decimal currencies now handled correctly with Stripe.
  • BUG FIX: Fixed issue where updating a Stripe subscription from the edit user page could cancel the subscription once the webhook fired.
  • BUG FIX: Fixed issue where “admin_cancelled” memberships weren’t being calculated correctly in membership reports.
  • BUG FIX: Fixed issue where users could not drag and drop to change the order of membership levels.
  • BUG FIX: pmpro_getMembershipLevelsForUser() would sometimes return duplicate levels in the array if the user had multiple active entries in the pmpro_memberships_users table.
  • BUG FIX: Updated includes/metaboxes.php to call pmpro_getAllLevels() instead of relying on the $membership_levels global which is problematic.
  • BUG FIX: Fixed a few strings that weren’t wrapped for translation or were using the old text domain.
  • BUG FIX: Fixed redirect error that occured when the levels page was not set.
  • BUG FIX: Updated getfile.php to support file names with urlencoded characters (e.g. spaces) in them. (Thanks, florent from PMPro blog)
  • BUG FIX: Fixed notice when use the getfile.php script due to using add_filter instead of apply_filters in the mimetype class.
  • BUG FIX: Fixed the all time views column for the logins report.
  • BUG FIX: Fixed fatal error on the logins report, member shortcode and other issues when using PHP7.1+.
  • BUG FIX: Fixed issue with saving arrays using pmpro_setOption()
    up the lines of text.
  • BUG FIX: Fixed typo in the string “Are you sure you want to do that? Try again.”
  • BUG FIX: Fixed a few strings that used the wrong text domain or weren’t wrapped correclty for translation.
  • BUG FIX/ENHANCEMENT: Now bundling Google’s jsapi.js file for use in the reports.
  • BUG FIX/ENHANCEMENT: Fixed issue where some emails (e.g. the password reset email) would not have wpautop applied to them, crunching
  • BUG FIX/ENHANCEMENT: Better checking for Theme My Login compatibility when handling login redirects.
  • BUG FIX/ENHANCEMENT: Better error handling for Braintree.
  • BUG FIX/ENHANCEMENT: Membership stats widget now shows first 3 levels based on level order.
  • BUG FIX/ENHANCEMENT: Added the pmpro_member_shortcode_access filter
  • ENHANCEMENT: Updated the Stripe PHP library to version 5.2.2 and updated Stripe to use the latest version of their API, 2017-08-15.
  • ENHANCEMENT: Changed frontend pages (e.g. checkout.php) to use a div-based layout instead of tables. Important information here if you are using custom page templates or notice UI issues after upgrading
  • ENHANCEMENT: Added pagination to the discount codes page in the admin. Also sorting codes in descending order by ID. Use the pmpro_discount_codes_per_page filter to change the per page limit from 15.
  • ENHANCEMENT: Updated plugin admin pages with better links to documentation and support.
  • ENHANCEMENT: Updated plugin frontend pages checkout, billing, confirmation, and single invoice to remove most table based layouts.
  • ENHANCEMENT: Better error message if trying to checkout using an existing user’s email address.
  • ENHANCEMENT: Added the pmpro_report_levels filter to let users change levels and order of levels for the memberships.php report.
  • ENHANCEMENT: Updated video and copy for readme.txt.
  • ENHANCEMENT: Added user display name to Memberlist search query
  • ENHANCEMENT: Added Russian Ruble as a currency.
  • ENHANCEMENT: Changed the dated term “CVV” to “Security Code (CVC)” when shown on the frontend.
  • ENHANCEMENT: Added .doc and .docx to the mimetype class.
  • ENHANCEMENT: Added Portuguese language files. (Thanks, Secundino Correia)
  • ENHANCEMENT: Updated plugin admin pages with better links to documentation and support.