Paid Memberships Pro icon

12 versions

Paid Memberships Pro history.

Every release of Paid Memberships Pro is archived here with its changelog, file size, and security scan result. Use the archive to roll back to a stable release or audit what changed between updates.

11 of 12 releases scanned clean
v3.8.2Latest
July 14, 20264.4 MBScanned
Other
  • SECURITY: Restored sanitization of user field values on save, which had been inactive since v3.4. #3726 (@dparker1005)
  • SECURITY: The Authorize.net Silent Post handler now requires Authorize.net API credentials to be configured on the site. #3724 (@dparker1005)
Fixed
  • Read-only user fields are no longer saved on form submission and are now escaped when displayed. This also fixes read-only checkbox and select field values being erased on profile update. #3726 (@dparker1005)
  • Fixed broken CSV exports when an exported value contained a quotation mark. #3716 (@dwanjuki)
  • Fixed checkout failures that could occur when the matching Stripe price had been archived in the Stripe dashboard. #3717 (@flintfromthebasement)
  • Fixed an issue where users with the `pmpro_reports` capability could not view email content in the Email Log popup. #3718 (@dwanjuki)
June 29, 20264.4 MBScanned
Added
  • Added a new `style` attribute to the `[pmpro_checkout_button]` shortcode to render it as a link or a button, and improved its styling. #3708 (@kimcoleman)
  • Improved the HTML validity and accessibility of frontend forms and pages, including fixing duplicate `id` attributes and invalid fieldset/legend markup. #3707 (@kimcoleman)
  • Added a new `pmpro_restrictable_taxonomies` filter, allowing Add Ons to register custom taxonomies whose terms can be restricted by membership level from the term edit screen. #3704 (@kimcoleman)
Fixed
  • Fixed a fatal error on the Membership Billing page when a subscription's gateway object could not be loaded. #3706 (@kimcoleman)
  • Fixed the Members List CSV export so the exporting admin is no longer incorrectly included when exporting filtered or searched results. #3711 (@andrewlimaza)
  • Fixed a 404 error when viewing email log details in the modal on sites using Plain permalinks. #3712 (@dwanjuki)
  • Fixed select fields overflowing the viewport on small screens. #3705 (@kimcoleman)
  • Saving a membership level no longer clears term restrictions, such as tag restrictions, that were set from the term edit screen. #3704 (@kimcoleman)
  • Restricted posts are now correctly hidden from searches and archives when a term's ID and term taxonomy ID differ. #3704 (@kimcoleman)
v3.8Unavailable
June 15, 20264.3 MBScanned
Added
  • Upgraded the email template editor to the standard WordPress visual/text editor with built-in Liquid syntax autocomplete for variables, tags, and filters. #3695 (@dparker1005)
  • Added a new `[pmpro_membership_level]` shortcode for displaying membership level details. #3087 (@kimcoleman)
  • Added Divi 5 compatibility for PMPro module-level restrictions and no-access message handling. #3620 (@JarrydLong)
  • Added a new `level_group_id` email template variable to every email template class that exposes `membership_id`. #3684 (@kimcoleman)
  • Allowed shortcodes in the account page message. #3682 (@kimcoleman)
  • Removed the misleading "Advanced Settings" hint from the no-access message controls. #3699 (@dparker1005)
  • Clarified the user field meta key hint on the user field settings page. #3698 (@kimwhite)
  • Added an Add On icon for the MemberPress Migration Toolkit. (@kimcoleman)
Fixed
  • FIX/ENHANCEMENT: Now hiding the recurring trial settings on membership level and discount code edit pages when the active gateway doesn't support recurring trials. #3628 (@dparker1005)
  • FIX/ENHANCEMENT: Added a fallback for email logging when SMTP plugins (e.g. Gravity SMTP) bypass the `wp_mail_succeeded` and `wp_mail_failed` actions. #3697 (@andrewlimaza)
  • Cleaned up orphaned membership level relationships when a level is deleted. #3693 (@dparker1005)
  • No longer shows the membership confirmation message when the order has not been confirmed. #3682 (@kimcoleman)
  • Fixed a fatal error on the Membership Billing page for logged-out requests. #3694 (@flintfromthebasement)
  • Fixed the Orders list table appearing blank on mobile by setting the order code as the default primary column. #3696 (@dparker1005)
  • Cleared stale card information when a recovered Stripe payment uses a non-card payment method. #3703 (@dparker1005)
