Add renewal to the end of the current membership period

Renewal of a membership in Paid Memberships Pro can sometimes be a little confusing.

People are often confused how a renewal isn’t the same a recurring billing payment.  It’s common to believe that a membership ‘renews’ with a recurring billing payment.

Manual Renewals in PMPro

Yes, you didn’t misread. Renewing a membership in Paid Memberships Pro parlance is a manual process. 

That means the membership level was with an expiration date. To renew, before their membership expires, the user logs in to the site. Then they click the “Renew” button for their membership level and complete the checkout.

We can look at it from “behind the scenes” perspective. Trying to think as the plugin does. There is no difference between a renewal and a new membership sale.

From a configuration perspective, a “renewal” happens because:

  1. Configure a membership level with an initial payment amount;
  2. Disable “Recurring Billing”;
  3. Enable “Membership Expiration”. 
  4. Set “Membership Expires in” to more than 0 (zero) Day(s)|Week(s)|Month(s)|Year(s), or;
  5. Install the “Set Expiration Date” addon. Then define a date / relative date for the membership level.

The result is a membership record for that user with an “Expiration” date in the PMPro Members List.

The following is a common mistake to make:

Configure the Membership Level with both recurring billing and an Expiration Date.

If you do this, your memberships will likely behave in ways you’re not expecting.

For recurring billing, the membership level does not, and should not, have expirations configured!

Let’s assume you’ve got everything configured as expected . 

You now have a 1 year/month/week/day, non-recurring membership level. 

Your site is a success and you have sold a bunch of these memberships.

Being a conscientious web master, you configured reminder messages for your members. This is to help them remember to take action and renew. You have configured the messages get sent out a month before the user’s year long membership ends.

Without much prompting, your members jump at the opportunity.

One month to go and they have completed the renewal process. Well done!

Being curious, you head over to your “Members List” and review the records for a few of your renewed members.

Wait.. What happened to the renewal???

Your member still had a month to go on their current membership when they renewed. 

Their renewed membership is only valid for a year from the day of their renewal…

How come??

It’s a “quirk” of the Paid Memberships Pro “renewal” process. 

Remember how there’s no real difference between a renewal and a new membership?

That’s what you’re seeing here.

The “renewal” is a standard “new member” checkout process. The difference being that any saved data about the member is pre-filled in the checkout form. That happens because the member logged to “renew”, so PMPro knows the user is active.

But that doesn’t change how PMPro behaves when configuring the membership after payment.

By default, PMPro still calculates the end date for the ‘new’/renewed membership. That end date is based on the date of the most recent checkout. 

In your case, this means “1 year from the day of the renewal action”. 

Unfortunately, it does notmean “1 year from the end of their current membership”.

To get there you can use the following GIST:

Extending the membership at renewal