How to make big changes on a busy membership site

12 views
Skip to first unread message

barbara schendel

unread,
Jan 27, 2023, 9:37:49 AM1/27/23
to Minneapolis St. Paul WordPress User Group
Hi all,

I am hoping to get some more-knowledgeable input on some ways to approach making major upgrades to a busy membership site, because iThemes support has been unhelpful at answering my questions.

We are using Restrict Content Pro, and we have around 1200 members, all of which sign up, expire, renew, upgrade/downgrade or cancel each day. The work we are doing is fairly extensive, including replacing the theme, and changing the page builder from Visual Composer to Beaver Builder (with the beaver builder theme and beaver-themer plugin), which will result in things looking broken while we work. Normally I'd do this work on staging, but when we push from staging back to production, we will lose all user/member activity that took place while we were working. (We know this because last week we had to restore from a backup, which resulted in us losing about six hours worth of member activity, so RCP was sending out erroneous expiration notices.)

So I have two ideas for how to approach this:
1) Do the work on staging, and when it comes time to push to live, exclude all user/member/comment/form tables from the database. Or in other words, perhaps a better way to think of it is that I'll probably ONLY be pushing _wp_options, _posts and _postmeta. 

Has anyone else done this? Are there any other tables which I should or should not be including/excluding? 

2) If the above is too risky or will not work, plan B is to put the live site into maintenance mode for a day or two and do all work on live. Definitely not the way I'd like to do it, but we've done a lot of the intermediate preparation work like converting page content to BB and ACF fields already, so it could be done. 
    My main question here is what are the effects of maintenance mode on RCP activity in the background? To be clear, we DO want RCP to continue to process automatic renewals and expirations while we work, I just don't want users poking around the front end while we work and things look broken. 

    In particular what I want to know about this idea is: Does maintenance mode have any effect on response codes and things happening in the background?  Would it be safer to temporarily change the homepage to some kind of "under maintenance" message without actually going fully into maintenance mode?

Curious to hear some input/advice from people who have done this before, along with any other things to watch out for. The site is busy and the client is anxious, which makes this a little tricky. 

Thank you!

Toby C

unread,
Jan 27, 2023, 10:00:39 AM1/27/23
to Minneapolis St. Paul WordPress User Group
Barbara, Sounds like fun!  My initial reaction is that your idea of migrating database tables might be a workable approach with little downtime.  

Does RCP use its own tables?  

Just brainstorming here - and maybe this is what you were suggesting...  You might also consider a content freeze + migrating all the tables to a new environment that has all the Beaver Builder work done rather than trying to put the Beaver Builder work on top of the existing site.

Toby

--
You received this message because you are subscribed to the Google Groups "Minneapolis St. Paul WordPress User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mpls-stpaul-word...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/mpls-stpaul-wordpress/1d9a334e-1160-41ee-bde3-85e6836319a3n%40googlegroups.com.

Nick Ciske

unread,
Jan 27, 2023, 11:07:00 AM1/27/23
to mpls-stpau...@googlegroups.com
> what are the effects of maintenance mode on RCP activity in the background?

Virtually no effect depending on the MM plugin you use -  if CRON is triggered by web visits, some cron schedules may be missed — depending on how MM is implemented (e.g. if it’s running WP hooks or not). That’s easy to work around with a cron service that makes sure WP CRON gets run.

All most MM plugins really do is keep humans out — bots will still attempt to hit the site, search engines will attempt a crawl and rely later… etc. As far as WP is concerned, unless it’s in the default MM, nothing has really changed IME.

Approach 1 should work, as long as you select your tables carefully and use a tool like WP Migrate that can do smart migrations and can exclude what you don’t want overridden.

Tools like Distributor may allow you to more selectively update content and push it to live, but the theme and BB will need to already be there for that to work.

WP CFM is also something to look into as it allows you to selectively merge config changes at a level most migration plugins don’t support.
https://wordpress.org/plugins/wp-cfm/

Pantheon has an article on this that covers some battle tested approaches to having multiple environments, however it does not cover content moving up the stack… the issue you have.
https://pantheon.io/docs/pantheon-workflow

The “best” approach to this would be to maximize the changes you can deploy at once by putting them in the code VS DB but in a real world scenario, WP is more DB centric and clients want page builders, so there’s limits to what you can do.

_________________________
Nick Ciske
CTO/CISO | LuminFire

barbara schendel

unread,
Jan 27, 2023, 11:14:50 AM1/27/23
to mpls-stpau...@googlegroups.com
Thanks Nick & Toby!

barbara schendel

unread,
Feb 6, 2023, 12:02:13 PM2/6/23
to Minneapolis St. Paul WordPress User Group
Hey all, this is a followup question on the RCP discussion from last week --  I was informed by iThemes support (maker of Restrict Content Pro plugin) that putting the site into maintenance mode WILL cause the gateway to not be able to connect with the server, and therefore this will mess with our renewals/expirations being processed correctly. So my followup question is: does anybody know of a plugin that does a "partial" maintenance mode where it causes all site content to display a custom maintenance message on the front end only, BUT continues to allow communication with the gateway in the back end? Can you think of a way to do this?  I was thinking of wrapping our theme files with some kind of current_user_can function but this seems a little extreme and hard to customize. Any other ideas?

Nick Ciske

unread,
Feb 6, 2023, 12:15:55 PM2/6/23
to Minneapolis St. Paul WordPress User Group
The Coming Soon plugin allows you to whitelist URLs so you could whitelist any webhook URLs.

https://comingsoonwp.com/features/

_________________________
Nick Ciske
CTO/CISO | LuminFire
On Feb 6, 2023, 11:02 AM -0600, barbara schendel <etel...@gmail.com>, wrote:
Hey all, this is a followup question on the RCP discussion from last week --  I was informed by iThemes support (maker of Restrict Content Pro plugin) that putting the site into maintenance mode WILL cause the gateway to not be able to connect with the server, and therefore this will mess with our renewals/expirations being processed correctly. So my followup question is: does anybody know of a plugin that does a "partial" maintenance mode where it causes all site content to display a custom maintenance message on the front end only, BUT continues to allow communication with the gateway in the back end? Can you think of a way to do this?  I was thinking of wrapping our theme files with some kind of current_user_can function but this seems a little extreme and hard to customize. Any other ideas?

--
You received this message because you are subscribed to the Google Groups "Minneapolis St. Paul WordPress User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mpls-stpaul-word...@googlegroups.com.

barbara schendel

unread,
Feb 6, 2023, 12:34:27 PM2/6/23
to mpls-stpau...@googlegroups.com
Nice. Looks powerful. thank you!

Reply all
Reply to author
Forward
0 new messages