We are excited to announce the release of Paid Memberships Pro v3.1, a continuation of our 3.0 update that brings even more jaw-dropping features to PMPro-powered membership sites.

The most exciting aspect of this release is a completely designed frontend user interface, with two visually stunning and conversion-optimized styles. These new designs are focused on clarity and accessibility. We’ve also added color settings and support for dark mode, making PMPro’s frontend design fully adaptable to your site’s appearance.

This post details the major new features and improvements you can expect in v3.1, as well as some important considerations before updating your site.

Read on to learn about these enhancements and how to safely prepare for the update.

Banner Image for What's New in PMPro Version 3.1

Video Walkthrough

Major New Features: Paid Memberships Pro v3.1 Release

Alongside numerous bug fixes and enhancements, here is an overview of the key features in the Paid Memberships Pro v3.1 release:

Overhauled Frontend UI and Design Settings

For the first time in 13 years, we have completely redesigned the frontend user interface. The new Design settings screen offers multiple style variations to choose from, each crafted to maximize conversions and enhance visual appeal.

Single Order frontend page in PMPro v3.1+

You can also fully disable the design layer to run the minimal styles only. These minimal styles are the basics needed to make sure you site’s membership frontend is functional.

Memberships > Settings > Design screen in the WordPress admin of PMPro v3.1+

Beautiful and Accessible

We optimized each design to not only be visually stunning, but also for accessibility. All of our frontend forms are now fully accessible, including a new password toggle feature. We are using proper field labels, fieldsets, and more for all interactive elements.

We’ve put effort into ensuring that the responsive view of your PMPro pages is as usable as that on a wider screen. This means that frontend tables now gracefully collapse for smaller screens with the appropriate column label to identify the cell data.

Plus, we have ensured that all of our designs meet the minimum Web Content Accessibility Guidelines (WCAG) requirements with a contrast ratio of at least 4.5:1 for normal text. PMPro’s frontend elements are Level AA compliant for color contrast.

Screenshot of a smart generated no access message for protected content in PMPro v3.1+

Support for Dark Mode

Finally, you can now set your site’s base, contrast, and accent color. These colors are used for frontend component backgrounds, text, and buttons, respectively. You can even set a dark base color with lighter contrasts color for complete support with dark mode or themes with a dark background.

Key features of the design screen include:

  • Multiple style variations: Choose from two highly optimized styles that can be customized to match your site’s colors. Or, choose the Minimal variation for required styles only.
  • Improved “no access” messages: We’ve enhanced the logic for generating “no access” messages and added filters for easy customization.
  • Standardized CSS selectors: Making it easier than ever to theme your PMPro site.
Screenshot of the My Account section of the Membership Account page in PMPro v3.1+

Enhanced Security Features

Security is always a priority. With v3.1, we’ve introduced a new Security screen. This tab centralizes all security-related settings, providing you with better control and visibility over your site’s security measures.

This screen includes settings and tests to ensure you:

Memberships > Settings > Security screen in the WordPress admin of PMPro v3.1+

Changes to Stripe Checkout

Stripe Checkout is now the default payment flow for new sites, offering a seamless and secure payment experience. We’ve also added an Edit Customer in Stripe button on the single subscription page, making it easier to manage Stripe subscriptions directly from your PMPro dashboard.

Bug Fixes and Enhancements

We’ve made numerous bug fixes and enhancements to ensure a more stable and efficient platform. Some notable updates include:

  • Improved billing failure emails: Now linking directly to the “update billing information” page.
  • Consolidated email templates: There were several email templates that were no longer being sent and others that could be consolidated together for a more user-friendly admin setup. We’ve also done a lot of work to make sure email template variables (where they make sense) are available for almost all templates.
  • Updated PayPal button: Instead of an image-only button, we swapped to using a button that combines plain text, screen reader text, and the PayPal SVG logo. The button is now fully accessible and translatable.
  • Standardized terminology: Replacing “Invoice” with “Order” across the plugin. Invoices have a specific meaning, especially for international sites using Paid Memberships Pro. These frontend screens have always been more of an order receipt than a legally compliant invoice. Now the wording reflect this, too.
  • Generated pages hierarchy: When PMPro first installs, we now generate the required frontend plugin pages in a hierarchy that makes more sense. Membership Account, Membership Levels, and Membership Checkout are now top level pages. The Membership Confirmation page will sit under the checkout page, and all other account-related pages are nested under the Membership Account page.

