ppmpro_pay_by_check_updateWe have updated the Pay by Check Add On to support recurring subscriptions. The add on notifies a “check paying” member when a membership fee is upcoming, past due, or their has been membership terminated for non-payment (based on your level configuration settings). PMPro Plus members can download the updated add on here.

Because of the size of this update and the potential for new features to break existing sites, the update has not been pushed out via the automatic update server until we receive feedback from early adopters.

What does “recurring subscription support” mean?

Previously, the Pay by Check Add On only officially supported check payments on levels with one time payments (just an initial payment). If a level was set up with a subscription/recurring payment, the membership would be given with no end date. It assumed that the site administrator or membership manager would specify a member’s end date or add the recurring payments manually.

Now, if someone checks out for a level using the pay by check option, there are a few daily cron jobs that will create new “pending” orders for recurring payments and email a notice to the member that a new check payment is due.

Getting Started with the New Pay by Check Add On (v.5)

  1. Activate PMPro and the Pay by Check Add On (v.5).
  2. In the Memberships > Payment Settings tab, select “Check” from the “Payment Gateway” drop down. Set up the check payment instructions. Save.
  3. In the Memberships > Payment Settings tab, select the your desired default payment gateway. Save. (The non-check gateway should be chosen as the gateway on the payment settings page. Your settings for the check gateway, specifically the payment instructions, will be saved in the background for when the check gateway is used.)
  4. Create a recurring level as you normally would. Set the initial payment and subscription.
  5. Do NOT set an end date for the level (unless you want to cut the membership off PERMANENTLY after a certain amount of time). The system will cancel memberships for members who fail to pay within the time limits.
  6. In the Pay by Check settings, choose “Yes. Users can only pay by check.” or “Yes. User choose between default gateway and check.”
  7. If you have chosen “Yes” for offering the pay by check option and the level is recurring, then there will be 3 other settings to enter.
    • Send renewal emails __ days before renewal.
    • Send reminder emails __ days after a missed payment.
    • Cancel membership __ days after a missed payment.
  8. That’s it! Save the level.


With these settings, the option to pay by check will show up at checkout. When a user checks out, their order will be in “pending” status until an admin changes it to success (e.g. after the check clears).

While the order is in “pending” status, the default content filters in PMPro will deny the new customer access to member content. Some content will be unavailable to them. Depending on your theme and other settings on your site, other content may be available to the customer since they are still considered a “member”. Technically, the pmpro_has_membership_access filter will be returning false, but calls to pmpro_hasMembershipLevel() will return true. If you need help tweaking your site to show or hide certain content from pending pay by check members, we can help you to develop the custom code in our member forums.


Here is a typical examples to help you to figure out how the new recurring subscriptions work with the Pay by Check Add On.

One membership level at $100 per year.

Say you have one membership level that is $100 per year. The level is setup with an initial payment of $100 and recurring payments of $100 per year. You use Stripe and have activated the Pay by Check Add On and set it up to offer paying by check as an option at checkout. You’ve set the renewal, reminder, and cancellation settings to 5, 5, and 25 days respectively. Here is how this might play out for your customers and admins.

  • It’s Monday November 23rd, 2015.
  • Sally Customer visits the site and chooses to checkout for the annual membership level.
  • Sally chooses the “Pay by Check” option and checks out.
  • The confirmation page and confirmation email both contain the “instructions” text from the Check gateway settings.
  • Sally sends in her check. In the meantime, she shows up in members lists but has limited access to content on the site.
  • About a week later, the check arrives, is cashed, and clears. An admin edits Sally’s order and sets the status to “success”.
  • 5 days before the renewal date (11/18/2016) a new pending order is automatically created for Sally, and an email is sent to Sally reminding her to send in a check for this years membership.
  • If that order is not changed to “success” status by 5 days after the renewal date (11/28/2016), Sally is sent a reminder email.
  • If the order is still not changed to “success” status by 25 days after the renewal date (12/18/2016), Sally’s membership is cancelled and she is sent the normal cancelled membership email.

The Settings are Sensitive

There are a few known edge cases, where the settings can be confusing to the system. We are working to detect these and either handle them how you would expect or point out when the settings don’t make sense. For example:

  1. If you are using the Pay by Check Add On and the Add PayPal Express Add On, two different boxes are added to the checkout page to choose between paying by “Credit Card or Check” and “Credit Card or PayPal”. We are planning to update one or both of the plugins to detect this case to show one box with all 3 options.
  2. If your setting for “Cancel membership __ days after a missed payment.” is lower than the “Send reminder emails __ days after a missed payment.” or these values are too close together, users may get confusing emails. For example, they could get the reminder before the initial invoice goes out. Or they could have their membership cancelled before the reminder goes out. Make sure the timing of these dates makes sense and leaves enough room between emails for your members to act.

Hang in There!

Remember, this was a large update with some changes that might even affect sites that aren’t using the Pay by Check add on for levels with a recurring subscription.

If you run into any issues, please notify us immediately in the member forums or by posting an issue on GitHub.

Once things look stable after a week or so, we will push the new version to the update server for existing users.

This entry was posted by Jason Coleman in Add Ons, Newsletter and tagged . Bookmark the permalink. Last updated: November 23, 2015. Titled Pay by Check Add On Now Updated to Support Recurring Subscriptions

