PMPro Update

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

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: Updated the filters to extend membership levels to use the new pmpro_getSpecificMembershipLevelForUser() function to avoid bugs when MMPU is enabled.
  • BUG FIX: Fixed cases where certain email templates were resulting in the body of the email being duplicated.
  • BUG FIX: Fixed conflict with pmpro-email-templates when emails were disabled (the pmpro_email filter returns false). (Thanks, Mathieu Hays)
  • BUG FIX: Now updating status on related subscription orders BEFORE canceling at gateway to avoid cases where the webhook sent by the gateway after canceling the subscription triggers further cancellation attempts.
  • BUG FIX: No longer showing the “Stripe Publishable Key appears incorrect” error message if the key field is blank.
  • ENHANCEMENT: Added the pmpro_getSpecificMembershipLevelForUser( $user_id, $level_id ) function for cases where MMPU is enabled and you want data about a specific membership level a user might have.
  • ENHANCEMENT: Changed labels on the reCAPTCHA settings to match their current terminology: Site Key and Secret Key.

Proration Add On Update v.3

We’ve made some material updates to our Proration Add On. Our aim was to implement the most common proration use cases while making it easier to customize.

While enhancing the plugin and fixing what we considered bugs in the proration calculation, we made changes that may be unexpected for existing sites running the Add On. We expect most users will be happy with these changes, but if your site relied on the old math, please reach out to us in the forums and we can help you set up your desired proration model.

Below are more detailed explanations of each change as well as instructions on how to customize the updated Add On.

Change #1: The subtotal of the user’s last order is now used to calculate the pro-rated amount.

Prior to v.3, the proration calculation was performed using the “total” from the user’s last order. If you were calculating tax on your site, the total would include the tax. Now, the pretax amount is used in the calculation and taxes are applied after the pro-rated amount is determined.

Change #2: When upgrading (or sidegrading) to a level with a different payment period, a different proration calculation is used.

If the level the user is checking out for has a different payment period than their previous level (e.g. going from a monthly plan to an annual plan), the rules for prorating are basically:

  1. Calculate a credit based on how much time is left in the user’s current payment period,
  2. Apply that credit to the initial payment, and
  3. Set the new subscription to renew one (new) payment period out from the current date.

This is different from what is done when changing between levels with the same payment period (e.g. changing between monthly plans). In those cases, a pro-rated amount is calculated based on both the old and new levels based on how much time is left in the current pay period, and then the new subscription is setup to renew on the same date as the old subscription.

Change #3: We are rounding all dates down to the same hour/minute (midnight) when performing calculations.

This is a small change, and we can’t avoid this entirely, but rounding down the dates will minimize cases where users go to the checkout page and see one pro-rated amount and then come back later in the same day and see a different pro-rated amount. Most notably, if a user goes to change membership levels immediately after checking out, the credit for the current day will be applied to the pro-rated amount.

Customizing the Proration Add On

Instead of writing a custom proration plugin from scratch, we’d like users to be able to use the main Proration Add On with extra code in a customizations plugin to override the default behavior. This way, you’ll be able to use the helper functions provided by the Proration Add On and get updates to those functions as they are pushed out. (The next step for us would then be to add a wizard-like settings page to tweak the proration settings instead of using custom code.)

You can modify the behavior of the Proration Add On through hooks and filters or by overriding the main checkout level filter callback. Doing this will require a custom plugin and help from our team or a WordPress developer.

Filters in the PMPro Proration Add On

  • pmpro_is_downgrade
    apply_filters( 'pmpro_is_downgrade', bool $is_downgrade, level_object $old_level, level_object $new_level);

    Returns true if the new level is a downgrade from the old level.

  • pmpro_have_same_payment_period
    apply_filters( 'pmpro_have_same_payment_period', bool $same_payment_period, level_object $old_level, level_object $new_level);

    Returns true if the old and new levels have the same payment period

Overriding the Proration Rules

The main logic for how to prorate the levels can be found in the pmprorate_pmpro_checkout_level() function of the plugin. If you’d like to use different proration rules from the default, you can unhook our function and hook in a function of your own. Here is a template for how to do that.

More details can be found on the Proration Add On page.

Dev Chat Summary from February 1, 2018

Slack_IconBelow are my summarized notes from our dev chat today.

