Paid Memberships Pro can be used to set up membership levels with many different pricing structures. You can configure a level to offer a recurring subscription or a level with a one-time payment and expiration date. Unless you really want a membership to expire after a certain time frame, you usually DO NOT want to set BOTH a recurring billing amount AND an expiration date on your levels.


Two Options for Renewals

If you want your member payments to bill automatically, set up a recurring billing amount. Users will receive an Invoice via email when their recurring payments are made. If you’d like your members to also get an email warning them of their upcoming automatic renewal, you can use our Recurring Payment Email Reminders Add On.

If you want a one-time payment that expires after a certain time frame, set an expiration date. Users with an expiration date will get an email before the expiration with a chance to renew and extend their membership for another one-time payment.

If you’d like to give your users the option to choose between the two options, you can use our Auto-Renewal Checkbox Add On.


The Rare Case Where Both Are Needed

There are cases where you would want to set both a recurring billing amount and an expiration date. The two most common cases are payment plans (3 easy payments of $19.95) and courses with a set time frame ($100 per week for our 6 week course). In both cases, you likely need to use custom code so users continue to have access to ongoing content they need even though they won’t be paying anymore. You can use a recipe like this one to have members whose memberships expire be given a different ongoing membership.


Yes, we know we are different.

We know that all membership platforms handle recurring billing and expiration dates in a different way. If you are migrating from another system, this can be especially confusing.

With some systems, user memberships will expire on a certain date unless a new recurring payment comes in. With Paid Memberships Pro, memberships will last until the payment gateway detects a missed payment (or three) and cancels the subscription.

The main difference between these approaches is what happens when sites get out of sync with the gateway. With our approach, users can potentially get their membership extended for free while the gateway tries to tell your site to cancel the subscription. With the other approach, users can potentially have their membership removed accidentally even though their payments were processed by the gateway. In situations like this, we tend to go with the decision that is better for your members.


What if you’ve accidentally set up your Membership Levels with Recurring Billing and an Expiration Date?

This is a bit tricky to fix. The first step would be to review this post and if you really don’t need an expiration date, update your membership levels to remove the expiration dates. This will fix things for new members going forward, but your existing members will have an expiration date set in the PMPro database and PMPro will expire those members on the specified dates.

To fix existing members, you need to update the database to remove the expiration dates from those users. The users will still have recurring subscriptions at the gateway and their subscriptions and membership will be cancelled if they miss payments (assuming your gateway IPN or webhook is working properly).

Back up your database. Then use a SQL query like the following to remove the expiration dates (or “end dates”) from ALL existing and active members. Note that if you have members who were imported, manually added, or had other membership levels that DO need expiration dates, then you will need to alter the query so it only removes the end dates from the users you want it to.


We Are Getting Better

In PMPro version 2.0, we are adding detection when levels are set up with both a recurring billing amount and an expiration date. We will warn the admin and link to this article so they can better understand the implications of having recurring subscriptions with an expiration date. This will help the admin determine if they really intended that membership model or if they need to adjust their level settings and clean things up for active members.

There are other cases of “user error” like this that we are trying our best to help site owners avoid. We aim to make things as clear as possible and are building development tools to make it easier for us to detect risky configurations or scenarios so we can give actionable warnings to site admins.

WordPress is a powerful tool. You can do a lot with it. You can also break a lot with it. We will never be able to catch every possible error like this, but we will try our best to help our users avoid the worst ones.


Comments (15)

I have a question regarding the statement “If you’d like to give your users the option to choose between the two options, you can use our Auto-Renewal Checkbox Add On.”

I am using that add-on, but for all members (the ones who choose auto-renewal and the ones who choose single year) an expiration date is being set. If I am using the auto-renewal add-on, should I edit the members who choose the auto-renewal option to remove the expiration date? Do you suggest coding in something to make sure the expiration is not set for new members who choose the auto-renew option or is there a better way to handle it going forward? Thanks for clarifying!

This should not be the case. Your level should be set up with no expiration date and a recurring subscription. I would verify that your payment gateway is properly configured and set to allow recurring payment. I know that PayPal specifically must enable this for your account.

Hi there,

Preliminary question…

We have a situation with a client website, the setup is as follows:

Client offers subscriptions both as a one-off year, and automatically renewing.

The Expiration field present in PMP meta is linked to their CRM, which is very important.

Obviously due to the way that PMP has been made, the Expiry date is not updated +1 year when a successful auto-renewal goes off.

From the instructions that I have seen, auto-renewals must NOT have an expiration date, but in this case it’s needed to keep track of when memberships are expiring/due to renew.

Is there any way of imposing a 1 year expiration date for auto-renew members, that is updated +1 year at the point of renewal billing cycle?

Please provide clarity ASAP!

Thanks in advance,

J

I’d actually like to remove the auto-generated invoice (or more correctly termed, “receipt”) for recurring payments to members. They are getting 2 separate emails from PMP and from the Stripe integration. I’d like to only have one and the one I want is from Stripe.

How do I turn off this monthly recurring receipt notification from PMP?

Hello! I’ve been trying to find this answer, but so far no luck – is there a way, when logging in, that the member can see their next recurring payment date? Right now they just see “no expiration” which I now understand the logic of, but I need a place where they can see “your next payment of xx dollars will be on xx date”. Thank you!

Thanks for the above article and sample PHP code. I have manually imported our membership database marking all members with both expiration date AND recurring payment setting. I want to remove the recurring payment information and keep the expiration dates. Please advise how to do this.

What happens to users who no longer pay membership?

An example case: a user has an annual membership that starts the year 2018. In the next year, 2019 his payment is not made since he has not enough balance. You should cancel your membership, right? Why does the user still have access?

You mention this:

“With Paid Memberships Pro, memberships will last until the payment gateway detects a missed payment (or three) and cancels the subscription.”

But I don’t see it work. Is there a problem?

Regards!

Membership should be canceled when payment fails. If this is not happening for your site, there is an issue with your gateway communicating with your membership site. Please consider a Plus membership and open a ticket in our support area for dedicated help.

in addition to recurring subscription fees of the same amount, does PMPro offer a solution for recurring monthly fees of varying amounts from month to month?

let’s say one month the fee will be $100, but the next month, the fee would be $150, and the third month , $127. is there a way I can set this up using PMPro and authorize.net as the gateway?

also, the amount the fee would be is unknown until the end of the preceeding month.

I guess an easier solution is have the ability to manually charge a customer’s card on file? I would have their consent via signed contract of course.

Leave a Reply

For faster support related to issues on your specific site please open a ticket in our members support area.

Your email address will not be published. Required fields are marked *