I’m not fully sure if it is possible to move and if it makes sense - however I will gather below the process what you need to do to try it.
-
Take your website offline - or at least stop any new user registration/payments/whatever - because this will take some time. Backup everything.
-
Export all Users
-
Export s2member settings
3b) Create a set of test users for each level you need - export them with s2member csv file you you can see the format
-
Install Optimizepress and Optimizemember - do not activate Optimizemember until you fully finished installing OPM with all plugins and so on.
-
Deactivate s2member
-
Activate Optimizemember
-
Now here comes the funny part - simply import s2member configuration! Note - the levels you set up may be broken. Most other things are fine. Watch out on the General tab - here some settings are missing.
-
Check Optimizemember Levels and name them the same as s2member levels before
8b. Delete all users that were created with s2member (first of all their role will not work, second OPM does not read in the paypal/stripe fields and EOT field)
-
Create the same set of test users as before with s2member - export them. Check the CSV file format if you need to adjust anything - then import the test users from step 3b). Adjust things if needed. Note this will take long if you have many users - as there is this stupid limitation of 1000 users in one go. Stupidly low limitation of s2/OPM.
-
Redirect https://domain.org/?s2member_paypal_notify=1 to https://domain.org/?optimizemember_paypal_notify=1 so Paypal IPNs arrive properly. With Nginx this is an easy rule in your nginx.conf that does not pose any performance problems. Not sure about Apache.
Same for https://domain.org/?s2member_pro_stripe_notify=1 and https://domain.org/?optimizemember_pro_stripe_notify=1
Now is also the time to protect optimizemember-files folder in your nginx rules plus look for any other specific rules in nginx that you wrote for s2member.
-
Replace all instances of [s2Member with [optimizeMember in your website - I would use the plugin “search-regex” for this. Note that it’s very easy to create havoc here! Test each command on a test site before doing it on the real database or do it before importing/exporting users so you do not have to restart / do another database backup before.
11b Create a symlink from s2member-files directory in plugins to optimizemember-files directory.
11c Rename all instances of [s2If to [opmIf and [s2Get to [opmGet
as well as of course [/opmIf] and [/s2If] - best search case insensitive.
Finally search and replace s2member_ with optimizemember_ and lastly though I think this should not find any occurrence s2member with optimizemember
- if there are too many occurences of one of the terms - use “Better Search and Replace” plugin instead - it does not show nicely where you change something though.
I do end up with several
Post #3093: (s2Member / API Notification Email) - Payment
s2member-api-notification-email-payment-
- not sure if they should be changed too? Such hidden posts do not exist for Optimizemember. They are actually found in the Post-URL table.
If you don’t care knowing exactly what you change or not - you could also run a search/replace for s2member --> optimizemember on all database tables with Better Search and Replace plugin. If you do this - you do not need to export/import members!
- Specifically I ended up with:
wp_options 59 46 2.396 seconds
wp_postmeta 48 48 0.094 seconds
wp_posts 166 134 0.662 seconds
wp_say_what_strings 24 12 0.068 seconds
wp_usermeta 110419 102914 71.778 seconds
I’m a bit wary if I should change those leftover s2member instances in wp_postmeta, wp_posts and wp_options.
Watch out for
[optimizemember
vs
[optimizeMember
Maybe it’s best to run all this search/replaces BEFORE Installing optimizemember! It’s really confusing that they use sometimes optimizemember and sometimes optimizeMember.
11d - If you use custom capabilities they have been ported over in 11c.
-
Actually Optimizemember DOES NOT have a better checkout experience by much than s2member - you can only style it a bit nicer. HOWEVER OPM should be compatible with ThriveCart - actually Optimizepress is using ThriveCart on their own website for the checkout (haha - what a disaster - they sell you something which has same crappy UI as s2member just nicer looking and do not tell you that if you want to have a good looking checkout you need to spend 6x as much as their basic plugin price on Thrive-Cart). So fork out 599 USD plus Sales tax for Thrive-Cart in order to get a nice looking and functional Checkout experience! Well actually you will get one of the best Check Out experiences for that money.
-
I’m not sure if OptimizePress is of any use, I think you can more or less just think of it as whatever - if you want a modern page builder go for Divi, Beaver, Thrive Architect or whatever - but don’t waste your time with OptimizePress. I would install it just to make sure it’s fine.
-
Hope that they solved all those s2member bugs with subscriptions not terminating from time to time, and so on. Test the ■■■■out of it and hope that they honor their support. You have 30 days to return Optimizepress should it be no more stable than s2member. I’m not sure if and which addons for s2member would also work with Optimizemember - because they also never got around turning s2member into a proper membership system with proper user management, proper email system and soever. What you do get is however a really nice modern UI for the checkout with Thrive Cart!
Actually a support team that maybe is actually reacting - but I’m not fully positive here yet.
Is there any reason to change to OPM? Well yes if you also buy Thrive-Cart then yes. 800USD for finally having a good UI on checkout is worth a lot. I did pay some money to program even a small enhancement to a well known programmer on this forum and besides a lot of time lost trying to explain how it should work it took ages for him to understand - and in the end he refunded me the money because he could not find out how to get it running. Thrive-Cart solves all of this. No more emails every couple of days of people complaining about having no account when they got lost on the s2member pro form with UI from the 90s. A/B testing for the leadpages/checkoutpages. Modern payment solutions because Thrive-Cart fully supports Stripe and not only Stripe payment methods from 5-6 years ago like s2member. Well actually here OPM is better than s2member because they already support 3D-Secure (which I really hate but without it declines are ever increasing for German and Dutch customers - not having any problems with other nations credit cards though. )
If s2member would be compatible with Thrive-Cart - then I guess there would be absolutely no need for OPM - however s2member is not.
OPM did organize the menu a bit better and managed to put some things to where they actually belong and removed some options that only have one sensible value anyhow (plus removed some features in their documentation but they still do work of course just like in s2). I’m really not sure they are any better than s2member when it comes to updates though - clicking on changelog on their website is broken. I somehow doubt a certain developer has been behind s2member and OPM and as he does not do much anymore it is doomed in the same ways. Maybe if enough people asked - Thrive-Cart could include support for native s2member instead of the need to go via OPM which is essentially just the same outdated, not finished, unpolished product like s2. If only there was a way to get subscribers into a modern membership system. S2member does many things right - like shortcodes, conditionals, and so on which are a lot easier than modern click here, click there systems. But everything included into s2member pro would really need to be rewritten from ground up, and maybe directly requiring a leadpage/funnel tool like Thrive-Cart instead of trying to write all that from scratch. s2member free is not that bad, but the pro module is really stuck in the past.
I’m not finished yet and still on testing website - above points will maybe still change. I will have to test out their support too. I hope in 1-2 days I can switch to OP2 on my live site and see how it will go. I’ll switch on debugging and lets see. Sadly I’m 99% sure Stripe demotions are as unreliable as in paypal - and let’s see how easy it will be to integrate Thrive-Cart (too bad that only Thrive-Cart advertises compatibility with optimizepress 2 - and not the other way round. Even though of course noone at Thrive-Cart they use the outdated OP2, but OP2 uses Thrive-Cart as it’s the only way to get a nice checkout). Also only then I will be able to tell if my treasured s2 Renewal Reminders by Jonathon Williams (it’s the only reliable renewal reminder for me - as s2emails Pro (s2plugins.com) has inherent problems (i bought it too - but last time I tried it out - 4 month ago - it would not send all emails that should have been sent will still work. If not hopefully it will be easy to adapt.