We discussed GDPR, the Multiple Memberships per User Add On Compatibility Road Map, our update Developer Partner Platform, and a feature suggestion for our Stripe integration.

Theme music for this chat was the Tron: Legacy Reconfigured album by Daft Punk.


We discussed the various articles of the European Union General Data Protection Regulation and how they can be addressed by Paid Memberships Pro in our software and as a company. It was a good discussion. I will be writing up a more detailed post including what I feel needs to be addressed for our software to comply with the GDPR. Some of the action items for this could be done collaboratively between ourselves and other ecommerce plugin authors. So I will pursue that while making sure PMPro is ready by the deadline in May.

Multiple Memberships Per User Updates and Add On Compatability Roadmap

The MMPU Add On has been working well in it’s beta release on several sites for the past 6 months or so. In the next few weeks, we will launch the add on officially with the known caveat that many of our add ons will not work as expected with the MMPU Add On active.

We will be tagging all our add ons on this site to show which are compatible with MMPU, which will never be compatible with MMPU (because it doesn’t make sense or would be too technically difficult), and which we will be working on.

Our hope it that over the next year or so, with the help of the developer community, we can update the add ons that need it. To that end, we will be sharing case studies on our blog as we do this work so we can compare notes and share methods.

Becoming a Partner, New Agreement Contract and Plans

Until now, we’ve had adhoc agreements with the development partners showcased on our Developers page. We appreciate the role these developers play in the PMPro community. Our partners are responsible for building the best examples of sites running Paid Memberships Pro, working with us to address new markets and use cases, and so much more. Our goal is to formalize the relationship we have with the partners and gather resources to work on shared marketing projects.

Freelancers and agencies interested in joining our developer network can apply here.

Idea for Stripe Integration

We discussed the possibility of at checkout, checking for an existing customer record using the same email address before creating a new customer in Stripe. Some of this was coded in a development branch while working to fix synchronization issues between PMPro and Stripe. The synchronization issues were addressed by other fixes, but it still might be useful to reuse Stripe customer records instead of creating a new one when a user checks out in PMPro.

PMPro does keep track of a user’s customer id and reuses it if that customer checks out again. However, if you integrate several sites with Stripe, each site will have it’s own customer record for that same person.

Many of us agreed that it’s best to stick to the current system of creating a new unique customer id the first time a user checks out in PMPro. If we use a customer record managed by another app, we can’t be sure what that other app might do with the customer or their subscriptions. Also, the Stripe API does not allow you to do a straightforward search for customer id by email address. The implementation we had used a kind of hack where we would download all customers and their email addresses for cross reference. It seems that Stripe doesn’t want to encourage this kind of behavior.

A script to resync customer ids by email address might be useful in a pinch for cases where PMPro went out of sync with Stripe. (An example might be if someone is importing users from another system or otherwise had to delete and recreate WordPress users.)

We also briefly discussed the need to explore the Stripe Connect platform, which has some benefits over the direct API method we use of integrating with Stripe. Namely, users who have a credit card stored in Stripe would be able to checkout very quickly. There is also the fact that Stripe might require or strong encourage use of Stripe Connect in their temrs of service.

Scheduling for Future Dev Chats

Instead of a regularly scheduled dev chats, we are now keeping a list of topics for discussion. When the list hits 3 items, we will schedule a dev chat to go over those topics. If there is something you would like to discuss with the PMPro developer community, let us know through our contact form and we will add it to the list.

Thanks again to everyone who attended today.

PMPro Update

Version of Paid Memberships Pro is out with a single bug fix.

  • BUG FIX: Fixed issue where PMPro would attempt to cancel gateway subscriptions more than once in some cases.

This bug could have a small or large impact depending on your site and settings. To be safe, you should update now.

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.

PMPro Update

Version of Paid Memberships Pro is out with a handful of bug fixes and 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.

The full list of updates is below.

There is one issue we’ve been working on that did not make it into this point release. On some Stripe setups, administrators are receiving “failed to cancel” emails either sometimes when a user cancels or every time a user cancels. In some cases, PMPro is trying to cancel a subscription twice. Since the subscription is already cancelled, the second attempt fails and sends this message.

