PMPro Update

Version of Paid Memberships Pro is out with a handful of bug fixes. There are a few fixes for the Braintree gateway, a new filter to support customization of the checkout page (e.g. when using the Sitewide Sale Add On), and some other minor enhancements.

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 specifically here.

  • BUG FIX: Fixed issue where Braintree would try to cancel a subscription twice if it was cancelled on the Braintree side.
  • BUG FIX: Fixed bug in Braintree webhook when using certain versions of PHP.
  • BUG FIX: Correct Braintree plans flagged as faulty.
  • BUG FIX/ENHANCEMENT: Added Order Code to the Orders Export CSV
  • BUG FIX/ENHANCEMENT: Removed another warning RE billing limits with the Stripe gateway. (Thanks, Jordan Kohl)
  • ENHANCEMENT: Added the pmpro_include_pricing_fields filter.
  • ENHANCEMENT: Adding IDs to action links in the account shortcode so users can target them with CSS/JS.
  • ENHANCEMENT: Updated French Translation. (Thanks, Pascal)
  • ENHANCEMENT: Retina logo on dashboard pages.
  • ENHANCEMENT: Showing what PMPro page a page is in the Post List table of the WP dashboard.

New Support Ticketing System

Today we converted our paid member forums into a support ticketing system. The underlying technology is still a heavily customized version of the bbPress forums plugin. However, users can no longer view posts by other users, reply to other users’ posts, or search the forums. Instead, the support profile page has been updated to show a list of your own tickets.

All of your existing support tickets are still in this new system. If we were working on a support topic with you before, we are still working with you on that ticket now.

Despite the fact that we are essentially removing functionality from the site, we believe this change is a positive one that will result in better support for our customers.

The new ticketing system does more to protect your privacy. Some users were uncomfortable posting to the forums since others could see those posts, even if the private reply option was available.

This update also makes it easier to find your own tickets within the system and get right to the discussions that are important to you.

If you are one of the many users who used the forum search to find solutions to issues yourself, we know that this change is tough and may slow down some of the research you used to do. You should continue to use the full site search to see if there is a documentation page or blog post about your issue.

If you can’t find an answer on our site or through Google searches, feel free to open a new ticket for your question. In the short term, this will result in a higher number of support requests, and we are ready for that. We will be posting solutions to common issues on our blog and more regularly updating our documentation. The kinds of questions that were previously being answered through forum searches should become apparent to us very quickly, and we will get those solutions posted elsewhere on the site as soon as possible.

Thanks for your patience and understanding during this transition. If you have any questions or concerns about the new paid support system, let us know. If you notice anything buggy, definitely let us know.


PMPro Update

Version of Paid Memberships Pro is out with a handful of bug fixes and enhancements.

About the Update

In this update, a specific bug with the Braintree webhook has been fixed which may have resulted in out of sync subscriptions and/or missing orders for recurring payments.

Upgrading to version will fix this issue for new users and recurring orders going forward. We are working on a script to fix subscriptions that may have gone out of sync (i.e. cancel memberships for users who stopped paying last month) and find orders that didn’t make it into the PMPro database. When this script is available, we will update this post and send out another update to let you all know about that.

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 specifically here.

The full list of updates is below.

  • BUG FIX: Fixed fatal error in the Braintree webhook that will have caused syncing issues for Braintree users.
  • BUG FIX: Stopped sending the cancel subscription request to the PayPal API if we are processing the IPN request for the same subscription.
  • BUG FIX: Fixed issue where the Stripe API version was shown for non-Stripe gateways on the payment settings page.
  • BUG FIX: Using self:: instead of static:: in the Stripe class that could keep the pmpro_stripe_customerid from being updated.
  • BUG FIX: Fixed some fatal errors in PHP 5.2. (We still recommend a minimum PHP 5.6.)
  • BUG FIX/ENHANCEMENT: Removed a unnecessary hr element when viewing the table of all active memberships.
  • BUG FIX/ENHANCEMENT: Cleaned up some CSS code around buttons.
  • BUG FIX/ENHANCEMENT: Added formatting for the Danish Krone.
  • BUG FIX/ENHANCEMENT: Removed the warning regarding billing limits with the Stripe gateway. Our Stripe implementation has actually supported billing limits for a while.
  • ENHANCEMENT: Added Kenyan Shilling as a currency. (Thanks, Urandu Bildad Namawa)
  • ENHANCEMENT: Updated the description, url, email, and copyright info in the plugin header.
  • ENHANCEMENT: Now showing a note on the pages list in the dashboard if a page is linked to a PMPro page.
  • ENHANCEMENT: Improving logo and watermark in the dashboard for retina displays.

