You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm having a lot of issues trying to get members which have cancelled their subscription to be automatically demoted.
WordPress Version: 4.9.4
s2Member Version: 170722 + s2Member Pro v170722
STEPS TO REPRODUCE THE ISSUE
I created a level 1 subscription with 1 day try free and then afterwards $1.20 per month. About 1 hour after creating the subscription I cancel the subscription through Paypal.
BEHAVIOR THAT I EXPECTED
I was expecting the member to be demoted back to level 0 free subscriber but it continues to stay on level 1.
BEHAVIOR THAT I OBSERVED
My latest test I see the following:
[s2Eot /] echos out "Next Payment: Mar 19th, 2018, 10:00 am UTC"
where if I do the following:
$eot = s2member_eot();
echo var_dump($eot);
which echoes out:
array(4) { ["type"]=> string(5) "fixed" ["time"]=> int(1521386410) ["tense"]=> string(6) "future" ["debug"]=> string(146) "This is the estimated EOT time. The PayPal Pro API says this subscription is no longer active, and thus, access should be terminated at this time." }
echo gmdate("M jS, Y, g:i a T", $eot['time']);
echos out "Mar 18th, 2018, 3:20 pm GMT" which is a different time from using [s2Eot /].
Also I have noticed that no EOT is set against the field "Automatic EOT Time" on the users record.
The other confusion is that the EOT Grace Time (in seconds) is set to "0" so even s2member_eot() is not right as the EOT should have been now and not 24 hours later which is the default.
I will update again when it goes past Mar 18th, 2018, 3:20pm as based upon my previous tests the member will not be demoted back to being a free subscriber.
It has now gone past 3:20pm and I have run the following PHP:
$eot = s2member_eot();
echo var_dump($eot);
which echoes out:
array(4) { ["type"]=> string(5) "fixed" ["time"]=> int(1521386410) ["tense"]=> string(4) "past" ["debug"]=> string(146) "This is the estimated EOT time. The PayPal Pro API says this subscription is no longer active, and thus, access should be terminated at this time." }
I can see the time is the same but the field tense has now changed to past so s2Member knows its gone past the EOT. But as predicted the user has not been demoted and is still on Level 1.
[s2Eot /] echos out now "Access Expires: Mar 18th, 2018, 3:20 pm UTC"
Do you have any idea what is going on?
The text was updated successfully, but these errors were encountered:
tcf123
changed the title
EOT Not Working As Expected and Does Not Demote Member
Automatic EOT Time does not get populated after IPN is received and then does Not demote member?
Mar 19, 2018
After many hours of looking at this issue I have now fixed the issue! :slight_smile:
All it was... was a plugin conflict with another plugin called iTheme Security. This was all working great some months ago but I guess it must have been one of the recent updates that we applied to iTheme Security which broke s2Members EOT.
I did find this on the issue: wpsharks/s2member-kb#328 but even disabling those features did not make it work. I even tried disabling all of the features within iTheme Security and that still broke s2Member EOT.
Having looked around I decided to go with Loginizer as it had a particular feature that I required that not all of them have, and I can confirm that this replacement does not have any conflicts with s2Member as I can tell at the moment.
EXPLANATION OF THE ISSUE
I'm having a lot of issues trying to get members which have cancelled their subscription to be automatically demoted.
WordPress Version: 4.9.4
s2Member Version: 170722 + s2Member Pro v170722
STEPS TO REPRODUCE THE ISSUE
I created a level 1 subscription with 1 day try free and then afterwards $1.20 per month. About 1 hour after creating the subscription I cancel the subscription through Paypal.
BEHAVIOR THAT I EXPECTED
I was expecting the member to be demoted back to level 0 free subscriber but it continues to stay on level 1.
BEHAVIOR THAT I OBSERVED
My latest test I see the following:
[s2Eot /]
echos out "Next Payment: Mar 19th, 2018, 10:00 am UTC"where if I do the following:
which echoes out:
array(4) { ["type"]=> string(5) "fixed" ["time"]=> int(1521386410) ["tense"]=> string(6) "future" ["debug"]=> string(146) "This is the estimated EOT time. The PayPal Pro API says this subscription is no longer active, and thus, access should be terminated at this time." }
echo gmdate("M jS, Y, g:i a T", $eot['time']);
echos out "Mar 18th, 2018, 3:20 pm GMT" which is a different time from using [s2Eot /].
Also I have noticed that no EOT is set against the field "Automatic EOT Time" on the users record.
The other confusion is that the EOT Grace Time (in seconds) is set to "0" so even s2member_eot() is not right as the EOT should have been now and not 24 hours later which is the default.
I will update again when it goes past Mar 18th, 2018, 3:20pm as based upon my previous tests the member will not be demoted back to being a free subscriber.
It has now gone past 3:20pm and I have run the following PHP:
which echoes out:
array(4) { ["type"]=> string(5) "fixed" ["time"]=> int(1521386410) ["tense"]=> string(4) "past" ["debug"]=> string(146) "This is the estimated EOT time. The PayPal Pro API says this subscription is no longer active, and thus, access should be terminated at this time." }
I can see the time is the same but the field tense has now changed to past so s2Member knows its gone past the EOT. But as predicted the user has not been demoted and is still on Level 1.
[s2Eot /]
echos out now "Access Expires: Mar 18th, 2018, 3:20 pm UTC"Do you have any idea what is going on?
The text was updated successfully, but these errors were encountered: