Customer purchase not updating EOT/Capabilities

I am having an issue with one customer and cannot determine the cause of the issue.

When this person places their original purchase they are granted access to the membership. before expiration they get the EOT reminder email.

Once they go and purchase the “renewal” the payment goes through however their status remains unchanged and they eventually expire removing their access and custom capabilities.

Does anyone have any thoughts as to what the issue may be? And advise would be greatly appreciated. I also have logs which I can share if it would be of help

Hi Ahmed.

That’s interesting. Okay, first of all enable logging so we get more details. WP Admin > s2Member > Log Files

Can you reproduce the behavior or does it happen randomly? If you can reproduce it or it happens again, look for the relevant entries from all the log files.

What payment gateway are you using? What form/button are you using to sell the membership?

I look forward to your update. :slight_smile:

Thanks for your response… Yes it is an interesting issue… It is definitely reproducible with this one user and I already have logging enabled. it appears that it is not identifying/associating the user with their existing account. I am using PayPal buttons to sell the membership.

Looking at the logs this is what i noticed

This is the entry for the user encountering an issue, it appears that it is not identifying/associating the user with their existing account.

Any thoughts?

[s2member_log] => Array
[0] => IPN received on: Mon Feb 22, 2021 3:08:45 am UTC
[1] => s2Member POST vars verified through a POST back to PayPal.
[2] => s2Member originating domain ($_SERVER["HTTP_HOST"]) validated.
[3] => s2Member txn_type identified as ( web_accept|subscr_signup ).
[4] => s2Member txn_type identified as ( web_accept|subscr_signup ) w/o update vars.
[5] => Signup Confirmation Email sent to: “xxxxxxxxxxx”
[6] => Storing payment for Subscription via ( web_accept ).
[7] => Creating an IPN response for subscr_payment. This will go into a Transient Queue; and be processed during registration.
[8] => Storing IPN signup vars into a Transient Queue. These will be processed on registration.
** )**

Thanks for the update and the new details!

I see. It seems that the user is not logged into his existing account when the payment button is loaded, so the payment goes towards a new signup instead.

Try asking the user to login first, then reload the page with the button, and then make the payment, and see if the behavior changes, please.

Let me know how it goes. :slight_smile:

Thats what It seemed like to me as well, supposedly the user was logged in but we will be testing that later today. I’ll keep you posted!


1 Like

That’s interesting as I meet the same problem. I did not suspect that the customer was not connected.

1 Like

So after sone troubleshooting it seems that there was an issue with one of the caching plugins (w3 total cache). The odd thing is that no other users have reported this same issue.

The user was logged into the site but when they went to purchase the membership the were no longer signed in as evident by the admin bar at the top being gone.

After disabling the caching plugins issue was resolved, reenabled the caching plugin and the behavior was no longer an issue.

1 Like

Nice catch! I’m glad you found the source of the problem. :slight_smile:

I wonder what else could have contributed to that… It also reminds me of login sessions caused by inconsistency in use of www or https when linking, see:

Yeah Luckily I was able to troubleshoot with the user.

I am going to disable w3 total cache altogether, any suggestions for a caching plugin which won’t cause any issues?

Well, we have Comet Cache, but W3TC is being used by many together with s2 without issue, so it should be fine. Probably some setting in it…

If I remember correctly, it used to have a setting for object caching.

I haven’t seen anyone have that issue in a long time, so I don’t know if it’s still there. See if you had it enabled, then disable and see if it you can still reproduce the problem.