Add “Select a Payment Plan” box to membership checkout (code demo)

Do you offer three different payment options for the same membership access? This new code gist allows you to easily add a selection box to the checkout page.


The code example below shows you how to define level “groups”—levels that are related and should appear as payment plans on the membership checkout page.

Video Demo

The Code Recipe

This code recipe requires a Plus Account or higher.

View Membership Options

PMPro Update

Version of Paid Memberships Pro is out with a handful of bug fixes. Included are fixes for Theme My Login 7, Stripe and TwoCheckout integration, and a few others.

About the Update

In addition to the improvements mentioned above, we added some SQL escaping to our reports pages. While this work is marked as a SECURITY update, we do not believe there were any related vulnerabilities in the prior code. It’s just good practice to be extra cautious here to harden the code for future updates.

In addition to the PMPro team, this update includes work by many third party authors including Jeff Farthing, Charl P. Botha, and David Cervantes Caballero.

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 specifically here.

About the Level Description and Confirmation Message

As of version, we are no longer using the WordPress the_content filter when displaying the membership level’s description or confirmation message. Using the the_content filter in these areas allowed you to use shortcodes and other post styling that relied on that filter. However, some sites (depending on the other plugins installed) would get caught in an infinite loop while rendering this text and crash. If you need to revert your site, please copy and paste this code recipe into a helper PMPro Customizations plugin.

Note that these filters only affect the level description and confirmation message when displayed on your site. If your level description or confirmation message appear in emails to your members, shortcodes and other styles may not work even with the above gist installed.

The full list of updates is below.

  • SECURITY: Some values used in SQL queries in our reporting code were sanitized but not later escaped via esc_sql(). All variables added to SQL queries in the reports are now wrapped in esc_sql(). The previous code was not vulnerable to any known attack, but this change hardens the code against vulnerabilities in the case other parts of the code change in the future.
  • BUG FIX: Fixed issue with lost passwords when Theme My Login 7 is active. (Thanks, Jeff Farthing)
  • BUG FIX: No longer sending an “error canceling the subscription” email when subscriptions are cancelled from Stripe.
  • BUG FIX: Fixed issue where TwoCheckout orders were not correctly updating the TOS consent data. (Thanks, Charl P. Botha)
  • BUG FIX: Fixed issue where privacy function weren’t defaulting to $current_user correctly. In practice, we were always passing a user_id anyway.
  • BUG FIX/ENHANCEMENT: Changed the confirmation message to use wpautop() instead of apply_filters('the_content'). If you were relying on shortcodes or other content that required that filter, you must use the custom functions outlined earlier in this post to revert this for your site.
  • BUG FIX/ENHANCEMENT: Using the strict parameter of sanitize_user when getting usernames. This will prevent some special characters from being used in usernames at checkout. This is inline with WP core and other plugins. (Thanks, David Cervantes Caballero).
  • ENHANCEMENT: Added a breakdown of orders at each price point to the Sales Report widget.
  • ENHANCEMENT: Showing the Stripe version we use on the Payment Settings page.
  • ENHANCEMENT: Updated Copyright date and GPLv2 link in license.txt.

Memberlite 4.0: Bug Fixes, Improvements, Memberlite Elements, and Upgrade/Migration Steps

We’re excited to announce a new phase in the Memberlite theme lifecycle plus the release of the Memberlite Elements plugin.

Memberlite v4.0

This update prepares Memberlite further for submission to the theme repository. One requirement for this is that some functionality needed to be moved into plugins. Functionality around banners, sidebars, and widgets have been moved into the Memberlite Elements plugin. After upgrading to Memberlite 4.0, you will need to install the new Memberlite Elements plugin. Use the steps below to upgrade Memberlite and install the new required plugin.

As soon as the theme is accepted into the theme repository, we will push out a minor update to tell the theme to update through going forward.

To find out more about Memberlite 4.0, you can now browse the demo site of the entire Memberlite Theme or view full theme documentation at the Memberlite Theme Support Site.


Adhering to WordPress theme standards and best practices.

In preparation for the theme’s submission to the Themes Repository we’ve updated the code to fully adhere to WordPress’ standards and guidelines as outlined in the Theme Check plugin. We also purchased a theme review from Justin Tadlock at, which prompted additional updates to harden up our code base and make it more reliable and secure for all users.

In Memberlite v3.0 all shortocdes were extracted to a separate plugin: Memberlite Shortcodes. For Memberlite v4.0, some other functionality around banners, sidebars, and widgets have now been moved to a new plugin Memberlite Elements.

Style Updates

Memberlite v4.0 has a few relatively minor, but impactful, style updates.

  • The default font size has been increased for improved readability. This should look fine on most sites, but you may need to tweak some content and styles on your site to get things to fit with the new sizing.
  • We are now including some web safe fonts (Arial, Helvetica, Times, etc.) in addition to the Google Fonts previously available.
  • Font Awesome has been updated to version 5.2, offering new icons and icon styles (regular, solid and brand).
  • Buttons have been given a hover effect to grab the attention of your users.
  • A new [memberlite_accordion] shortcode has been added to Memberlite Shortcodes.
  • Additional theme Hooks and Filters have been added to support individual site customization as well as child theme development.

Already using the Memberlite Theme?

Below are the step-by-step directions for upgrading to the new version and installing the companion Memberlite Shortcodes plugin. Before beginning this process we recommend taking a backup of your WordPress site.

  1. Back up your site files and database [instructions]
  2. Install and activate the Memberlite Elements plugin.
  3. Upgrade your theme via the WordPress Updates admin page, or download the theme and upload it to your /wp-content/themes/ folder.
  4. If you haven’t already, consider installing the Memberlite Shortcodes plugin.
  5. If you are using a caching plugin, delete and rebuild your cache.

PMPro Plus members can get support for this upgrade process via the Members Forum. Just open a topic and we will schedule a time to perform your upgrade.

Learn more about Memberlite 4.0 at the links below.

This entry was posted by Jason Coleman in Memberlite, Release Notes and tagged . Bookmark the permalink. Last updated: August 2, 2018. Titled Memberlite 4.0: Bug Fixes, Improvements, Memberlite Elements, and Upgrade/Migration Steps

Recent updates to the Theme My Login plugin and how they will affect your membership site.

We have long recommended Theme My Login as a very useful plugin for sites running Paid Memberships Pro. With features including themed login, frontend user profiles, and simple redirection rules, we found TML to be a great addition for any membership site. We recommended it to 100% of our users and included it in our WordPress bundle.

With the release of version 7.0+ of Theme My Login, several key features that were once included in the repository version of the plugin are now offered as premium extensions. This post details some short and long term options for membership site owners concerned about the changes and the best steps to take.

Themed login pages are still part of the free plugin.

If you were only using Theme My Login to show your login form on the frontend of your website and not using any of the “modules” that came with the plugin, then you are fine and can continue to use Theme My Login as you were before. Make sure that you are upgraded to the latest version of Paid Memberships Pro as well, which included a fix so PMPro will still redirect the registration page to the PMPro levels page and handle login redirects properly.

If you can afford it, purchase the Theme My Login extensions bundle after upgrading.

Theme My Login is a solid plugin maintained by a great developer, Jeff Farthing. Support Jeff and your site by purchasing the premium extensions you need.

Currently you can purchase extensions a la carte for $10 each or a bundle of all 6 legacy extensions for $49.99. Jeff has kindly given us a discount code to share with our members to receive 20% off any extension purchase, including the bundle. Just type in “PMPRO” on the checkout page to apply the 20% discount. This code will work through the end of July 2018.

You can purchase the Theme My Login extensions here.

After upgrading you may have to redo some settings.

We purchased the bundle ourselves and were able to get our themed login and profile pages back online in a few minutes. We did have to redo a few of the settings though. Here are a few notes we took during the upgrade that might help:

  1. When we installed the Redirections extension, all of our redirection rules all migrated properly upon upgrade.
  2. When we installed the Themed Profiles extension, our settings were reset to the default. We typically recommend checking the box to theme profiles for the Subscriber role and checking the box to keep Subscribers out of the dashboard.
  3. The default Login, Register, Password Reset, and Profile pages are no longer editable as pages. However, we were able to take our “your-profile” page, keep the [theme-my-login] shortcode on the page, and then change the slug in the main TML settings to “your-profile”. Now the profile page has the template, sidebar, and other settings we want for that page.

The PMPro Member Homepages add on is a good substitute for the TML login redirect module.

One of the TML modules allowed you to select a different page to be redirected to after logging in based on the user’s role. This way you could have subscribers redirected to one page and admins redirected to another.

If you don’t need to redirect users based on roles, you can redirect them based on their membership level instead using our Member Homepages add on.

In the short term, you can keep using version 6.4 of TML

While its always smart to keep your WordPress plugins up to date for security considerations, in the short term you can keep version 6.4 of TML active. The plugin won’t allow you to update in the WP dashboard unless you read the notice on the settings page and change a setting to approve the upgrade to version 7.0.

