Step 3: Cutover and rollback
Every member moves to FMS at once, on one morning. PMPro stays switched on for two or three days after, so going back is a click. Then PMPro is switched off. Do each step when someone who can roll it back is available.
You'll need
- Step 2 done, and every check under Verify before going on passed
- The morning agreed with the Business owner (decision cards 18 and 52)
- An Owner or Membership manager sign-in on the admin portal
- Thomas at the FMS server, and a WordPress administrator here
1. Before you start
- In the admin portal, run the Stripe import on each account and the member import again. Then press Verify. It must find no problems.
- Thomas makes the Stripe accounts writable and arms Stripe writes. From the hand-over on, FMS charges, changes and cancels for members.
Do not swap the member pages yet
Swap pages replaces PMPro's own account, checkout and cancel pages. PMPro needs those pages if you roll back in the days after. Swap them in step 7, when PMPro is switched off.
2. Flip the gate on
Press Flip ON, or tick Enable FMS gating in the plugin settings. Nothing changes for readers yet. Every imported member is still On PMPro, and PMPro serves them exactly as before.
The settings page banner now reads FMS is serving handed-over members.
3. Hand over everyone
In the admin portal, open Settings → Migration (the Cutover page) and press Hand over everyone… in step 3 of The morning. The steps are on Hand everyone over to FMS. Still on PMPro must then read 0.
Every member is served by FMS within about five minutes.
4. Send new members to FMS
Right after the hand-over, tick Send people who join to FMS’s signup and checkout under New members join through FMS in the plugin settings. People who join from then on go through FMS. See Tools and buttons.
Hand over first, then this switch. A join then lands with everyone already on FMS.
5. Check the first hour
Press Run sweep. It fetches every member-facing URL and reports the response codes, any leftover shortcode text, and any new errors.
Then check, in this order:
- A card member, a free member, a team admin, a seat and a Community member each sign in
- Each sees FMS's account page, and card members reach the Stripe billing page
- A members-only article opens for a paying member
- Signed out, Join opens FMS's sign-up page
- A member whose plan includes the archive presses the archive button and lands in it signed in
- The plugin settings page lists no surprises under PMPro changes to handed-over members
- Health shows the Mailchimp queue going down, and no new dead letters
Live mode
Joining now takes real money. Check a join with a real card and refund it, or wait for the first real member.
If a check fails, see Rolling back.
Why the archive is checked only after the hand-over
While PMPro is switched on, the website shows the archive button only to members FMS serves. Before the hand-over that is nobody, so there is nothing to check yet.
6. The days after
PMPro stays switched on for two or three days. The Business owner decides how many. This is the only time going back is a click.
- Change members in the admin portal only, never in PMPro.
- Each morning, read PMPro changes to handed-over members in the plugin settings.
- Watch Health and the support inbox.
- Someone missing from FMS? Import again, then hand them over from their member page. See Stragglers.
7. Switch the old plugin off
This is the point of no return
Up to here, the master switch or a hand-back restores the old behaviour. Once the old plugin is off, going back is a restore, not a click. Do this only after the days of watching.
- On the Migration page, Still on PMPro must read 0.
- Read the PMPro changes to handed-over members list in the plugin settings one last time. No PMPro gift or discount codes are outstanding (owner, 27 Oct). If one turns up, grant the membership by hand: see Give a member free access.
- Press Swap pages. The old account, invoice, cancel and pricing pages get the FMS shortcodes. The originals are kept, so Rollback puts them back exactly.
- Press Sync restrictions from PMPro once more. Articles filed into a locked category since the last sync get their lock now.
- Press Open PMPro cutover panel. It refuses to deactivate while any blocking check fails. It never deletes data.
- Press Run sweep again once PMPro is off.
These checks must pass:
| Check | Fails while |
|---|---|
| Every member handed over | Anyone is still on PMPro, or FMS cannot be asked |
| New members join through FMS | That switch is off |
| Page restrictions synced | An article in a locked category has no lock |
Three more rows are warnings, never a stop.
If FMS cannot be reached says what an FMS outage will do once the old plugin is off. It passes when signed-in members keep their last answer from FMS for some hours (24 by default). It warns when If FMS is unreachable is Keep content locked, or the hours are 0: an outage would then lock every member out. Decision card 20 chose 24 hours. See the outage setting.
[membership] shortcodes inside articles counts the articles that hide part of their text with the old plugin's [membership] shortcode. Since plugin 0.56.0 this plugin answers that shortcode itself, by membership tier. A level written with a minus sign (-2) shows to everyone who is not on exactly that level, as the old plugin did (since 0.56.1). After deactivating, open one or two of them signed out and signed in: the hidden part should stay hidden from visitors and show for members. If the row names a level number it doesn't know, those parts open only to Fanatics until Thomas adds the level; a part that excludes an unknown level (minus sign) is hidden from everyone.
Subscription delays appears when the old plugin's Subscription Delays add-on is on. It lists each level whose first payment waits some days. Give the matching FMS plan the same number in First payment after (days) (FMS console → Plans, Plans) before new members join through FMS. FMS takes these by card through Stripe only.
8. Clean up Mailchimp
On the day, Mailchimp still carries the old plugin's newsletter labels. People who stopped paying still hold paid newsletters. This step corrects them. Thomas does it, once the old plugin's Mailchimp add-on is off.
A few hours of Mailchimp updates
With a full member list this can queue thousands of updates, up to about 20,000. They go out in the background, a few at a time. New members are still updated first. How long it takes was measured before the day.
- Thomas switches Mailchimp fixes on for the window. The Consolidation badge turns red: Mailchimp fixes armed.
- In Consolidation, run FMS ↔ Mailchimp. Wait until it finishes and is not incomplete.
- Press Update all drifting. Read the preview counts, then apply. It is one press.
- Watch the queue go down on Health. Then run the check again.
- Run Mailchimp → FMS, then Strip all… for people with paid labels who are not members.
- Thomas switches Mailchimp fixes off again. The badge says off for the live audience.
Do not edit plan newsletters during the clean-up
Changing a plan's newsletters queues one update for every member on it. Wait until the clean-up has finished. The plan editor asks first when a change would update more than about 1,000 members.
Why there is no pause button for Mailchimp
The server setting CRM_SYNC_DISABLED does not pause the queue. It throws the queued Mailchimp updates away without sending them. If it is ever used, run FMS ↔ Mailchimp again and Update all drifting afterwards. The technical steps are in docs/migration-runbooks/README.md, Phase C.
Rolling back
| How far along | How to undo |
|---|---|
| Gate flipped on, nobody handed over | Flip OFF, or untick the master switch in settings. |
| Everyone handed over | Untick the master switch. The website is PMPro's again in seconds. Then press Hand back everyone… on the Cutover page. |
| One member has a problem | Hand back on their member page. Only that member goes back. |
| Pages swapped | Rollback in the assistant. |
| Old plugin deactivated | Reactivate it, then untick the switch. Check billing carefully. |
Anything beyond that is a database restore. See ops/RUNBOOK.md.
The switch only changes the website
Unticking the master switch gives the website back to PMPro. FMS still acts for members it serves, for example their Mailchimp labels, until they are handed back. To hand everyone back, press the red Hand back everyone… in the Cutover page's Go back card.
A hand-back does not undo everything
A cancel or plan change a member made through FMS stays in Stripe. PMPro's copy of a free or bank-paid change made in FMS is out of date. Fix it in PMPro by hand. Members who joined through FMS stay with FMS.