Improved
  • Removed unused `pmpro_userfields_get_group` and `pmpro_userfields_get_field` AJAX handlers. #3672 (@dparker1005)
Removed
  • Deprecated the credit card expiring email template. #3688 (@dparker1005)
  • The Membership Billing page no longer writes `pmpro_b*` user meta on save, and the email field has been removed from that page. #3668 (@dparker1005)
May 28, 20264.3 MBScanned
Fixed
  • FIX/ENHANCEMENT: Skip the `pmpro_visit` cookie when `WP_CACHE` is active so page caches like Surge, Cloudflare, Varnish, and WP Super Cache aren't bypassed on anonymous front-end requests. Added a new `pmpro_set_visit_cookie` filter to override the default behavior. #3690 (@flintfromthebasement)
  • Fixed Stripe recurring orders silently saving `tax = 0` after the Stripe API version bump by deriving tax from `invoice->total_excluding_tax` instead of the deprecated `invoice->tax`. #3685 (@dwanjuki)
  • Fixed Site Health reporting a false-positive Action Scheduler library conflict on Windows hosts by normalizing the library path before the conflict check. #3687 (@dparker1005)
  • Fixed button icons no longer being inline in the WordPress 7.0 admin and the "Show" label floating to the right of the levels dropdown on the Members List screen. #3689 (@RachelRVasquez)
v3.7.3Unavailable
May 14, 20264.3 MBScanned

No changelog available for this version.

v3.7.2Unavailable
May 2, 20264.3 MBScanned
Other
  • SECURITY: Tightened ownership check in the `/pmpro/v1/order` REST permission callback to bail early for anonymous requests, require a non-empty order ID, and use a strict integer comparison. #3643 (@flintfromthebasement)
  • SECURITY: Scoped the `/pmpro/v1/quick_search` users meta lookups to custom profile fields by skipping internal WP/plugin meta keys. Added the `pmpro_rest_api_quick_search_meta_key_blocklist` filter so sites can extend the blocklist. #3644 (@flintfromthebasement)
  • SECURITY: Fixed a non-functional capability guard in `PMPro_Field_Group::save_fields()` where a literal string comparison made the `current_user_can( 'edit_user' )` check unreachable. #3645 (@flintfromthebasement)
Added
  • Reworked the Email Settings and Security Settings admin pages to detect the active email sending method and security provider, surface that information in Site Health, recognize PMPro Max as a provider, and remove the legacy built-in SendWP integration. #3656 (@kimcoleman)
  • Renamed the Builder and Plus Add Ons to Max throughout the admin and labeled all paid Add Ons under the new Premium license tier. #3650 (@dparker1005)
  • Added the new PayPal Gateway Add On to the Payment Gateway settings page, surfacing it as "Enabled (via Add On)" when active as a secondary gateway. #3657 (@dparker1005)
  • Added new filters for avatar upload location and render location to support multisite installations. #3648 (@kimcoleman)
  • Updated the Design Settings page link to a direct URL so tracking parameters work without a redirect. #3625 (@kimwhite)
  • Added/updated Add On icons including a new MailerLite icon for an upcoming Add On. #3627, #3652 (@kimcoleman)