Version 6.4 TML is likely to work for a while until a core update to WordPress changes something about the login system that breaks it. We highly recommend upgrading to TML 7.0+ as soon as possible, but you have some time to figure things out.

Improving Paid Memberships Pro with Added Profile Features

The new business model for Theme My Login is a good move for Jeff and will help him to build a business around the plugin that will ensure the plugin continues to be maintained and supported. We like plugins that do their one thing really well, and we’ve been happy with Theme My Login over the years. I’d rather not use our limited development time to build functionality covered by other competent plugins. On the other hand, the cost of the extensions are going to keep some PMPro users from installing Theme My Login. This factors into our decisions around what features we build into the core PMPro plugin, build into our Add Ons, or reserve for third party plugins.

In the long term, we are looking into moving the themed login and profile page features into the core PMPro plugin or possibly an Add On of our own. We are in the early stages of discussion and will start from first principles to figure out what kind of solution will be best for our users.

In the short term, you can purchase the extensions you need using the PMPro discount code, use some of the workarounds mentioned in this post, or continue to use TML 6.4 until a core WordPress update breaks the plugin.

PMPro Updates and

Versions and of Paid Memberships Pro are out with just two bug fixes. Version fixes compatibility with Theme My Login. Version fixes an issue (we tried and failed to fix in where existing members who checked out for their same level with PayPal Standard would have their levels expire from the checkout date instead of being extended based on their existing level.

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 specifically here.

The full list of updates is below.

  • BUG FIX: The pmpro_ipnhandler_extend_memberships function actually needed use $user_id instead of $current_user.

  • BUG FIX: Fixed compatibility with Theme My Login version 7. (Thanks, Jeff Farthing)
  • BUG FIX: Fixed missing $current_user bug in pmpro_ipnhandler_level_extend_memberships function. (Thanks, Anne)

Don’t use Paid Memberships Pro on the Business Plan

In mid-2017, began to offer a Business Plan. Sites on this plan pay an annual fee to unlock various features, specifically the ability to install any theme or plugin from the repository (prior to this, sites could only activate a specific set of plugins). This means that sites could finally run Paid Memberships Pro. Pretty neat. Or not.

While it is possible to activate the Paid Memberships Pro plugin on a Business Plan, we do not recommend running PMPro or any of our Add Ons on a account. The main issue is that even business plans cannot SFTP into their sites or edit the plugin files in any way. This is a problem for 2 reasons.

  1. PMPro is a complicated plugin with unpredictable dependencies on other plugins and themes. If PMPro is not playing nice with another plugin or theme on your setup, maybe even causing a fatal error that crashes your site, you will not be able to edit your site files to debug the issue.
  2. We expect most membership sites to require custom code to function properly. While we aim to make our Add Ons as user friendly as possible and improve them all as time goes on, more than most other plugins we encourage our users to hire developers to tweak their membership sites using custom code. This isn’t possible on

Again, it is possible to activate Paid Memberships Pro, and there are likely many users successfully running it on the Business Plan. I just want to make it clear that until offers SFTP or a viable alternative, I’d rather not have people get setup on PMPro only to run into a need or support issue that would require customization or debugging.

So where should I host?

It’s been a long standing question which hosting companies we recommend for your Membership site. This guide outlines some general hosting requirements you can review to make sure your selected host will work with Paid Memberships Pro.

If your site is currently hosted on and you’d like to move to self-hosted WordPress, check out this guide on the necessary steps for migrating your website. You can perform the migration yourself, work with your new hosting company to complete the move, or even hire a WordPress Happiness Engineer to perform a guided transfer.

PMPro Update

Version of Paid Memberships Pro is out with a handful of bug fixes. These bugs have the potential to hinder sales (especially for customers using PayPal Standard and PayPal Express), so be sure to upgrade.

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 specifically here.

The full list of updates is below.

  • BUG FIX: Fixed issue with the PayPal IPN Handler where existing users checking out for a new level would sometimes have their membership and new subscription cancelled.
  • BUG FIX: Fixed PayPal IPN Handler to set the status of old levels to ‘changed’ (instead of ‘inactive’) when processing checkouts. This will improve the accuracy of reports.
  • BUG FIX/ENHANCEMENT: Now checking for the recurring_payment_skipped transaction type in the PayPal IPN handler. When a payment is skipped and this message is sent, we will now fire off the failed payment email to the customer and admin. (Thanks, mjulian87 on GitHub)
  • ENHANCEMENT: Removed validation info from the IPN log.
  • ENHANCEMENT: Updated German (de_DE) language files.