We are working to fix this issue and will release an update as soon as possible with this fix. Note that for this specific bug, PMPro is still cancelling subscriptions as it should, just sending these extra emails which are problematic on bigger sites. There are other issues that can come up with cancellation and subscription syncing. If you are having issues, you should reach out to us through our member support forums.

  • BUG FIX: Avoid double-encoding the API version in PayPal Standard gateway
  • BUG FIX: The update billing page now checks the gateway of the user’s last order instead of the default gateway settings in case multiple gateways are in use or the default gateway has changed.
  • BUG FIX: Fixed bug where discount codes were not being applied properly if the pmpro_default_level custom field was set and used on a page.
  • BUG FIX: Credit card expiration emails were being to sent to members with PayPal Express orders.
  • BUG FIX: Now correctly unslashing instructions for the check gateway.
  • BUG FIX: Fixed issue with creating pages from the page settings page.
  • BUG FIX/ENHANCEMENT: Improved submit button and processing message position for default and RTL on checkout page.
  • BUG FIX/ENHANCEMENT: Added invoice total and total billed breakdown back to confirmation and invoice single views.
  • BUG FIX/ENHANCEMENT: Avoid double-encoding the PayPal API version number
  • ENHANCEMENT: Improved submit button and processing message position for default and RTL on checkout page.
  • ENHANCEMENT: Switched order of Publishable and Secret Key fields and added validation check.
  • ENHANCEMENT: Conditionally update members list headings for expired, cancelled, or old members.

How to Run a Black Friday or Cyber Monday Promotion

Black Friday and Cyber Monday (BFCM) are coming this weekend. This post summarizes some of my thoughts on massive sales, as well as a few tips for running a successful BFCM campaign.

Don’t run too many sales.

In the past, I’ve been pretty negative about running sales. I agree with Chris Lema that you risk training your customers to wait for a sale before buying. Worst of all, you confuse your customers by implying that your product is worth less than your list price. I’ve spent a lot of time thinking about the price of our service and defend our current price daily as the correct price for our customers and our business. Running a sale contradicts the reality that our price is correct.

On top of the psychological impact, managing a different discount every month can be difficult, time-consuming, and confusing.

Discounts require promo images, sales copy, emails, social media, and sometimes paid promotion. Each new price adds an additional factor to any custom logic you might have around renewals, upgrades, or cross promotions. Your support channels will be stressed with customers asking for last week’s sale price, or next week’s sale price, or a deal they found in an old email. How can you tell them a certain price was only available for a limited time when you’re going to be running a similar deal in a month or two?

Is Black Friday/Cyber Monday an exception?

Despite the above concerns, the occasional sale can be very lucrative.

Running a sale once or twice a year offers a means to include potential customers you’ve ‘priced out’ or who might have been on the fence to give your paid products a try. Scott Bolinger offers an analysis of this in his post: Lessons Learned From 3 Years of Black Friday / Cyber Monday Sales. He says his BFCM sales nearly double his revenue in November. I’ve heard similar things from others… that a well done BFCM sale is like an extra month of revenue.

Who doesn’t want to cheat physics and get an extra month of revenue out of their business?

The BFCM weekend offers a unique opportunity if you’re going to run just one or two sales a year.

  • Since sales are expected during this time, the pricing/branding impact is minimized.
  • Depending on your industry, sales are either weak or strong during the holidays. If sales are weak, a BFCM discount can offset this weakness. If sales are strong, a BFCM discount can make the most of the increased traffic during a competitive time.
  • Blogs and other marketing sites are going to be aggregating BFCM sales and sharing them with their readers, creating organic SEO opportunities and increasing traffic.

The downsides are minimized and the upsides are maximized. So, let’s do this!

What to offer

The easiest promotion you can run is a blanket percentage discount across all of your products. Anecdotally, 10% off feels lackluster, 25% off feels adequate, 50% off feels good, and anything more than that seems a little crazy but might be appropriate for products with low overhead.

Alternatively, you could bundle products together at a lower overall price. You could offer extra features, licenses, or an unlimited quantity of some part of your product that is usually limited. If you can’t or don’t want to lower the price on your product, you can still get creative to find ways to participate in BFCM.

No matter your offer, your BFCM sale should offer the best discount you give all year. It should be better than any ongoing affiliate deal or discount you offer through partners.

Other Pricing Considerations

