Support » Plugin: Paid Memberships Pro » Recurring payment not working

  • Hi,

    I’ve just realized that recurring payment is not working on my site. And the biggest problem is expired members are still able to access the site and see restricted content.

    I’m using Paid Memberships Pro, and bbpress Add On.

    I’ve checked with WP Crontrol, all cron jobs are there, I also tried to execute expire membership script manually from:

    https://mysiteURL/wp-content/plugins/paid-memberships-pro/scheduled/expirememberships.php

    But still not working.

    Payment problem:
    I’m using PayPal Express. I see at the Orders page of PMP, at each of the first payments, there are always 2 values: Payment: x-xxxxx Subscription: x-xxxxx. So I assume the subscription is registered at PayPal? But when the date is past, there’s no new payment. Fyi, I didn’t set expiration date, since I read at one of your articles that for recurring membership, I shouldn’t do that.

    Content problem:
    I expect the expired members should not be able to see the restricted content anymore? Or do I need to “expire” each of those member manually? If so, how do I do it (with them still be able to re-register at later date)?

    Thanks,
    Dicko

Viewing 9 replies - 1 through 9 (of 9 total)
  • Plugin Author Andrew Lima

    (@andrewza)

    Hi Dicko,

    Thank you for using Paid Memberships Pro. I’m sorry to hear about this issue you are facing.

    Are the user’s being billed correctly within PayPal? There should be an automatic payment created for these user’s inside PayPal.

    Are orders not being created inside Paid Memberships Pro? Automatic billing should create an order inside Paid Memberships Pro every time a user is billed.

    Expired members are most likely caused by the cron job failing. Do you have custom code running on your site that may adjust the user’s level in anyway? The URL you mentioned is correct to manually expire users, if nothing is displayed on the screen when navigating to this URL it means there are no members that need to expire, it would show which email addresses the expiration email was sent to if there were members to expire.

    Would you mind telling me what version of Paid Memberships Pro you are using and what PHP version your site is running on.

    Hi Andrew,

    Thanks for replying. We’re current using:

    Paid Memberships Pro 1.9.5.3
    bbpress Add On 1.5.5
    PHP 5.5

    For their first payments, all users are billed correctly, and orders were created with “success” status. But for example, first payment was on January 29th, 2018, after 1 year later, there’s no new order created, which should be there on January 29th, 2019 (it’s an annual membership).

    I don’t have any custom code running on the site. And when I tried to run the cron job manually, you’re right, there’s just blank white page. So that means expired members aren’t recognized as expired yet. Any idea why?

    Also I see you have Payflow Recurring Orders Add On? Not sure what that is, but do I need that for recurring membership to run? I use PayPal Express currently. And only bbpress Add On, nothing else.

    Thanks,
    Dicko

    Plugin Author Andrew Lima

    (@andrewza)

    So that means expired members aren’t recognized as expired yet. Any idea why?

    Does your members still show up under the “Members List” with a past date for the expiration date after you try to manually expire members?

    Also I see you have Payflow Recurring Orders Add On? Not sure what that is, but do I need that for recurring membership to run?

    This is not needed for PayPal Express.

    How recurring subscriptions work is, the user gets directed to PayPal to checkout (with PayPal Express) then the user will be charged immediately (if an initial amount is set) and setup an automatic recurring subscription (if the recurring amount is set). Then PayPal will automatically bill the user every time their recurring date is reached. If the user is successfully billed, PayPal will send a notice to Paid Memberships Pro to create an order and keep the user’s membership level. (Paid Memberships Pro doesn’t use cron jobs to bill users and we let the payment gateway recurring payments handle this).

    If this isn’t happening, it could be an IPN issue with your site and PayPal, you may follow this guide to debug this further – https://www.paidmembershipspro.com/troubleshooting-paypal-ipn-issues-with-paypal-express-paypal-standard-or-paypal-website-payments-pro/

    Plugin Author Andrew Lima

    (@andrewza)

    Is there a reason you haven’t updated to the latest version of Paid Memberships Pro?

    Also you are able to cross reference the subscription_ID inside PayPal to see if the user has a recurring subscription (automatic payment). It’s possible that the user is still getting billed but it’s just not updating inside Paid Memberships Pro due to an IPN issue.

    Hi Andrew,

    You’re spot on! It’s the IPN, sorry if I have misinformed you, so recurring payment is in fact working. Just that “failed” or “success” payment notification doesn’t get to PMPro at my site.

    I check at PayPal, and my IPN url is set: “http://mysiteURL/gateway/paypal_ipn.php” Is this the correct setting? And will http/https makes a difference? I installed SSL sometime ago.

    There are a few members that should be expired (their payment failed), but they’re still listed at the member list. Also the expiration date is “none”. How can I expire them manually?

    So I assume that for recurring subscription, the members will always be listed as “not expired” as long as there’s no “failed payment” notification from PayPal?

    And following up on your question on updating, I’ve just updated PMPro to the latest version now, using PHP 7.3, also updated to WP 5.1.

    Thanks,
    Dicko

    Oops, spoke too soon, I had to downgrade to PHP 7.2 because a plugin of mine doesn’t play well with 7.3.

    Thanks,
    Dicko

    Plugin Author Andrew Lima

    (@andrewza)

    This definitely sounds like an IPN issue as the failed payments should have sent a cancel notification to Paid Memberships Pro.

    You may simply edit these users that payments have failed and remove their membership level.

    “http://mysiteURL/gateway/paypal_ipn.php” Is this the correct setting? And will http/https makes a difference? I installed SSL sometime ago.

    You would need to use HTTPS in this case as it may cause issues when it redirects to HTTPS. Also that IPN URL doesn’t match that of Paid Memberships Pro. You shouldn’t need to set the IPN URL with Paid Memberships Pro as we tell PayPal the IPN address when a user signs up (Through the API).

    So I assume that for recurring subscription, the members will always be listed as “not expired” as long as there’s no “failed payment” notification from PayPal?

    That is correct. User’s aren’t expiring due to the IPN issue.

    You may work through the two following guides:

    Troubleshooting: https://www.paidmembershipspro.com/troubleshooting-paypal-ipn-issues-with-paypal-express-paypal-standard-or-paypal-website-payments-pro/

    Setting up PayPal IPN: https://www.paidmembershipspro.com/setting-setting-ipn-urls-paypal/

    I hope this helps.

    Thanks a lot Andrew. I’ll continue from those 2 links you gave me.

    Always the best support from you!

    Thanks,
    Dicko

    Hi, my recurring payments aren’t working either, but I’m being told (via a notification on my WP dashboard) that the problem is with the PayPal IPN.

    I’m sorry for posting this question here, as this thread isn’t explicitly about PayPal IPN. But I can’t see how to post a NEW thread; nor can I find any currently open threads that address PayPal IPN.

    May I continue with my question on this thread? Thank you.

    (I’ve reached out to WooCommerce with my question, and after 24 hours have received zero response from them).

Viewing 9 replies - 1 through 9 (of 9 total)
  • You must be logged in to reply to this topic.