When a Member cancels, s2Member will flag their account with an Auto-EOT Time, so that access is denied at the correct point in time; based on whether they were within a free trial period, or not. It also looks to see when their last payment came through, and it makes a decision about the proper EOT Time, based on all of these factors, including the actual length of each payment term associated with their premium access.
To put it simply, a cancellation really just stops billing; and it tells s2Member that access should be denied at some point in the future
( based on several factors ). That's it. That's all a cancellation does. It does NOT terminate their access, not immediately. This is the intended behavior.
Some other details that might help clarify.There might be times whenever you notice that a Member's Subscription has been cancelled through PayPal®... but, s2Member continues allowing the User access to your site as a paid Member. Please don't be confused by this... in 99.9% of these cases, the reason for this is legitimate. s2Member will only remove the User's Membership privileges when an EOT ( End Of Term ) is processed, a refund occurs, a chargeback occurs, or when a cancellation occurs - which would later result in a delayed Auto-EOT by s2Member. s2Member will not process an EOT until the User has completely used up the time they paid for. In other words, if a User signs up for a monthly Subscription on Jan 1st, and then cancels their Subscription on Jan 15th; technically, they should still be allowed to access the site for another 15 days, and then on Feb 1st, the time they paid for has completely elapsed. At that time, s2Member will remove their Membership privileges; by either demoting them to a Free Subscriber, or deleting their account from the system ( based on your configuration ). s2Member also calculates one extra day ( 24 hours ) into its equation, just to make sure access is not removed sooner than a Customer might expect.
So now, once the time comes, and the aforementioned cancellation results in an actual EOT ( End Of Term ), s2Member will demote the paid Member back down to Level #0, and any Custom Capabilities they had are removed as well. So the paid Member is now a Free Subscriber with no Custom Capabilities. They will continue to have access to the Login Welcome Page, and any content that is available at Level #0, but that's it. At this point, you would use
current_user_is(subscriber). Although
current_user_is(s2member_level0) works, that's not the recommended way of identifying a Free Subscriber. You should use
current_user_is(subscriber) instead. All of these are valid.
- Code: Select all
current_user_is(subscriber)
current_user_is(s2member_level1)
current_user_is(s2member_level2)
current_user_is(s2member_level3)
current_user_is(s2member_level4)