Resolved Bug Where the User ID on a Subscription May Be Incorrect

In previous versions of PMPro (v3.0 to v3.0.6), we discovered an issue where subscriptions were not linked to the correct user ID in the database.

This issue would only occur for sites that had users with an ID larger than 4294967295 (yes, that’s over 4 billion user IDs).

The issue is resolved in v3.1 and we have added a notice to alert affected sites. If you are seeing this notice, the plugin has detected that your site could have been affected and that some of your subscriptions need to be manually corrected.

The steps to repair your site are:

  1. Identify users who would be affected (any user with an ID larger than 4294967295).
  2. Go through that user’s orders to see if there are any subscription orders. To do this, navigate to the Edit Member Screen with a URL like:
https://mysite.com/wp-admin/admin.php?page=pmpro-member&user_id=4294967295&pmpro_member_edit_panel=orders
  1. For each order on this screen, you need to confirm whether the order was part of a subscription. If so, you should see a subscription in the “Subscription” column of the Order panel.
  2. From here, copy that subscription transaction ID.
  3. In your membership site’s database, open the wp_pmpro_subscriptions table and locate the subscription by its unique ID.
  4. Update the user ID for that subscription to the correct user ID.

Repeat these steps for each user ID in your site that is over 4294967295.

Notes Before You Update to Paid Memberships Pro v3.1

This is a major update that introduces significant changes to your site’s design and functionality. Before you update, please ensure you have a complete backup of your site.

  • Test on a staging environment: We highly recommend testing the new release on a staging environment before updating your live site.
  • Review the changelog: Familiarize yourself with the full list of changes and deprecations to avoid any surprises.
  • Prepare to Update Custom CSS: If you have custom CSS that heavily targets PMPro’s frontend, most of your CSS selectors will need to be replaced with the v3.1+ equivalent. We did a lot of work to streamline our CSS selectors (class names) so that all forms, lists, fieldsets, boxes, and more leverage the same core list of styles. This should make the process of updating and maintaining custom CSS much easier.

Please reach out to our support team for help bridging your legacy styles into the new structure. You may find that you can do away with all of your custom styling and just enjoy the new appearance. But, there are also ways to maintain your legacy selectors by using the pmpro_element_class filter.

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

