Short answer: eight tests, each tied to a way subscriptions fail
A subscription store should run at least eight tests on staging before an update: a new sign-up, a renewal, a failed payment and retry, a payment-method change, a cancel/pause/reactivate cycle, a member-access check, a scheduled-actions check and a checkout check. Each one maps to a failure that otherwise shows up days later with real customers. The pre-update checklist gives the order; this article gives the reasoning and what to record.
What staging is, and what it is not
Staging is a copy of your live site (files and database) where you can change things without affecting customers. It is not a perfect mirror: it usually has different caching, a different server setup and test gateway credentials. Treat a pass on staging as strong evidence, not proof. Make sure a staging copy cannot charge customers or send real emails, and read how WooCommerce Subscriptions treats duplicate and staging sites before you rely on it.
The eight tests
| Test | Expected result | Why it matters |
|---|---|---|
| New sign-up and first payment | Order, subscription and confirmation email created; membership granted if linked | Proves the path from checkout to access |
| Renewal | Renewal order created and paid; subscription stays active | The path that earns recurring revenue |
| Failed payment and retry | Status, retry and customer email match your settings | Retry rules decide how much revenue you recover |
| Payment-method change | New method saved and used for the next renewal | Customers update cards constantly |
| Cancel, pause, reactivate | Status changes and access follow your rules | Cancellation flows are a common source of complaints |
| Member access | Active member sees content; lapsed member does not | Billing and access must agree |
| Scheduled actions | No failed or long past-due actions | Renewals depend on them running on time |
| Checkout | Completes in the classic and Blocks forms you use, on mobile | A checkout error stops every new sign-up |
Trade-offs: staging versus testing carefully on live
Testing directly on a live store is tempting because it shows real behavior, but it can charge real cards, email real customers and change real subscriptions, so do not do it without a backup and a clear reason. Staging is safer but can hide problems that depend on live-only settings. A reasonable approach is staging first for everything and, where a live-only check is unavoidable, a minimal live check on an internal test account after the update, with the backup in place.
What to record
- Versions of WordPress, WooCommerce, Subscriptions, Memberships and your gateway.
- The date and result of each test, and any error text, exactly as shown.
- What you changed to fix a failure, and the retest result.
This record is also what you paste into the book’s prompts so the answers fit your store. See the workspace documentation for how the details are reused.
What staging cannot tell you
It cannot tell you whether a real customer’s card will be accepted next month, how your live host runs cron under load, or how customers will react to a change. Monitor the first live renewals after every update, as the renewal testing workflow describes. For the wider risk picture, read why updates put recurring revenue at risk.
Making staging close enough to live
Aim for the same PHP version, the same plugin versions, a recent copy of the database and the same theme. Differences you cannot remove should be written down, because they are where a false pass hides. Disable anything that would act on the outside world: live gateway keys, outgoing email, webhooks to production systems and analytics events.
Test data to prepare
- One test customer per subscription product and billing period you sell.
- Test payment methods that succeed, decline and require extra authentication, from your gateway’s test documentation.
- Test members on each plan and tier, including one on a trial and one with a sign-up fee.
- A subscription with an aligned (synchronized) renewal date if you use that feature.
Edge cases that deserve their own test
WooCommerce Subscriptions supports free trials, sign-up fees, billing date alignment, switching between plans (with price adjustments), early renewal and resubscribing. Each of these changes the renewal calculation or the status path. If you sell any of them, add a test that exercises it, and compare the amounts and dates with what you promise customers. The book has dedicated categories for trials and grace periods (14), prorated upgrades and downgrades (11) and tax recalculation (15).
How tests give false passes
- Testing only as an administrator, who may bypass restrictions members face.
- Testing with a cached page and mistaking it for fresh behavior.
- Testing a monthly renewal by waiting for the next month instead of triggering it.
- Using live gateway credentials by accident, or test credentials that differ from the live account type.
- Not testing the Blocks-based checkout when customers use it.
How often to rerun
Run the full sequence before every update of WooCommerce, Subscriptions, Memberships, your gateway or your theme, and after any hosting change. Run a shorter version (renewal, access, scheduled actions) monthly, so a slow drift is caught without an update as the trigger.
A one-page test record
Keep a single page for each test run: the date, who ran it, the versions, the eight results, the evidence (screenshots or log lines), the decision, and the follow-up. Paste the summary into the workspace so the next prompt starts from facts. It is the same record the pre-update checklist asks for.
Reading results without fooling yourself
Decide before testing what “pass” means. A renewal that creates an order but leaves it pending is not a pass. A member who can see content as an administrator proves nothing about members. A checkout that works on your desktop may fail on a phone. Capture evidence for each test (order number, status, a screenshot or a log line), and have a second person review it when the update is important. If a result is ambiguous, repeat the test; if it is still ambiguous, treat it as a failure until explained.
Testing the order of events, not just the end state
Subscription problems are often problems of sequence: a status changed before a payment was recorded, an email sent before a plan was granted, access removed before a retry finished. Where your tools allow, read the order notes in time order and check that each step happens when it should. A correct end state reached by a wrong sequence is a warning that a small change in timing could break it.
Who runs the tests
Ideally someone who did not make the change, using a written script. If you are a one-person store, wait a day and run the script fresh, or ask a colleague or freelancer to follow it. The more the test depends on the memory of the person who changed things, the more likely it is to repeat their blind spots.
When staging is not available
Some hosts do not offer staging, and some stores are too large to copy easily. In that case, say so openly and reduce the risk in other ways: update one component at a time, avoid billing-heavy days, have a verified backup, test with an internal account first, and watch the first renewals closely. If you cannot test safely at all, that is a reason to ask your host or developer for a staging environment, not a reason to skip testing.
Sources and verification
WooCommerce, its extensions, WordPress and payment gateways change their features, settings and screens from release to release. The statements in this guide reflect what WooCommerce and WordPress published when it was last reviewed on 5 October 2026, against WooCommerce core 11.1.2 (the stable release listed on the WooCommerce developer blog that day), and may change. Subscriptions and Memberships are separate extensions with their own version numbers: check the versions installed on your own site and the current documentation below before you act, and never test changes on a live store without a backup.
Educational guide only. Not legal, tax, security-audit or financial advice. The Prompt Powerhouse is independent of, and not affiliated with or endorsed by, WooCommerce, Automattic or WordPress. No renewal, retention or sales result is guaranteed.