Make sure you can afford the sale.

If it costs you $100 to deliver to each customer and support them, don’t run your sale below $100. You might be tempted to price things lower just to get the inflow of customers, but unless you have a direct reason to believe that each new customer is going to lead to further sales or upsells, be careful.

If you don’t know how much it costs to fulfill a customer order and support it, then you need to back up and figure that out. It’s possible your list price needs to be adjusted to account for your true cost of doing business. Start here.

Consider the cost of running the sale.

Besides any time and money you spend promoting your sale you’re also going to have a certain number of customers who would have paid full price for your product but ended up buying at the sale price. Requiring a discount code or a special URL will mitigate this a bit, but even so some number of customers will pay less than they would have. If you expect to average about 5 sales per day at $300 and you’re going to be offering a 50% discount for 4 days, there is about (4x5x150) $3000 you’re potentially leaving on the table. Your sale needs to make up for that. A good sale can make 1 month’s revenue ($45k in our example), so it would still be worth it… just make sure you run a good sale.

Remember, you’ll probably upset some current customers.

Some number of customers before and after the sale are also going to reach out to you asking to get the sale price. You can be as lenient (or as strict) as you want here. Our policy is to honor the request for the first X customers who ask. If it turns into a problem (it usually doesn’t, even though we often say things like “we’ll give you money if you just ask” in blog posts like this), then we’ll say something like “Sorry, we are only able to honor the discounted price to customers who purchased during the promotional period.” Be prepared to handle requests of this nature so they don’t catch you off guard.

Promote Your Sale Through Email

Hopefully you’ve been using some method to collect email addresses from potential customers. If not, watch Kim’s presentation here on how to setup an email capture landing page with PMPro. You’ll want to send out a few emails promoting your sale. Maybe one teaser before it launches and then an email every day the sale is live. I wouldn’t worry too much about sending 4, 5, or 6 emails in quick succession to your list. For sure, some people will unsubscribe, but someone who unsubscribes from your mailing list when you are offering your biggest discount of the year is unlikely to become a future customer.

Remember to exclude existing paying customers from your promotion emails. Most email marketing platforms offer a way to “segment” your email list.

If your existing members can take advantage of your promotion unless the promotion applies to them as well (i.e. lock-in special rates, added features to upgrade, etc.), consider sending them a different email specifically targeting them. The perfect message for existing customers is going to be different than the message you use for first time buyers.

Another segment you may want to consider is past customers who may have let their membership expire, only made one purchase from you, or other forms of single-engagement with your company and products. You can send a different email to this group that specifically addresses their unique case.

Promote the Sale on Your Site

Some sites choose to keep their BFCM deals a secret except for people who have gotten the discount code through other sources. I think if you’re going to run a sale and want it to be as effective as possible, you’ll want to promote the sale on your site. Visitors viewing a 50% discount on your site are going to be much more likely to purchase than normal and should make up for any lost revenue.

Some popular places to display a sale on your website include:

  1. Page Banners and Boxes
    You can use Memberlite’s page bottom banners or a plugin like Holler Box to add a message with your discount code to the bottom of each page. We also like the plugin WPFront Notification Bar, which adds a bar across the top of your site with text and a button.
  2. Popups and Popovers
    You can use something like Optin Monster to show your discount in a pop up when users are about to leave.
  3. Automatic Discounts
    You can auto apply your discount code to all products on the site or simply drop the prices of your products with the normal price shown with a strikethrough.

Create a Landing Page

There are many ways to create a landing page, so focus on the simplest method for your customer to get to the offer. Black Friday and Cyber Monday create a sense of urgency to purchase, and more often then not the person making the purchase has already been eyeing up your products. Make it as quick as possible to close the sale.

  • Using a Discount Code

    If you’re using a discount code, you can link to your product’s checkout page with the discount code set as a parameter in the URL. With Paid Memberships Pro, you can find these links in the “Levels” column of the Memberships > Discount Codes admin page or simply add &discount_code=blackfriday to the URL of your site’s checkout page (assuming your code is blackfriday).

  • Redirect to Checkout via a Custom URL

    Alternatively, if you are using PMPro, you can use code like this in a custom plugin to redirect /blackfriday/ to the checkout page for a level the code is for. This shortened URL will be easier to share in social media.

  • Customized Checkout Page

    If you have time, consider creating a new page at /blackfriday/, /cybermonday/, or /bfcm/. You can customize that page to speak directly to BFCM shoppers. You can create a new theme template or use custom CSS to adjust the display of that page. Maybe make the background black instead of the default on your site.

    If you use Paid Memberships Pro, you can create a separate checkout page for a specific product:

    1. Go to Pages > Add New in the WordPress Dashboard
    2. Paste the [pmpro_checkout] shortcode in the post editor along with any other custom sales copy or images
    3. Add a new “Custom Field” named pmpro_default_level. The value of the custom field should be set to the Level ID you want to default to.
    4. You can use custom code like this to autoset the discount code if you have one
    5. Save and publish your new custom checkout landing page!