PMPro v3.1 Full Changelog

  • FEATURE: Added a new “Design” tab to the Memberships > Settings page with multiple frontend style variations to choose from.
  • FEATURE: Added a new “Security” tab to the Memberships > Settings page.
  • ENHANCEMENT: Updated the styling of frontend pages.
  • ENHANCEMENT: Improved the logic around how “no access” messages are generated and added filters to customize these messages.
  • ENHANCEMENT: Standardized CSS selectors to make theming a PMPro site more straightforward.
  • ENHANCEMENT: Added an “Edit Customer in Stripe” button to the “View Subscription” page for Stripe subscriptions.
  • ENHANCEMENT: Set Stripe Checkout to be the default Stripe payment flow on new websites.
  • ENHANCEMENT: Updated the “Check out with PayPal” button so that it is more accessible and can be translated.
  • ENHANCEMENT: Updated the billing failure email to link directly to the “update billing information” page for the corresponding subscription.
  • ENHANCEMENT: Updated the term “Invoice” to “Order” in most places throughout the plugin.
  • ENHANCEMENT: Added filters for updating how the total, subtotal, and tax are displayed for an order.
  • ENHANCEMENT: Added a new filter pmpro_subscription_cost_text for updating how the subscription cost is displayed.
  • ENHANCEMENT: Added new filter pmpro_dashboard_meta_boxes to allow developers to hide dashboard widgets and add their very own widgets to the PMPro dashboard area.
  • ENHANCEMENT: Now detecting Add Ons with incorrect folder names in site health.
  • BUG FIX/ENHANCEMENT: Email headers and footers are now added after email body filters are run.
  • BUG FIX/ENHANCEMENT: Added an error message on the Edit Member page when an order refund fails.
  • BUG FIX/ENHANCEMENT: Moved the “Edit Customer in Stripe” button on the Edit Member page to the “User Info” tab.
  • BUG FIX/ENHANCEMENT: Added a fallback to get the site URL from the database should the SERVER_NAME parameter not be available in certain cases like using WP-CLI and some other instances.
  • BUG FIX/ENHANCEMENT: Now including email template variables for the expired level ID and level name on the membership expired email template.
  • BUG FIX/ENHANCEMENT: When using PMPro Lifter Streamline mode, now making sure that Lifter does not reserve the /membership/ slug.
  • BUG FIX/ENHANCEMENT: Enabled localization for certain strings throughout the plugin.
  • BUG FIX/ENHANCEMENT: Updated the “Login Name” setting for Authorize.net to “API Login ID” to match the Authorize.net documentation.
  • BUG FIX: Fixed an issue where the payment transaction ID would not be saved for an order while purchasing a subscription via Stripe Checkout.
  • BUG FIX: Fixed an issue on some hosting setups where subscriptions would not be successfully inserted into the database.
  • BUG FIX: Fixed an issue where the “Content Visibility” block editor settings could break some core WordPress blocks.
  • BUG FIX: Fixed an issue where a user’s membership might not be removed when a PayPal Express subscription is suspended due to payment failure.
  • BUG FIX: Fixed a broken link to the PMPro Approvals documentation page when creating a new membership level.
  • BUG FIX: Fixed an issue where testing the “cancel on next payment date” email template might fail.
  • BUG FIX: Fixed an issue where a PHP warning might be shown when dynamically adding the membership level body CSS class.
  • BUG FIX: Fixed an issue where the “From Name” email setting could add slashes before escaped characters when saved.
  • BUG FIX: Fixed an issue where the “View With” admin bar dropdown might not work correctly when using Firefox.
  • BUG FIX: Fixed an issue where there might not be a space between class names when creating a user field.
  • BUG FIX: Fixed issues where user IDs over 4294967295 would not be correctly linked to their subscription.
  • BUG FIX: Fixed over-escaped HTML in the admin activity email.
  • BUG FIX: Fixed some typos in the plugin.
  • REFACTOR: Updated the checkout preheader to use the abstracted pmpro_complete_checkout() function.
  • REFACTOR: Removed duplicate code from PayPal gateway classes.
  • DEPRECATED: Removed the ability to customize no access messages for the RSS feed and the secondary option for logged out members. Filters should be used to customize these messages.
  • DEPRECATED: Removed the “Update Billing Flow” option from the Stripe gateway settings. Billing information will now be updated on-site if using the on-site payment flow and off-site if payments are taken via Stripe Checkout.
  • DEPRECATED: Removed the print.css file from the plugin. These styles are now in frontend.css.
  • DEPRECATED: Deprecated the pmpro_longform_address filter. Address fields will always be shown in longform format.
  • DEPRECATED: Removed setting and display of SSL Seal Code option from database and frontend pages.
  • DEPRECATED: No longer storing an option for accepted card types or allowing a card type select field in payment forms.
  • DEPRECATED: Deprecated the billable invoice, credit card expiring, checkout express, checkout trial, and checkout free trial email templates along with their admin counterparts.
  • DEPRECATED: Removed the setup.sql file from the plugin.
Cover image from ebook 29 Nuggets of Wisdom Volume 1 - Sample Collection

Download the free ebook: Get 29 insights and ‘aha moments’ for new or veteran membership site business owners. Use these nuggets of wisdom to inspire or challenge you.

Was this article helpful?
YesNo