We are excited to announce the release candidate (RC) for Paid Memberships Pro v3.5. The three biggest updates in this release include Action Scheduler support, a framework for Restricting Files, improved Payment Settings UI to prepare for v4.0, and a new Membership Dashboard for admins.
The 3.5 release makes irreversible changes to the functionality of your membership site. For this reason, we are offering the release candidate to developers as a way to get live site feedback before the public release.
The rest of this post covers the four major features in a bit more detail, and highlights several other feature, security, and bug fixes. Keep reading to learn how to download and test the v3.5 release candidate.

Using the Release Candidate on Our Main Site
To show our confidence in the stability and reliability of v3.5, the main website you’re browsing now is now already running PMPro v3.5 RC 1. We invite other sites, particularly those with a developer on the team, to join us in this crucial phase by testing the 3.5 version on their production websites.
Release Candidate Timeline
The RC phase is scheduled for roughly one week, after which we will proceed with the full PMPro v3.5 release.
- Download: The RC is available as a .zip file, downloadable directly from this post.
- Eligibility: We recommend the RC for production sites where a developer is available to address any potential issues with customizations or integrations.
- Feedback: Your insights and reports are invaluable. We encourage you to share your experiences, bugs, and suggestions to help us refine the final release.
Overview of Key Features in v3.5
Alongside numerous bug fixes and enhancements to ensure a more stable and efficient platform, below is an overview of the key features in PMPro v3.5.
Action Scheduler
Prior to v3.5, PMPro used the wp-cron
based system to send member emails and process longer-running tasks. For these big jobs, sites with many users or on low performance hosting faced issue with how many items their site could process at once. Crons also run silently in the background, without much visibility, making it difficult to debug issues with recurring tasks.
Related: About Action Scheduler: A scalable, traceable job queue for background processing large queues of tasks in WordPress.
With PMPro v3.5, tasks are queued-up, and run one after the other in batches. These batches are run continuously until all the items have been processed. Action Scheduler watches your site’s performance and gracefully finishes batches or shuts down its cycle when it thinks the site is already busy. This greatly improves overall website performance in day-to-day usage with:
- The ability to process thousands (or tens of thousands, or hundreds of thousands!) of member emails without your site breaking a sweat.
- New capabilities for our Add Ons (like Extra Expiration Emails), or custom code you might have or write.
- The ability for us to move more functionality to leverage the new system and provide more reliability and capability in various hosting environments.
This version now processes all membership expiration, payment reminder, and admin activity emails with Action Scheduler-powered schedules. We also perform any database tuning and file cleanup on these schedules, too.

We have big plans in store to further leverage Action Scheduler to defer processes that slow down checkouts, like email list subscription and tagging. In the coming months, we will be looking at all the places that Action Scheduler could be used, like course enrollments and enrollment repairs in our Courses Add On or prepping large file exports for the Members List and Orders lists.
Groundwork for Restricted Files
PMPro v3.5 introduces a new security feature: Restricted Files. This system is designed to protect sensitive log files, like payment gateway debug logs, by storing them in a private, non-public directory on your server.
These files live in a uniquely named folder inside your WordPress uploads directory (e.g. /wp-content/uploads/pmpro-xxxxxxxxxx/
) and are automatically locked down for Apache servers. The path is shown in the Memberships > Settings > Security screen in your WordPress admin.

If your site runs on NGINX, you will need to manually block access to the directory. We provide the exact code snippet in your admin panel to paste into your server configuration.
Right now, this feature is focused on securing PMPro core log files, but it lays the foundation for more robust file-based content protection in future releases (like fully protected digital downloads).
Consider this update an important first step in giving you tighter control over your membership site’s sensitive data.
If you need to protect files in your PMPro site today, please follow our guide: Protecting Downloads: Locking Down Files with PMPro
Improved Payment Settings UI
We have big plans for PMPro v4.0 with respect to the checkout and payments experience. To get started with some of that work, we have revamped the Memberships > Settings > Payments screen in the WordPress admin.

Now, setting the site’s default gateway and managing an individual gateway’s settings are on separate screens. This supports sites that offer multiple payment methods at checkout, like Stripe, PayPal Express, and a manual or offline payment method.
Admin Dashboard Updates
3.5 delivers you a refreshed layout for the Memberships > Dashboard screen in the WordPress admin.

This layout sets the stage for a future where the Dashboard can be fully customized just for your site. We’re planning to gather more feedback on how this screen is used, then put your needs into the product. Think customizable widgets you can enable or disable, quick links you can add for your unique team needs, and a notifications area that can help you see urgent site issues to address.