Use Snappy Graphics

There is going to be a lot of competition for your customers’ attention BFCM weekend. Get into the spirit of things and use some snappy graphics to make your emails, social media posts, and promotions stand out. If you aren’t a graphic designer or don’t have the time or budget to hire one, you can use an app like Canva to make a promotional graphic. If you’re using MailChimp, the MailChimp Mobile Apps offer some nifty, simple and attractive email campaign templates.

Promote the sale everywhere—get listed to increase traffic.

Once you have your campaign in place, reach out to blogs and mailing lists in your industry to get your promotion listed.

You’ll of course be promoting your sale through your own Facebook/Twitter/Instagram/Grandmother’s knitting circle, but there are other ways to get the word out. Many blogs and mailing lists are designed to exclusively aggregate BFCM promotions. For example, you can find a list of sites that did Black Friday round ups for WordPress products last year by Googling black friday WordPress 2016. You can do a similar search for your industry and find the aggregators that best fit your products. Reach out to these sites via their contact form, email address, or social profiles. Trust me, they want to hear from you. You can also reach out to leaders in your industry that would be willing to tweet your promotion to their followers.

A special offer to our Paid Memberships Pro-powered sites.

We’ll be publishing a list of membership sites running BFCM promotions here on our site and newsletter. If you’d like your sale included in that list, please submit the details here. We just need your site name, URL, and a short sale description.

Submit Your Promotion Now


PMPro Update

Version of Paid Memberships Pro is out with a handful of bug fixes. Braintree users in particular will need to update if they are running 1.9.4. There is also fix to the Recaptcha code and an enhancement to the cancelation error email.

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 serious bug where payment fields weren’t showing up for the Braintree gateway.
  • BUG FIX: Fixed issue where Braintree webhook notifications were failing. We now allow the Braintree library to sanitize the incoming data since our sanitizing efforts were breaking the validation.
  • BUG FIX/ENHANCEMENT: The webhook URL given for Braintree now goes through admin-ajax.php instead of a direct link to a php file within our plugin.
  • BUG FIX/ENHANCEMENT: Updates to the Recaptcha library. (Thanks, Corin Simpson-Bryars)
  • ENHANCEMENT: Made the cancelation failed error email easier to read.

Paid Membership Prices Increasing Soon, Lock in at a Discounted Rate Now

When Paid Memberships Pro launched in June 2010, our single goal was to become “the community solution” for membership sites on WordPress. We’ve achieved that goal. Today, developers and site owners setting up a membership site on WordPress consider Paid Memberships Pro the best option.

I’m very proud of the value we have delivered, not only for our PMPro Members, but for all users of our 100% free, GPLv2 plugin.

Continue reading for information about the upcoming price increase and a special discount offer we’re extending to new members through September 9. Rest assured that this pricing change will NOT affect our existing members in any way.

A little backstory.

In July 2015, we introduced our PMPro Plus plan and began charging for automatic updates to our premium Add Ons. Even though our Add Ons are all open source on GitHub, thousands of customers have chosen to purchase our support plans. Revenue from these customers has funded the continued maintenance and development of Paid Memberships Pro and our growing library of 70+ Add Ons.

In the past year, we have expanded our support and development efforts with 2 full time-team members, bringing us to 4 part-time and 4 full-time team members in all.

We’d like to do more.

Our plan is to use the added revenue from new pricing to offer a better support experience for our members. It is our goal to speed up response times, provide a deeper level of development help, and offer communication by live chat or phone.