Comments (22)

With individuals paying by check is not widely used now days.

But in the Business World where you are catering to B2B and your members ACTUALLY MEET off line at a meeting place in real life. This is a HUGE PLUS, thanks guys for making this possible.

You’re welcome!

Yeah this is very useful for B2B applications and also associations that collect a lot of their “dues” offline somehow. It’s a use case we’re very focused on.

Thank you very much, this sounds great. What I’d like to know is, could I use this for customers who want to pay by credit card, but where I don’t want the credit card to be automatic? that is, my client wants them to pay online, but voluntarily – not an automatic fashion. It sounds like this functionality is pretty close.

If I understand you correctly, you can do this with the core plugin. For example if you wanted to charge $100 per year and let folks pay “voluntarily”, you could set it up like this:

* Initial Payment = $100
* Recurring = No
* End Date = 1 Year

With this setup users pay just once at checkout. Then they can pay at any time (log into their account and checkout again) before the 1 year is up to extend their membership one more year. PMPro will send an email 7 days before expiration expiration as a reminder. That time can be changed via custom code or addons.

When someone checkouts using pay by check option. He will be redirected to confirmation page where he sees the notification “your membership is active”. Though his membership status is pending in the back end. When he tries to access the members only content he sees the error like “this content is for members only. for signup (click here)”. On the signup page he will resubmit the checkout form and a new order will be created,

In this way prospective members are likely to place more than one orders for the same level of membership. How to overcome this issue.?

First great plugin, great support. This add-on seems perfect for my need. The membership has meetings throughout the year and some members want to pay by check at the meetings. I looked at the other pay by check add-on but I believe you need to create a specific level just for that option. This add-on did not break anything and all the software I use is current. I saw thru testing the PayPal button for submission. So is PayPal controlling the check processing? My gateway is PayPal Website Payments Pro so would I see the check processing on this account or is it something different? I don’t use recurring, the membership renews yearly. So I’m just trying to verify is this is the right add-on to use ( need pay by check option for each existing level ) and how does the paypal back end work?
Thanks In Advance

We’re very excited about this addition guys, we think it could really help us a lot.

There is one feature we need before we can really use it, however: a way to *not* automatically renew credit card subscribers that are using levels that can also be paid by check. Let me explain:

* Our current levels are non-recurring — we rely on subscribers renewing via credit card with the authorize.net gateway. We send both email and printed renewal notices. In general, we think our membership will be put off by auto-renew with credit card.

* The behavior we actually want is in fact just like what you describe with the pay-by-check gateway. Right now we get this behavior manually — we use non-recurring levels and we manually look up members by expiration date and send them renewal notices. We do check processing via a manual check order admin page that I have hacked up. This creates a number of problems for us that we would not have if all memberships were recurring.

Would it be difficult to extend the pay-by-check gateway behavior to the authorize.net gateway?

Thanks for your help,

> Would it be difficult to extend the pay-by-check gateway behavior to the authorize.net gateway?

I’m confused about specifically which functionality you want for Authorize.net and also confused about when your members are paying by credit card or check.

Can you open a thread in our member forums and ask for Jason and I’ll follow up there. I suspect there might be a lot of back and forth needed.

Hi Jason,

the new version of the plugin seems to work fine. The previous version we used did not set the order to “pending”, but this flaw is gone now. However, in the wp user profile pending orders are not listed. Only after changing the status in the order record to “success” the order appears in the wp user profile. Is it meant to be like that or is this another flaw? It actually would be nice to be able to open a pending order from the wp user profile instead of having to navigate manually to the Order list to change the status.

And another question: what is the use of the second add-on you offer for check payments? It is called “pmpro_check_levels”. It looks like it is just an older version of “pmpro_pay_by_check”. So it might be better to remove it from your list of available add-ons.

I also think it makes sense to show pending invoices/orders on the membership account page for users paying by check. I’ll try to get this added.

RE the PMPro Check Levels, that addon still serves a purpose although it’s confusing to have around for sure. FYI the “check levels” addon works well if you’d like to use a workflow like this:

* Users checkout for the “check level”, which only has access to certain things.
* Once the check is received and clears, admins switch the user from the check level to the “real level”.

This works well for sites with one time payments that want to give users paying by check access to some things but not others until the check clears.

Hi there

That is a useful development

One problem for us is that when people choose to pay by check, the billing address fields are removed. It is very useful to have some details such as phone and address in order to chase up payments and also produce an invoice with the address of the client on it. Would it be a problem to make this optional.


I just looked at the code and if you set the reminder_days value to 0, it will send a reminder on the day of the charge (kind of silly, but that’s how it’s coded now).

If you want to squelch those emails, you can do that via the pmpro_email_recipient filter. Here’s the code gist for that:

It makes sense to not send reminder emails, and it would be nice to be able to set this via the plugin directly (and avoid the processing early than the email being sent). I’ll look into adding something like that to the plugin. In the meantime, that code above should help.

Please post a topic on the members forum so we can take a look at your site. This may be a Javascript error as the button should swap out via the selection of the radio buttons on that section of your membership checkout page.

How is it possible to receive email when a user ask a pay by check option.
As administrator i did not receive notification. Is that normal ?

thank you

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 *