Read on to see what our development team and many external developers have contributed to our open source platform in May. This post contains release notes for Paid Memberships Pro Add Ons recently updated.
Table of contents
- How to Update PMPro Add Ons
- Abandoned Cart Recovery: v1.0.3
- Addon Packages: v0.9.2
- Advanced Levels Page: v1.2.1
- Approval Process for Membership: v1.7.1
- Auto-Renewal Checkbox: v0.4.2
- BuddyPress and BuddyBoss Integration: v1.5.2
- Courses for Membership: v2.1
- Custom Level Cost Text: v0.4.3
- Custom Post Type: v1.0.2
- Developer’s Toolkit: v1.1.2
- Email Confirmation: v0.9
- Gift Membership: v1.1.2
- Google Analytics: v1.0.3
- Group Accounts: v1.6
- Group Discount Codes: v0.5.1
- Lock Membership Level: v1.0.2
- Mailchimp Integration: v2.4.1
- Mailing Address: v2.0.1
- Member Badges: v1.1.1
- Member Directory and Profile Pages: v2.2
- Member Homepages: v0.3.2
- Mobile Reports Dashboard: v1.0.1
- Multisite Membership: v0.6
- Pay by Check: v1.1.7
- Payment Plans: v0.6
- PayPal Gateway: v1.1.1
- Proration and Delayed Downgrades: v1.0.3 &v1.0.4
- Protected Downloads: v1.1
- Reason for Canceling: v1.2.1
- Series: Drip-Feed Content: v1.0.1
- Slack Integration: v1.1.2
- Subscription Delays: v0.6.2
- User Pages: v0.7.1
How to Update PMPro Add Ons
Navigate to Dashboard > Updates in the WordPress admin to update Add Ons in your membership site. A valid license is required to update some of our premium Add Ons. Be sure to backup your site before performing updates and always update one plugin at a time so that you can isolate upgrade issues.
Abandoned Cart Recovery: v1.0.3
Recover lost sales and memberships with automated emails sent to users who abandon their cart during membership checkout.
- ENHANCEMENT: Recovery reminder emails are now scheduled via Action Scheduler when running PMPro 3.5 or newer. Sites on older versions continue to use WP-Cron.
- ENHANCEMENT: Updated the default subject and body for the three recovery reminder email templates to use Liquid (
{{ variable }}) syntax on PMPro 3.7 and newer. Older PMPro versions continue to receive the legacy!!variable!!defaults.
Addon Packages: v0.9.2
Sell access to individual pages or posts, or sell a la carte items for a flat fee.
- BUG FIX: Levels that no longer allow signups are now skipped when generating the addon package checkout link.
- BUG FIX: Resolved a fatal error that could occur on the addon package checkout page when an existing member’s only matching level had signups disabled.
- BUG FIX: Fixed an “Undefined array key” PHP warning on the orders admin page when order notes did not match the expected Addon Package pattern.
Advanced Levels Page: v1.2.1
Enhance the levels page or showcase your pricing anywhere on your membership site.
- ENHANCEMENT: Improved accessibility of the level buttons with state-aware
aria-labeltext for select, renew, and account actions. - ENHANCEMENT: Improved accessibility of the empty header cell in the table layout by replacing
with screen-reader-only “Action” text. - BUG FIX: Resolved “Undefined array key” warnings and orphan columns in the compare table layout, and stopped the small-screen view from overriding values from the
pmpro_advanced_levels_compare_itemsfilter. - BUG FIX: Resolved deprecation warnings in the browser console for the Advanced Levels Page block by adding
__next40pxDefaultSizeand__nextHasNoMarginBottomprops to the editor controls.
Approval Process for Membership: v1.7.1
Set up a unique approval or application process for your membership site. This plugin gives membership site administrators the ability to approve or deny members.
- ENHANCEMENT: Updated default email templates to use the new
{{ variable }}Liquid syntax when running Paid Memberships Pro 3.7 or higher, while preserving the legacy!!variable!!syntax for older versions. - BUG FIX: Fixed textdomain placement on default email body strings in the Admin Approved, Admin Denied, and Application Approved templates so they are correctly translatable under the
pmpro-approvalstextdomain.
Auto-Renewal Checkbox: v0.4.2
Add a checkbox to the Membership Checkout form that gives members the option to set up automatic recurring payments or make a one-time payment for a fixed-term membership.
- ENHANCEMENT: Added a “Learn more” link to the Auto-Renewal Settings section on the Edit Membership Level admin page
BuddyPress and BuddyBoss Integration: v1.5.2
Sell access to a members-only, private community using BuddyPress or BuddyBoss and Paid Memberships Pro.
- ENHANCEMENT: Added a link to the Paid Memberships Pro documentation for the BuddyPress Integration Add On in the Edit Level settings.
- BUG FIX: Fixed a conflict with the BP Profile Search plugin where searches that returned no matches would show all members of the level, and ensured the directory remains correctly locked to PMPro members when the include filter is otherwise empty.
Courses for Membership: v2.1
Create courses with lessons and manage member access natively in Paid Memberships Pro or integrate with the most popular LMS plugins for WordPress.
- FEATURE: Added Course structured data (JSON-LD) output for the default Courses module. Outputs
Courseschema on single course pages andItemListschema on the CPT archive and on pages containing theshortcode or thepmpro-courses/all-coursesblock. Adds two new filters:pmpro_courses_structured_data_providerandpmpro_courses_structured_data_schema. - FEATURE: Added support for LearnDash Group enrollment. Membership levels can now restrict access to LearnDash Groups, and members are automatically enrolled in or removed from associated Groups when their level changes
Custom Level Cost Text: v0.4.3
Set a custom level cost text statement for membership levels and discount codes without coding, allowing you to easily adjust how membership subscription pricing is displayed on your site.
- ENHANCEMENT: Updated the Custom Level Cost Text settings on the Edit Level page with the modern admin styling and a link to the Custom Level Cost Text Add On documentation.
- BUG FIX: Fixed an issue where Custom Level Cost Text set on a discount code was missing from checkout emails when using Stripe Checkout, the checkout block, or other contexts that use the
pmpro_discount_coderequest key.
Custom Post Type: v1.0.2
Restrict access to custom post types and optionally redirect away from protected CPTs.
- ENHANCEMENT: Added a link to the documentation on the settings page.
Developer’s Toolkit: v1.1.2
Perform bulk data updates, disable and debug features, import or export settings, and more with this collection of development tools for Paid Memberships Pro.
- BUG FIX: Replaced the top-of-file
is_plugin_active()early return with narrowfunction_exists()checks at each PMPro-dependent entry point. The plugin now initializes correctly when PMPro is installed under a non-standard folder name (e.g.paid-memberships-pro-rc1) and avoids potential fatals on frontend requests.
Email Confirmation: v0.9
Require members to click a validation link in the confirmation email in order to verify membership.
- ENHANCEMENT: Added a link to the Email Confirmation Add On documentation on the Edit Membership Level page and removed colons from the field labels.
- DEPRECATED: Removed bundled translation files to reduce the shipped plugin package size.
Gift Membership: v1.1.2
Sell the gift of membership to your site, offering a unique gift code that recipients can redeem for a specified membership level.
- ENHANCEMENT: Updated email templates to use liquid
{{ }}variable syntax when running Paid Memberships Pro v3.7+, with backwards-compatible fallback to legacy!!syntax for older versions of PMPro.
Google Analytics: v1.0.3
Google Analytics Integration for GA4 to measure traffic, interactions, and ecommerce conversions across your WordPress membership site.
- BUG FIX: Added a null check for the global
$pmpro_levelinpmproga4_checkout_events()to prevent fatal errors when the membership level is not set on the checkout page (e.g. direct page access or third-party plugin interference)
Group Accounts: v1.6
Sell group memberships to corporate organizations, families, teams, or any group of people where one member pays for a collection of people to access your content individually.
- FEATURE: Added a new “Group Accounts” admin page (Memberships → Group Accounts) for administrators to view all groups on the site and manually create new groups. The new admin list table supports custom columns via the
pmprogroupacct_manage_groupslist_columnsfilter and thepmprogroupacct_manage_grouplist_custom_columnaction. - ENHANCEMENT: Added a “Managed by [parent name]” message to the membership account page level cards for child group members, supporting the PMPro 3.4+ card-based account layout.
- ENHANCEMENT: Added Group Accounts fields to the new mapping screen in the Import Users From CSV Add On so administrators can map CSV headers to group seat counts and group IDs.
- DEPRECATED: Removed automatic creation of empty 0-seat groups on level gain and parent login. Groups are now created only at checkout or by an administrator via the new admin page.
Group Discount Codes: v0.5.1
Adds features to PMPro to better manage grouped discount codes or large numbers of unique discount codes with the same pricing.
- ENHANCEMENT: Added a “Learn more” documentation link in the Edit Discount Code admin screen and adjusted the “Group Codes” heading level to match other PMPro Add Ons.
Lock Membership Level: v1.0.2
Set up a rule to lock changes on a single membership level or for a single member. Locks can be set up for a specific timeframe (installment plans) or indefinitely to block a member.
- ENHANCEMENT: Added a hint and proper
<label>to the Membership Level field in the Locked Memberships panel of the Edit Member page to clarify how the setting works. - ENHANCEMENT: Added a “Learn more” link to the Lock Membership Level Add On documentation in the level settings section on the Edit Membership Level page.
Mailchimp Integration: v2.4.1
Integrate Mailchimp with Paid Memberships Pro. Automatically subscribe members to audiences based on their membership level and allow members to opt-in to lists at checkout or by editing their profile.
- ENHANCEMENT: Profile updates now only push changes to Mailchimp audiences associated with the user’s current membership levels, opt-in lists, or non-member lists. This avoids unnecessary API calls and prevents merge fields from being overwritten on audiences configured for other sites that share the same Mailchimp account.
- ENHANCEMENT: Added a notice to the WordPress debug log when a Mailchimp API call returns an error, pointing administrators to the PMPro Mailchimp log for details.
Mailing Address: v2.0.1
Capture your member’s mailing information during the membership checkout process for memberships that include a physical component.
- ENHANCEMENT: Updated the Edit Level settings UI to match modern PMPro 3.x conventions and added a link to the Mailing Address Add On documentation.
Member Badges: v1.1.1
Display membership badges to visually recognize your members and their achievements. Assign unique badge images to each membership level and display them across your site to promote credibility, community, and engagement.
- ENHANCEMENT: Added a section heading and “Learn more about Member Badges” documentation link to the Edit Membership Level settings page.
- BUG FIX: Fixed a PHP 8.1+ deprecation notice in
pmpromb_show_badge()caused by optional parameters declared before a required parameter.
Member Directory and Profile Pages: v2.2
Enhance your membership site with a public or members-only searchable directory, customizable member profile pages and a membership map.
- ENHANCEMENT: Added marker clustering functionality for Google Maps. Markers are grouped into clusters at lower zoom levels and can be toggled via the new
pmpromd_map_cluster_markersfilter. - BUG FIX: Fixed member start/end date calculations when some membership levels do not have an expiration date.
- BUG FIX: The
show_mapattribute on the[pmpro_member_profile]shortcode now correctly accepts string values like"false". - BUG FIX: Resolved console warnings and errors in the Member Directory and Member Profile blocks, fixed a
webpack.config.jsbuild error, and updated block components to follow current WordPress component patterns. - REFACTOR: Removed use of the deprecated
SQL_CALC_FOUND_ROWSSELECT modifier. The total row count is now derived from the directory query without it.
Member Homepages: v0.3.2
Redirect members to a unique homepage based on their level, so you can focus your primary homepage on attracting and selling memberships to visitors.
- ENHANCEMENT: Added a “Learn more” link to the Membership Homepage settings section on the Edit Membership Level page pointing to the Add On documentation.
- ENHANCEMENT: Adjusted the markup of the Membership Homepage settings (heading level, label associations, and consistent escaping) for better accessibility and consistency with WordPress core admin conventions.
- BUG FIX: Fixed an issue where the member homepage redirect could prevent the WordPress theme/plugin file editor from saving PHP changes by interfering with the loopback fatal-error check.
Mobile Reports Dashboard: v1.0.1
A streamlined membership site reports dashboard that loads outside of your WordPress admin—a PWA (progressive web app) designed for mobile and responsive screens.
- BUG FIX: Fixed duplicate “View Mobile Reports” button appearing on the PMPro Reports admin page in PMPro v3.0+ where two
h1tags caused the button to be added twice.
Multisite Membership: v0.6
For sites using WordPress multisite network, use this Add On for centralized membership checkout, login, and admin on the main network site and restrict access to content across all of your subsites.
- FEATURE: Added an option on the subsite Settings screen to inherit advanced settings from the main network site (default), or to use custom settings per subsite.
- ENHANCEMENT: Member avatars now load from the main network site’s uploads directory via the new
pmpro_avatar_basedirandpmpro_avatar_baseurlfilters in PMPro core. - BUG FIX: Removed a stray
var_dump()and fixed a malformed<div id=="message">in the subsite settings page.
Pay by Check: v1.1.7
Let members make a manual payment for membership dues through payment methods like bank transfer, Venmo, cash, or check.
- ENHANCEMENT: Updated default email templates to use the new liquid syntax (
{{ var }}) for Paid Memberships Pro 3.7+ while preserving the legacy!!var!!syntax on older versions. - ENHANCEMENT: Updated the admin “check pending” email body to use
{{ order_id }}/{{ order_date }}/{{ order_total }}so it matches the documented variable list and the member-facing templates.
Payment Plans: v0.6
Offer different recurring payment structures on the same level of membership, such as monthly, quarterly, or annual pricing. Users can select a payment plan during the checkout process.
- ENHANCEMENT: Added a Payment Plan column to the Orders and Subscriptions list tables and the Edit Member panels, plus a Payment Plan section on the single subscription view. The plan is now stored on the subscription record (with self-healing for legacy orders) so reports can group recurring orders by plan.
- ENHANCEMENT: Added a “Learn more” link to the Payment Plans Add On documentation in the level edit settings.
- ENHANCEMENT: Added “Docs” and “Support” links to the plugin row meta on the Plugins screen.
- BUG FIX: Fixed a layout jump and stale expiration text when switching payment plans on the checkout page.
PayPal Gateway: v1.1.1
Modern PayPal payments for your membership site, using PayPal’s newest payments API. Automatic webhook setup, recurring subscriptions, and support for PayPal, guest card, and Pay in 4 payments.
- BUG FIX: Fixed a
DECIMAL_PRECISIONerror from the PayPal billing API when checking out a recurring level whose initial payment is 0 on a zero-decimal currency (JPY, KRW, VND, UAH, ALL). The setup fee is now formatted viapmpro_round_price_as_string()so it matches the site currency.
Proration and Delayed Downgrades: v1.0.3 &v1.0.4
Automatically prorate membership payments for upgrades and downgrades, ensuring smooth transitions for your members while maintaining their recurring payment dates.
v1.0.3
- ENHANCEMENT: Updated all 5 delayed-downgrade email templates to use the new Liquid
{{ variable }}syntax when running PMPro 3.7 or later, while still falling back to the legacy!!variable!!syntax on older versions of PMPro. Default email bodies now use the samewp_kses_post( __( ... ) )pattern as PMPro core. - BUG FIX: Fixed an issue where the delayed downgrade level could be incorrectly recorded as the level being downgraded from (instead of the level being downgraded to) on Stripe onsite checkouts when the Affiliates Add On was active.
v1.0.4
- BUG FIX: Fixed an issue where proration could credit a user for a recurring payment they had not actually paid when their subscription was past due on PMPro v3.6 or later. The Add On now skips proration entirely for past-due subscriptions and lets the checkout proceed at full price.
- BUG FIX: Fixed an issue where a delayed downgrade could be processed prematurely when a recurring payment failed on PMPro v3.6 or later. Delayed downgrades now process when the subscription’s next recurring payment is successfully collected (
pmpro_subscription_payment_completed) instead of when an order is created (pmpro_added_order).
Protected Downloads: v1.1
Offer secure file downloads to your members, like PDFs, templates, checklists, tools, and more. Membership-level access control is built-in and the source file is fully protected.
- ENHANCEMENT: Added a new “Embed Image” toggle to the PMPro Download block (and
embed_image="true"shortcode attribute) that displays image-type downloads inline for members with access. - BUG FIX/ENHANCEMENT: The
shortcode placed in a level confirmation message now renders as a clickable download link when the confirmation message is included in checkout emails, instead of appearing as raw shortcode text. Invalid shortcodes are left unchanged so admins can spot the typo.
Reason for Canceling: v1.2.1
Understand why members are leaving and improve retention. Require a reason for membership cancellation during the member cancel process.
- ENHANCEMENT: The Edit Member “Cancellation Reasons” panel now shows an em-dash for missing dates or levels and a
[deleted level #N]placeholder when a referenced level no longer exists. - BUG FIX: Fixed PHP errors and incorrect translation handling on the Edit Member “Cancellation Reasons” panel when a user’s stored cancellation reason was in the older string format instead of an array.
Series: Drip-Feed Content: v1.0.1
Drip content for membership sites to control when members gain access to your content over time. Create a structured content series that unlocks serialized resources based on how long a member has been active.
- ENHANCEMENT: Updated the New Content email template to use liquid syntax (
{{ }}) when running PMPro v3.7 or higher. The legacy!!syntax continues to be used on older versions of PMPro.
Slack Integration: v1.1.2
Receive Membership Checkout notifications in the specified Slack channel.
- ENHANCEMENT: Improved translation support across the settings page and plugin row links by wrapping strings in proper i18n functions and correcting the text domain.
- BUG FIX: Slack notifications now send for offsite gateways (Stripe Checkout, PayPal Standard, 2Checkout) where the user is not logged in when
pmpro_after_checkoutfires asynchronously from a webhook or IPN. - BUG FIX: Fixed the “Something went wrong” error echo so it now outputs the actual error message returned by the Slack webhook request instead of the literal string
$error_message. - BUG FIX: Fixed a stray double quote in the levels-to-notify
<select>nameattribute on the settings page and added missingesc_attr()/esc_html()on rendered level IDs and names.
Subscription Delays: v0.6.2
Set a variable-length period between checkout and the first recurring subscription payment with a customizable delay setting for membership levels and discount codes.
- BUG FIX: Resolved a PHP 8.1+ “automatic conversion of false to array is deprecated” notice when saving discount codes by returning an empty array from
pmpro_getDCSDs()instead offalsewhen no delays are stored - BUG FIX: Avoided a PHP warning in
pmprosd_level_cost_text()when thepmpro_level_cost_textfilter is fired without a valid level object.
User Pages: v0.7.1
Create a personalized member page with content for a specific user, allowing you to communicate one-on-one with each person in a page that’s just for them.
- ENHANCEMENT: Localized the order confirmation message that links members to their most recent purchase page so the strings can be translated.
- ENHANCEMENT: Wrapped the order page permalink and post title output in
esc_url()andesc_html()in the confirmation message


