To reach these goals, we have decided to change our pricing for new customers.

  1. We no longer offer PMPro Core (support only) membership for new customers.
  2. Plus membership is now $297/yr. (renews annually at $197).
  3. We will begin limiting license keys for Plus membership to just 5 sites. Note that our license key tracking will be done in a very liberal way to account for multisite networks, development, staging, testing, and temporary sites. Existing Plus members will not be restricted by these limits, but may be contacted if their key is active on a large number of sites to ensure that their key hasn’t been shared publicly.
  4. We are introducing Unlimited membership at $997/yr. (renews annually at $697) for customers who need a license for more than 5 sites.

This pricing change will NOT affect our existing members in any way.

Current Plus members will be grandfathered in to the price they originally paid for Plus membership. If you have been paying $47/yr., you will continue to pay $47/yr. If you have been paying $147/yr., you will continue to pay $147/yr.

We will continue to support existing PMPro Core members until the end of their current payment periods, after which they will be able to upgrade to the PMPro Plus level at a discount.

Last chance to purchase Plus membership at $147

For the next week, our Plus membership will be on sale for $147 and Unlimited membership will be on sale for $497. We rarely run discounts. Our prices will probably never be this low ever again.

The sale has officially ended. Current membership pricing is available here.

As a reminder, a Plus and Unlimited membership offers the following benefits:

  • 60+ premium Add Ons from our website with automatic updates through the WordPress dashboard.
  • Paid support forums, staffed by experienced WordPress/PMPro developers.
  • 100+ advanced code recipes for customization of your membership site.
  • Webinars, videos, and developer chats.
  • The knowledge that you are supporting our team to maintain and develop Paid Memberships Pro.
  • 100%, no questions asked, 30-day money-back guarantee.

How Our Sales Increased 18% by Adding an Auto-renewal Option at Checkout

A couple years ago we started allowing our customers to optionally setup automatic renewal at membership checkout.

This post covers how many customers choose the auto-renew option, and how many of those customers actually renew. I’ll also provide some stats on users who manually renew. These kinds of stats should make their way into the Memberships > Reports dashboard sometime soon.

Renewal Stats from the PMPro Plus Launch

The data below tracks the renewal rate for members who initially purchased PMPro Plus membership between July 28th and August 9th, 2015. During this time, customers were incentivized to choose the auto-renewal option since it locked them into the lower $47/year price instead of the coming $197/year price. Let’s compare the renewal rate for customers who selected automatic renewal vs. those who had to manually renew.
Sales Data for Initial Purchase
Total Sales: 695
Revenue: $26,350
Yes Auto-Renew: 515 (74%)
No Auto-Renew: 180 (26%)

Automatic Renewal Sales

2015 – Initial
515 (74%)
288 (56%)
229 (44%)

Of the 515 users who checked the auto-renew option, 288 (56%) of them had a paid order 1 year later in 2016, and 229 (44%) of them had a paid order 2 years later in 2017.

Manual Renewal Sales

2015 – Initial
180 (26%)
5 (2.8%)
3 (1.6%)

Of the 180 users who didn’t check the auto-renew option, only 5 (2.8%) had a paid order 1 year later in 2016, and 3 (1.6%)  of them had a paid order 2 years later in 2017.

Renewal Data Recap

Perhaps unsurprisingly, users who checked the auto-renew option were much more likely to actually renew. In this case, they were 20 times more likely to renew. Total sales for the same 13 days in 2016 was $25,759. $13,771 of that (or 53.5%) were the 293 renewals at $47.

The above stats are for a promotional period when there was a lot of incentive to check that option since it meant locking into a lower price. Let’s look at similar stats for a more regular period when membership was for the full $197 and there was no incentive for checking auto-renewal since even users who manually renew get the same $50 discount (although the wording of our checkout page might still encourage it a bit).

Renewal Stats for PMPro Plus from Winter 2016

The below stats are for our PMPro Plus members only who made their initial purchase between January 1st and March 31st, 2016. These members paid the full price for membership and were shown a box to optionally set up automatic renewal for $147/year.

In this data set, the stats have almost reversed, with twice as many customers leaving the auto-renewal option unchecked.

Sales Data for Initial Purchase
Total Sales: 489
Revenue: $92,599
Yes Auto-Renew: 150 (31%)
No Auto-Renew: 339 (69%)