Fixed
  • FIX/ENHANCEMENT: Fixed three bugs that caused member CSV export downloads to return 403/404: deferred export record cleanup until after the file is served, extended download token TTL to 7 days and hardened the URL builder when no token is available, and prevented zero-record exports from creating a ghost "complete" state. Introduced the `pmpro_restricted_file_served` action and buffered handler output to avoid corrupting the response. #3637 (@dalemugford)
  • Fixed a deprecated `pmpro_changeMembershipLevel()` call when deleting a WP user. #3660 (@kimwhite)
  • Fixed deprecation notices in `pmpro_cleanPhone()` when the phone value is `null`. #3654 (@dwanjuki)
  • Fixed the All Levels member export producing duplicate rows and omitting members with higher user IDs in large exports. #3632 (@flintfromthebasement)
  • Fixed the `checkbox_grouped` field input not receiving the correct CSS selectors. #3646 (@kimcoleman)
  • Skipped content visibility controls for unsupported blocks in widget editors to prevent JS errors. #3653 (@dwanjuki)
v3.7.1Unavailable
April 21, 20264.4 MBScanned
Fixed
  • Fixed some admin pages not saving due to POST redirect in list table referer cleanup. #3624 (@kimcoleman)
  • Fixed PHP 8.1 deprecation warnings in restricted files functions on Windows servers with misconfigured upload directories. #3623 (@flintfromthebasement)
Removed
  • Deprecated the PayPal Express gateway. PayPal is retiring the NVP/SOAP API that PayPal Express relies on. A new PayPal integration is coming soon. #3622 (@dparker1005)
  • Renamed the Website Payments Pro gateway slug from `paypal` to `paypalwpp` to free the `paypal` slug for the upcoming PayPal REST API Add On. #3622 (@dparker1005)
v3.7.0Unavailable
March 25, 20264.4 MBScanned
March 14, 202612.2 MBScanned
Other
  • SECURITY: Added capability and nonce checks to Stripe webhook AJAX management endpoints. #3615 (@dparker1005)
  • SECURITY: Added shared-secret token validation for the deprecated Authorize.net ARB Silent Posts integration with a configurable `pmpro_authnet_silent_post_token` option in gateway settings. #3598 (@dparker1005)
Fixed
  • Fixed an operator precedence bug causing corechart.js to load on all report pages. #3609 (@flintfromthebasement)
  • Fixed an "Attempt to read property ID on null" warning in display post states. #3599 (@dwanjuki)
v3.6.5Unavailable
February 28, 202612.1 MBScanned
Other
  • SECURITY: Gated the unverified Stripe webhook event fallback behind a new `pmpro_stripe_webhook_allow_unverified_post_event` filter, which defaults to `false`. #3592 (@dparker1005)
Added
  • Updated links to the Member Directory and Podcasting Use Case landing pages and hubs. #3593 (@kimcoleman)
  • Added a new `pmpro_memberships_widget_periods` filter to allow customizing the time periods shown in the Memberships Report widget. (@kimcoleman)
  • Added a new icon for the PMPro Kit Add On. #3575 (@kimcoleman)
  • Now clearing the object cache when user fields are created, updated, or deleted to ensure changes show immediately when using persistent object caching. #3565 (@dalemugford)
  • Updated the WP Fusion Lite integration through v3.47.6. #3583 (@dparker1005)
Fixed
  • FIX/ENHANCEMENT: Now ignoring PayPal error code 11556 when cancelling a subscription that is already inactive to avoid unnecessary admin notifications. #3572 (@dparker1005)
  • Fixed an issue where the field group description was not showing due to an incorrect variable reference. #3591 (@mircobabini)
  • Fixed an issue where failed Stripe recurring payment orders were missing card info and billing address data. #3590 (@dparker1005)
  • Fixed an issue where the membership level billing amount could be recalculated incorrectly when processing checkout via webhook, potentially losing discount code pricing. #3585 (@dparker1005)
  • Fixed an issue where the timestamp for new orders created in the admin could default to 1970 when the site timezone is not UTC. #3582 (@dparker1005)
  • Resolved PHP 8.5+ deprecation warnings for non-canonical cast names. #3560 (@dwanjuki)

Why archive

Sometimes the latest release isn't the one you need. The archive lets you pin Paid Memberships Pro to a known-good version, or roll back while a bug is investigated. Every release stays scanned and reachable.