Important (easy) fixes/improvements for s2member

I’m just listing my most common problems here with s2member.

  1. No different Signup Confirmation email depending on payment provider. Why is this needed? The cancelation for Stripe vs Paypal is really different. So I would like to give different links for cancelling the payment. But i cannot because signup confirmation email is always the same. There are some more points that i would like to adapt depending on Stripe vs Paypal.
    Even better would be an optional insert - because buy now (1 time payment) vs buy now and subscription should have different welcome emails. So for me using Paypal and Stripe I would need 4 different emails. Could be solved either by 4 forms to input the text, or by somehow adding a conditional text field that only shows up if condition fulfilled.

  2. Submit Form button on pro-form payments. a) it’s too small b) the text needs to be adaptable. But not site-wide via Say What plugin but there needs to be at least a different text depending on whether the button is used to pay, or to cancel a subscription. Submit Form to initiate a payment is really not legal for many countries (in Germany needs to be something similar to “Pay Now” - but that of course clashes if the same button is used to cancel a subscription).

  3. Adapting which fields are asked when taxes are calculated for selling an item. Should be checkbox based in the plugin: Country, Zip Code, City, Street, Housenumber, Street and Housenumber (address). So any combination of the above can be chosen.
    Well and if possible preselect country based on IP (easiest probably via requiring GeoIP Detection plugin.
    Or include the address fields from Stripe itself. Stipe preselects country based on IP already.

  4. Options for what happens if a member pays with existing email using paypal buttons (happens if member not logged in). Easiest would be to just add the time to the existing time left (if any) or just reactivate the account with the bought time. Even better would be a second option set of what to happen - as for my website and many others renewals are cheaper - I would like to give them then B months/days instead of A (and maybe different membership level). so to additional options for the button that decide what level and how long if member already exists should come up. Plus of course send the renewal email instead of new user signup email then too.

1 Like

Just another bug - very uncommon but easily reproducible.
Users not demoted if initial payment for account via paypal bank wire fails.

How to reproduce: Allow paypal to accept bank wire payments - so payment is not backed by credit card or funds. Then just never send the bank wire payment. This needs to be from a paypal account without funds and without credit card or bank automatic/direct debit. I’m not sure this is offered in all countries. It is possible in Austria and Germany with paypal. Maybe same situation also applies if bank automatic/direct debit fails for paypal (never happened so cannot tell).

Result: Users can access site for paid term without ever paying.

Solutions - best: Do not let user register until bank wire payments are received. Registration emails need to be sent once payment is cleared - an intermediate email for this situation telling the user that once payment is received - he can register needs to be added to s2member.
2.nd best: delete user if the payment fails
3rd best: demote user if the payment fails (not so good as deletion as the user then can take profit of lower prices for existing users).

I do know that it is possible to forbid bank wire payments in paypal - but essentially I would lose money this way (though very little).

1 Like

Oh yeah - not sure if this will be easy now with the updated Stripe implementation - but of course support for various Stripe sources would be great. (for me that would mainly be: apple pay / google checkout / Sofort / Ideal) - but I guess that is not an easy task seeing that most shopping carts also only support a few and not all Stripe sources.

But if all of the above points with Stripe sources could be implemented - that would make s2member a truly great and again competitive plugin (though still with a steep learning curve - but then more flexible than most other plugins). Yes Thrivecart for example would be nice - but with the new much better Stripe checkout not a must anymore (as soon as the billing address is fixed)

1 Like

Yes, new payment methods is something I plan to implement in the future. For now I stuck with the ones already supported to simplify the already complex transition to the new API.

The Payment Intents API, the one SCA ready, still doesn’t support SOFORT or iDEAL, but they’re on their to-do.

Apple and Google pay may be possible at the moment with Stripe, but require a different flow in s2Member, so I left those for later, most likely for after I refactor s2’s own APIs to simplify integration of new payment gateways.


1 Like

Another thing - which was also asked quite often and should be very easy
5. [s2If gateway_is(stripe)] some content [/s2if]

And of course for the other gateways like paypal, clickbank, and so on. (actually paypal should have two entries - paypal button and paypal pro for the unlikely case someone offers both on his website.

And yeah - concerning 1. the Modification Confirmation Email really needs to be different depending on payment gateway (or at least have different one for button paypal vs proform like the signup confirmation email).

1 Like

If I may add another “feature”, would be to have subscriptions tightly associated to specific ccaps and upon cancellation, THOSE ccaps in particular could be removed. Right now, I have seen cancellations result in all ccaps being removed (even something that was purchased separately) or no change at all, so the user keeps the access for months after it should have been revoked, until I notice the situation.

I don’t know if it is a simple or easy feature to integrate, but it would make sense in terms of services.

1 Like

ccaps are not linked to subscriptions at all AFAIK. So it depends on your demotion settings if they are kept or not. To have multiple subscriptions (what you are asking for) is not an easy fix - but something pretty complicated. Many people requested this too already but it would need a complete overhaul of how s2member works regarding subscriptions/EOT.

The things I mentioned here should be easy to implement/fix. (some very easy - like the submit button being much bigger - many people do this already via CSS, or proper logic for when to demote and when not when it comes to cancelled payments - actually there is another logical bug for s2member. S2member should not demote an account after the user files a complaint, but after the complaint has been decided in the buyers favour. If you demote a user who complains his account is not working - after demotion he will be correct. Before demotion he may just have a technical problem. Once he gets his money back - his account should be demoted, not before.)

But if I create a button or a form for a subscription and that includes ccaps, then yes, it IS linked to them. That is what a customer subscribes to. And that is what should be removed in case they cancel (not all subscriptions are level based).

You know, that was the first thing I wanted to improve back in 2011 when I started designing what later Jason started calling s2Member X, which never came to be.

This is definitely something I want to make better.

Fun fact, that is when I started with s2Member! (bugging you along the way :wink: )

1 Like

You made me wanna look up my s2 start date. Late 2012 for me.

1 Like