Automatic Renewal Sales

Renewal Rate

Manual Renewal Sales

Renewal Rate

Of the 150 users who checked the auto-renewal option, 110 (73.3%) of them had a paid order 1 year later. Of the 339 users who didn’t check the auto-renew option, only 50(14.8%) of them had a paid order 1 year later.

Total sales for the same 3 months in 2017 were $126,770. $23,520 of that (or 18.6%) were the 160 renewals at $147.


There are many factors that go into why a user would renew their membership that are hard to suss out of this data. Besides changing our pricing, running promotions, and updating the formatting and language of our checkout page; we were also releasing product updates and running content marketing campaigns throughout the year. It’s hard to tell if these other factors played a bigger or smaller role in renewal numbers. We also can’t tell how many of the users who checked the auto-renewal option would have been more likely to manually renew.

Still…the data is pretty clear in that users who checked the auto-renewal option were 5 to 20 times more likely to actually renew there memberships one year later. When you account for failed payments, cancellations, and eventual refunds, more than 50% of users with auto-renewal setup resulted in a renewal payment one year later.


If you are using Paid Memberships Pro, you can add a renewal option to your checkout using our Auto-Renewal Checkbox Add On.

View the Add On

Further Testing

Some things to test further would be actual A/B tests within the same date range where some customers were shown the auto-renewal option and others were not. We could A/B test offering a renewal discount or not. It also might make sense from a revenue stand point to require automatic renewals for all customers or at least default to having that option checked. If auto-renewal was required, you would likely have more refunds for users who don’t want it. (We’ve seen a lot of cases where users cancel immediately after checkout to clear up the subscription.) Still, you probably would get more revenue to make up for those refunds.


Memberlite Update 3.0.3

Version 3.0.3 of Memberlite theme is out with a handful of bug fixes and enhancements. We also fixed a bug with our update server that was causing issues with automatic updates. So if you were having trouble updating before, it may work now.

About the Update

Memberlite is still free to download and update, and we still plan to move the plugin into the repository. Many of the bug fixes in this update were part of the theme repository review process, however there is still work to be done before we can do that. The theme repository has strict rules on what kinds of functionality can be included in themes and what kinds of functionality are “plugin territory”.

The custom sidebars and post banner functions of Memberlite need to be moved into their own plugins. The bad news is that this will take some time and force Memberlite users at some point to install and activate those plugins, although we’ll do our best to make installing those plugins as easy as possible. The good news is that users of other themes will be able to take advantage of that functionality.

If you are running an edited version of Memberlite or Memberlite with a child theme, please update the theme from the updates page of your WordPress dashboard. You can also get the latest version of Memberlite here.

The full list of updates is below.

  • SECURITY: Escaping login/logout URLs, account/profile URLs, landing page level URL, home_url.
  • BUG FIX: Fixed float for Full Width and Narrow Width page templates when default pages layout set to left sidebar.
  • BUG/ENHANCEMENT: Wrapping welcome text in header and a few other strings for translation.
  • BUG/ENHANCEMENT: Added comment support to pages.
  • BUG/ENHANCEMENT: Fixed abbr and heading tag use on PMPro checkout page.
  • BUG/ENHANCEMENT: Fixed text link color issue for cancel button.
  • BUG/ENHANCEMENT: Setting the content width on after_setup_theme hook now.
  • BUG/ENHANCEMENT: No longer enqueuing jQuery directly. It is set as a dependency for our JS files.
  • NOTE: Added Copyright section to the readme.
  • NOTE: The get_the_content_before_more and get_the_content_after_more functions are now prefixed, memberlite_get_the_content_before_more() and memberlite_get_the_content_after_more().
  • NOTE/ENHACEMENT: Now only showing the post meta generated by memberlite_get_entry_meta() on the post CPT.
  • NOTE/ENHANCEMENT: Now only showing the footer widgets primary background stripe if there are active widgets in the area.
  • ENHANCEMENT: Added CSS for JetPack contact form submission/results blockquote.
  • ENHANCEMENT: Improved breadcrumbs for custom post type archives and custom taxonomies
  • ENHANCEMENT: Improved page title for custom post type archives and custom taxonomies
  • ENHANCEMENT: Updated bbPress single forum topic title output.