PayPal Suspended/Cancelled Profiles Not Getting Demoted

I had a suspended profile for non-payment come through and the profile wasn’t demoted through EOT.

S2Member Auto EOT is enabled
Membership EOT is set to demote to free subscriber.
Membership EOT is set to remove custom capabilities
EOT grace time is 0
Refunds/Reversals always trigger EOT
Fixed Term Extensions is on.

I checked and WP-Cron ran the s2member eot schedule, but nothing happened and the customer doesn’t have any remaining time on his subscription.

Oh, and the customer was imported over to the system via the internal CSV system and he has a paid subscriber ID, notation that it’s paypal, email address, etc. All the required info that the how-to said he should have. But still nothing.

Any thoughts on what I might need to do?

You’re using PayPal, so the first thing I’d do is check if anyone else is reporting issues with missed payments on PayPal. And I don’t mean specifically relating to s2Member. Over the last year, PayPal has caused a ton of grief to those using it because of changes to their internal mechanisms, and these problems have been nothing to do with specific plugins. So I’d do some Googling.

Thankfully, I use Stripe instead. But that means that, if there is an issue on the s2member side, you’ll need someone else to chime in with help.

Thanks Tim, hopefully someone with PayPal can let me know how things are going on their end. I also submitted a ticket, so hopefully something will come of that.

One thing that occurred to me… I have it set to 0 grace time, but does S2Member have a default to delay stuff regardless of the grace time?

I’ve been watching the logs and here’s what I’ve found…

When there is a suspension via PayPal I’m getting this error…

Transaction type (^recurring_?), but there is no match to an existing account; so verification of $_SERVER["HTTP_HOST"] was not possible.)

And when there is a failed payment (for a pre-existing imported subscription button) with PayPal I’m getting this error…

[2] => Unable to verify $_SERVER["HTTP_HOST"]. Please check the custom value in your Button Code. It MUST start with your domain name.

NOTE: All new memberships being processed through Stripe are just fine. This appears to be strictly an issue with PayPal’s integration.

I built a php file to check the echo on my HTTP_HOST value, and it’s correct… so what exactly is going on here?

Any thoughts?

Do either of these threads from the old forums help?

https://www.s2member.com/forums/topic/memberships-not-upgrading-in-sandbox-mode/

https://www.s2member.com/forums/topic/new-paid-user-not-have-paid-subscr-id/

That might have done the trick. I’ll have to wait for the next expiration to come through, but the HTTP_POST error was fixed for a new subscriber, so that’s a good sign. Thanks!

Hi Everyone, I am having the same issue but with stripe members so after setting up a cron job I am here having to demote to free subscribers the 300+ members that are not paying. My question is what are the optimal steps to demoting manually the users.

1.- change the user role on the profile
2.- Make the stripe Active subscription account inactive if not.

On the s2members profile & configuration fields the (?) said:
This will be filled automatically by s2Member. This field will be empty for Free Subscribers, and/or anyone who is NOT paying you. This field is only editable for Customer Service purposes; just in case you ever need to update the Paid Subscr. Gateway/ID manually.

Do I leave these alone or do I delete that info?

Thank you so much :slight_smile: