Upgrade Membership Without Affecting Current EOT Time

I have been struggling for days to fix a problem I am having with membership upgrades and S2 Member. I need to create a payment form that allows a user to upgrade their current members account to a higher level membership without affecting their current EOT time. I have read through the forums and tried several strategies but I can’t seem to figure it out. No matter how hard I try when they upgrade their EOT time get’s changed.

Goal is to upgrade their account to a higher level membership and keep their current EOT time.

I have tried the strategies in this older article but they don’t work: https://www.s2member.com/forums/topic/modification-upgrade-of-level-on-s2member/index.html

You will need to do “prorating” instead usual “upgrade”. I did such things before, maybe can help you. Call me if you need a developer.

There is a plugin to handle pro-rates.