I offer current members a discount if they renew before their EOT. The trouble is that some members remember that their EOT is (say) 23 May, forget that it's actually 23 May at (say) 11am, and so try to renew their membership at (say) 1pm on 23 May and are disappointed that they're no longer eligible for the discount. I've been trying to think of potentials solutions for this issue, but each of them creates its own problems ...
1) I know that under "PayPal Options" > "Automatic EOT Behaviour", I could set the "EOT Grace Time" to say "86400", which would give members an additional 24 hours of access. The problem with this option is that it changes the actual EOT, so in the above case the member would now see that their EOT is 24 May and then (potentially) try to renew their membership at (say) 1pm on 24 May (so they would still be disappointed). Another problem with this solution is that for annual memberships it means that each EOT moves forward by 1 day every year, which can be a bit confusing (e.g. for members who put a reminder in their diary, etc).
2) I wondered whether it might be possible for "s2Member's Auto-EOT System" (through WP-Cron) to have the option to only process EOTs a certain period (e.g. 24 hours) after the EOT. For me, this would be a better solution than the above "EOT Grace Time". For example, in the above situation, the member would still see that their EOT is 23 May, but if they try to renew their membership at (say) 1pm on 23 May, they would still be eligible for the discount. Is such an option for s2Member's Auto-EOT System something that you might be planning to implement in the near future by any chance? I guess that one (potential) issue with this option is that if the member renews their membership within the grace period (i.e. after their EOT, but before their EOT has been processed), then a decision needs to be made as to whether their new membership period would start from their EOT (which is now a few hours in the past) or would start from the exact point in time when they renew their membership (note: the former option would be better for me, but other people might have different views on this).
3) I also wondered whether an alternative solution might be to make all memberships end at (say) 11.59pm, which would avoid the above issue. For example, in the above situation, if a member remembers that their EOT is (say) 23 May, then whatever time they renew their membership on this date they would still be eligible for the discount. Is there any straightforward way to implement such a system? For example, if a member buys an annual membership on (say) 23/05/2019 at 11am, is there any straightforward way to automatically set their EOT as 23/05/2020 at 11.59pm?