Paid Memberships Pro integrates with PayPal via four of their merchant offerings: PayPal Standard, PayPal Express, PayPal Website Payments Pro (Legacy), and PayPal Payflow Pro.

Each variation of PayPal has its own quirks, pros, and cons. Our goal is to support any gateway we integrate with to the furthest extent possible. To that end, here are some things we are actively focusing on right now to improve our integration with PayPal.


So what’s going on?

There are a few threads in our support forums and people we have been in email communication about these issues. As we make progress on these, we will share updates on the blog here and in the upgrade notes of any new PMPro version pushed out.

1. Improved synchronization of subscription cancellations.

When users cancel their membership on your WordPress/PMPro site, we attempt to use the PayPal API to cancel their subscription on the PayPal side. I write attempt there because there are cases where PayPal won’t allow us to cancel a subscription through the API.

Most notably, if a user cancels immediately after checking out, their payment is still in “pending” status and PayPal won’t allow us to cancel the subscription. Currently, we send the WP admin an email explaining that the cancelation failed and that they should manually cancel the subscription.

We will investigate ways to detect why subscriptions aren’t canceling and if we can automatically cancel them via a series of API calls (e.g. change the status of the order and THEN cancel the subscription) or schedule the cancelation for later. We will also work to improve the readability and usability of notifications that are sent to emails in edge cases.


2. Improved handling of failed payments.

There are a few ways we can better handle payments that fail on the PayPal side. First, when recurring payments fail, we are not always detecting this via the IPN calls from PayPal to inform users of the failed payment and how they can update their billing information to make the payment right.

Second, there are default settings in PayPal for how many times to retry a failed payment before canceling a recurring subscription. Each API is different, but we should expose these settings to be updated to fit your business and generally make adjusting these values as easy as it is with other gateways we support like Stripe.

Third, when users first checkout with PayPal Express, they are given immediate access to your membership area.

It can take anywhere from a few minutes to 48 hours for their initial payment to process completely.

If the initial payment fails, PayPal will eventually cancel the subscription, which will synchronize to PMPro to cancel their membership on your site. Currently PMPro is developed with the user’s checkout experience in mind and gives them immediate (or a couple minutes in the case of PayPal Standard) access to their membership.

We didn’t want users to have to wait hours or days for payment confirmation before access the site, so we made the decision to give them immediate access. However, site owners should be able to make that decision for their site. We’d like to create a way for site owners to choose whether access is given immediately or after payment confirmation is delivered via the PayPal IPN.


3. Initiating refunds from the WordPress/PMPro dashboard.

We’d like to allow admins to initiate full and partial refunds from the WordPress/PMPro dashboard, when using PayPal or any of the other gateways that support refunds through their APIs. Pretty simple.

If you would like to discuss anything around this development, please feel free to engage with us here in the comments, through the member forums, on GitHub, or in our dev chats.


Author’s gravatar

Many of these issues caused us significant grief for several years. The feeling that people are getting your content *for free* based on technical issues with the plugin is really quite awful. It was so frustrating that we finally switched to Stripe. Even though we are no longer using PayPal with PMPro it’s nice to see that these issues are finally being addressed.

Reply
Author’s gravatar

Please also fix the problem that members get a receipt from PMP even if they aborted the payment (if they didn’t click the “Complete payment” button.) The receipt is supposed to be a proof of purchase – not if the purchase was aborted. But maybe this will be fixed if you don’t activate the memberships before the payment if confirmed from Paypal.

Reply
Author’s gravatar

#1 is a huge problem for us. We use Paypal Express as our gateway. Users will sign up for our 1-week free trial subscription, which requires a CC and automatically bills them upon the start of week 2. What happens is users will cancel after a few days of trying the trial, and their membership is only cancelled in PMP. Their Paypal sub is still active and gets billed. We make sure to take care of all of this promptly but it’s really a customer service disaster waiting to happen.

So…net net, how can we ensure that PMP Cancellations ALWAYS result in Paypal sub cancellations?

Reply
Author’s gravatar

We’re working on it.

Reply
Author’s gravatar

Did you ever implement a fix for this one? It’s a big issue and we don’t know how to resolve it. Thanks.

Author’s gravatar

We’ve done some work here, but the main issue (not being able to cancel orders in pending status) doesn’t seem possible at all. One work around we’ve thought of is to keep track locally in the WP DB when we intend to cancel a subscription and use the WP cron to try at a later date. I’d like to walk through this with our PayPal contact, but haven’t done so yet.

Author’s gravatar

Also should we expect similar issues if we switched to stripe instead of paypal express? Thanks

Author’s gravatar

Jason I am having a significant problem with payments not going through. When trying to subscribe they get directed to paypal and then back to our site to complete the process. At that point the process isn’t able to be completed and it says ” profile description is invalid. Additionally all my orders are deleted and marked as “token” or “review”. I cant see any of the persons information who tried to subscribe so I can’t even contact them. I don’t know if they think they are subscribed but I have received no payments as of yet and I have almost 40 orders. Please help!!!

Reply
Author’s gravatar

Have you posted to our member forums? We can get info from you to access your site and take a look. There are a few different things that can cause this. Off the top of my head special characters in the level names or site name has caused this in the past. (We’ve tried to avoid that but it seems it might still cause problems.)

It might be a bug on our end as well, but we would need more info about your setup and access to your site to test. Thanks.

Reply
Author’s gravatar

Jason i just upgraded from a free membership to the 97.00 plan because i need help asap…my site is suppose to launch saturday and no members have actually been able to sign up. The recurring payment is being initiated and then immediately cancelled. The members account is marked as deleted and then either “token” or “review”. Not sure what to do…please advise. How to I give you access to my site??

Author’s gravatar

It also happened with us that when we tried to use subscriptions, we would get cancellations automatically.

I am curious however to find out the status of this paragraph, because for us, our users get “pending” and do NOT get immediate access to the site. Where can we , or when can we, set up whether or not they should have immediate access to member-only areas of our site?

“We didn’t want users to have to wait hours or days for payment confirmation before access the site, so we made the decision to give them immediate access. However, site owners should be able to make that decision for their site. We’d like to create a way for site owners to choose whether access is given immediately or after payment confirmation is delivered via the PayPal IPN.”

Reply
Author’s gravatar

Jason, we continue to receive these notifications “There was an error canceling the subscription for user with ID=161. You will want to check your payment gateway to see if their subscription is still active.” I have looked into the user and they are all caught up on payments and seem to be correctly cancelled on the website.

Could you explain why we may be receiving this error message? Stripe is our payment gateway

Reply
Author’s gravatar

We are still working on this and hope to have a fix ASAP. In some cases PMPro is trying to cancel a subscription twice for some reason. So the second time it tries, Stripe says “hey that subs already cancelled” and our code detects the error and sends that generic message RE something being wrong. It’s been hard to recreate this issue. If you have any ideas, let us know.

Reply
Author’s gravatar

I’m using 1.9.4.4 and still I see the error
“Profile description is invalid”

Reply
Author’s gravatar

Sometimes this occurs when a WordPress site is missing a Site Title. Would you mind checking to see if your site title is not empty and if so, try adding a site title to see if this fixes the issue?

Reply

Leave a Reply

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