Correct Way To Renew Before EOT - Auth Pro Form

Using Authorize.NET Pro Forms for monthly and yearly, sometimes customers want to renew (extend) their current subscription before it ends. The way I think I did this in the past, but cannot find an example of:

  • Make a page that checks the current level, then shows the original Auth NET pro form they used to signup. If they fill this in again while being active, it just extends the current term for monthly or yearly from the current EOT and they don’t lose anything.

Is this still correct and will work as described?

If you’re talking about buy-now payments this is simple because you can set your Auto EOT Behavior to extend the EOT. WP Admin > s2Member Pro > AuthNet Options > Automatic EOT Behavior > Fixed-Term Extensions (Auto-Extend)?

That setting only affects Buy Now transactions for fixed-term lengths, so if someone makes another fixed-term Buy Now purchase before their current EOT, the new time can be added onto what they already have.

If you’re talking about subscriptions, then it’s different…

If someone submits the same recurring pro-form again before the end of the current paid term, s2Member will create a new recurring subscription based on the time of the new checkout. It does not automatically carry forward the unused time from the current subscription.

The old recurring subscription is supposed to be canceled once the new one is created successfully, so this ends up being more of a replacement than an extension.

What you want can be done, but it would need custom coding. I have built something along those lines before for a client as a custom solution.

The usual way to handle it is to calculate a custom initial period that bridges from now to the member’s current renewal date, then let the normal recurring schedule begin from that future date so it matches the EOT of the one being replaced.

This article may help, since it covers the same general idea of using a dynamic trial or initial period:

:slight_smile:

Thanks for the reply - I wish there was an easier way, like an “Extend Current Subscription Form” but I understand what you are doing in the linked article.

On that same line of thinking, if the Yearly subscription expires and the user goes to level 0 (Expired in my case), then I present them the Yearly subscription form again when they are logged in with their expired account, it will let them “renew” (buy a new subscription) with the current logged in email, is that correct? Or will they get the “email already in use” error from WordPress? Is that the scenario where they should get a “Billing Modification Form”, which would take them from level 0 to (1-x)?

If the user is logged in when the pro-form page is loaded, then it’ll let him upgrade his current account’s level/access. When he’s not logged in, then the pro-form also creates a new account for him.

So just make sure he’s logged in to his account when he wants to re-subscribe, and that the pro-form is in a page that a Level 0 user can reach.

If you want to show him different messages based on his access, s2If conditionals can be useful. https://s2member.com/kb-article/s2if-simple-shortcode-conditionals/

:slight_smile:

Understood - thanks for your quick reply!

1 Like