Changes to Stripe Application Fees
Since PMPro v2.6 (August 2021), sites could connect to Stripe using our Stripe Connect integration. At that time, we introduced a 1% application fee for connected sites, later increasing it to 2% for new connections. Site owners could override this fee using the pmpro_set_application_fee_percentage
filter.
PMPro v3.5 introduces a key change: recurring payments will now dynamically adjust the application fee at the time of processing. If your site has a valid PMPro Premium license, you will no longer be charged the additional fee on older subscriptions created before upgrading.
However, the inverse is also true: sites with lapsed Premium licenses will now see the 2% application fee applied to all active subscriptions.
In alignment with Stripe’s guidance for tighter platform integration, we are deprecating the filter-based fee adjustment method. Going forward, all Stripe Connect users must either:
- Pay the 2% application fee, or
- Maintain an active PMPro Premium license (which waives the fee)
If your site is still using the deprecated filter to reduce or remove the fee, you will see a notice after upgrading to v3.5. Continued use of this filter may result in your site being disconnected from Stripe.
To stay connected to Stripe through our Stripe Connect account, you must remove the filter or accept the 2% application fee via your the notice in the Memberships admin area.
Alternatively, to continue using Stripe with no additional application fee, you must do one of the following:
- Switch to using your own Stripe Restricted API keys by following this documentation (bypassing Stripe Connect).
- Activate a PMPro Premium license to waive the application fee.
How to Download PMPro v3.5 RC 1
Last updated: June 30, 2025
Important: This RC is approved to use in a production environment. But, we recommend that you only put PMPro v3.5 RC 1 on your site if you are a developer or have access to one on your team.
Issues may arise if you have heavily customized PMPro or are using third-party plugins that have not been updated for v3.5 compatibility.
Providing Feedback on PMPro v3.5 RC 1
Anyone that chooses to use the release candidate version should share feedback, bugs, warnings, issues, and anything else worth reporting. Here’s how to share your feedback.
- Slack Community Members can share feedback in the
#dev
Slack channel. Join the Free Slack Community » - If you do not wish to join the Slack Community, please submit your findings to us via our Contact Us page.
- Developers can open an issue and submit a pull request through our GitHub repository.
Your insights and contributions are invaluable to the improvement of PMPro.
Working Changelog for v3.5 (Last Updated 2025-06-30)
- FEATURE: Now using Action Scheduler to handle scheduled tasks.
- FEATURE: Now allowing files to be restricted using the new
pmpro_can_access_restricted_file
filter. This is currently used to ensure that log files generated during gateway webhook handlers can only be viewed by administrators. - FEATURE: Added content restriction settings when using Bricks Builder.
- ENHANCEMENT: Added additional widgets to the Memberships > Dashboard page and updated the layout to be more customizable.
- ENHANCEMENT: Updated the Memberships > Settings > Payments settings page UI to have a separate page for each gateway.
- ENHANCEMENT: Updated orders search to support searching by specific properties using [property]:[value].
- ENHANCEMENT: Now adding the option to automatically install the Update Manager during the setup wizard.
- ENHANCEMENT: Updated the content restrictions in Elementor to match how restrictions are set in the block editor.
- ENHANCEMENT: Now encoding the
pmpro_last_known_url
option to improve compatibility between “pause mode” and site migrations. - ENHANCEMENT: Now allowing linking to a filtered result via URL parameters on the Memberships > Add Ons page.
- ENHANCEMENT: Now supporting showing information from level meta when using the
[pmpro_member]
shortcode. - ENHANCEMENT: Added new functions
pmpro_get_countries()
andpmpro_get_default_country()
to avoid relying on global variables. - ENHANCEMENT: Added new hooks
pmpro_added_subscription
andpmpro_updated_subscription
. - ENHANCEMENT: Added a new filter
pmpro_deprecated_gateways
to allow developers to filter the list of deprecated gateways. - ENHANCEMENT: Updated the
PMPro_Email_Template
class to streamline the process of sending test emails for each email template. - ENHANCEMENT: Updated Wisdom data sharing to be an opt-out system. This will not change the selected option for existing sites.
- ENHANCEMENT: Added a new
pmpro_no_download
parameter to CSV exports to prevent downloading the CSV file during Toolkit tests. - BUG FIX/ENHANCEMENT: Now syncing application fees with Stripe before recurring payments are charged to ensure that fees reflect whether the site has an active license key.
- BUG FIX/ENHANCEMENT: Improved accessibility for the hidden honeypot field on the checkout page.
- BUG FIX/ENHANCEMENT: Now using a MutationObserver instead of the deprecated
DOMSubtreeModified
event to detect changes to the checkout message container. - BUG FIX/ENHANCEMENT: Improved the error message wording for subscriptions with the level ID set to
0
. - BUG FIX/ENHANCEMENT: Now trimming whitespace for user field options where only the value is provided.
- BUG FIX/ENHANCEMENT: Now avoiding extra whitespace in the payment description sent to PayPal Express.
- BUG FIX: Fixed an issue where membership expiration emails may show the incorrect level name for users who have multiple levels.
- BUG FIX: Fixed a PHP error on the sales reports page and fixed some closing HTML tags that did not match.
- BUG FIX: Fixed an issue where application fees were not set correctly when setting up Stripe subscriptions.
- REFACTOR: Now using the
Gocodebox_Banner_Notifier
class to display banner notifications. - DEPRECATED: No longer using crons for scheduled tasks and removed the
/scheduled/
directory. - DEPRECATED: Marked the
pmpro_set_application_fee_percentage
filter and the reduced Stripe application fee as deprecated.