Shipping Contract Guard checks whether WooCommerce still shows the shipping options and prices you saved as correct.
Start with one test product, one made-up destination, and one correct shipping result. For a supported free-shipping rule, the plugin recommends three cart totals: the closest amount below the minimum after taxes and coupons, the first amount that reaches it, and the next amount above. Rounding can make an exact match impossible. You see the shipping options and prices WooCommerce returns before saving anything. Shipping prices follow your WooCommerce cart tax-display setting. Every later check compares the current result with the one you saved, so a changed result cannot silently become normal.
The dashboard gives you one clear status:
Everything works,
Problem found, or
Could not verify. When something differs, it explains the shopper impact and the next thing to check. The plugin does this without creating a checkout, customer, or order.
Local mode is free and requires no account:
- create checks from supported WooCommerce Flat Rate, Free Shipping, and Local Pickup settings;
- save an exact shipping option and price returned by an enabled method after reviewing how the check will run;
- run made-up test carts without creating a checkout, customer, or order;
- distinguish Everything works, Problem found, and Could not verify;
- review which enabled shipping options appear in a saved check and which checks may be affected by recent store changes;
- keep up to 90 days of check history in WordPress and download a spreadsheet file (CSV), technical file (JSON), or readable report;
- preview turning one supported WooCommerce shipping option on or off, run every saved check, and restore the old setting if needed;
- save one working setup and restore it later; or
- make a time-limited change and confirm when the original setting works again.
Operator is an optional EUR 29 a month service for one store. It adds scheduled checks, checks after changes, warnings when a scheduled check is missed, email alerts, a responsible person or role, and a passing follow-up that confirms the fix. It sends only the limited information described below. Returning from checkout does not start paid service. Operator starts only after Stripe confirms the subscription and the plugin receives current permission to run.
Deliberate limits
Coverage has limits. Unsupported shipping options, unsafe test carts, and incomplete or unclear calculations remain
Could not verify. Shipping Contract Guard does not claim that every checkout path is tested or that an earlier settings change caused a problem.
Automatic suggestions read only supported WooCommerce settings. For other enabled shipping options, a saved check uses only the options and prices WooCommerce returns. The plugin never reads carrier passwords or private provider settings. Running a check may cause a live-rate option to request its normal quote for the made-up cart and destination.
The plugin does not create orders, submit checkout, process payments, buy labels, contact shoppers, or grant remote control over shipping. After you preview and approve the action, it can turn one supported WooCommerce Flat Rate, Free Shipping, or Local Pickup option on or off. It cannot change prices, thresholds, destinations, zone order, products, coupons, provider settings, orders, payments, or labels.
- Install and activate WooCommerce.
- Install and activate Shipping Contract Guard.
- Open WooCommerce > Shipping Contract Guard.
- Choose Set up the recommended check when a supported rule is detected. Otherwise open Customize and choose Create a custom shipping check.
- Review the made-up test carts, expected shipping options, and prices.
- Choose Save and run first check.
Planning, coverage, and safe setting-change tools stay inside the Advanced sections. You do not need them for the first check.
Deployment tooling may run
wp shipping-contract-guard verify. Exit 0 means every required check passed, 2 means a required check failed, 3 means at least one check could not finish, and setup or execution errors use exit 1.
Taxes in test carts
Test cart amounts follow your WooCommerce product-price entry setting: including or excluding tax. The plugin uses WooCommerce to calculate taxes, coupon adjustments, shipping taxes, and free-shipping eligibility. Review the calculated results before saving. Split packages must share one customer destination. Checkout fees, customer VAT exemptions, and different destinations within one taxed cart are not simulated.
Upgrading to 1.10.1
After updating, run your saved checks. If you have an open preview from before your saved checks changed, create and review a new preview before saving. For a destination with a state or province, check that it is correct. A result from an older saved version is history; run the current checks to see whether they work.
Upgrading from before 1.10.0
Update the plugin, then open your saved checks. If taxes are enabled, create and approve a new preview for each older saved rule when prompted. Check the displayed shipping prices before approving; do not save a result that is already wrong. Run all saved checks and capture a new known-good state before using saved-state recovery. Earlier known-good captures remain in history but are unavailable for recovery.
1.10.1
- Keeps newer local failures visible when Operator returns an older automatic result, while preserving missed-check and open-problem warnings.
- Requires results to match the current saved checks and rejects previews made before those checks changed.
- Adds state or province selection for test destinations and uses it for shipping zones and taxes.
- Makes physical products on later pages available during setup and puts essential custom-check fields first.
- Clearly distinguishes unverified previews from carts with no shipping option, and requires confirmation before saving a new expectation that a cart cannot ship.
- Explains changed settings and affected checks in plain language, and keeps the optional Operator offer accurate when checks are failed or out of date.
1.10.0
- Calculates test-cart taxes, shipping taxes, and coupon discounts through WooCommerce. Free-shipping examples now follow the actual minimum after taxes, discounts, and rounding.
- Compares shipping prices using the store's cart tax-display setting. On stores with taxes enabled, older saved checks need a new preview and approval before they can run.
- Checks every saved test cart afresh before saving a known-good state. Capture a new known-good state after upgrading; older captures cannot be used for recovery.
- Detects tax-setting and tax-rate changes and explains them in the shipping-change report.
- Restores a temporary shipping setting even if saved checks have changed. Separately reports whether the restored setup could be checked.
- Isolates checks from the signed-in manager's customer identity and honors each site's data-deletion choice during network uninstall, with failed cleanup available for retry.
1.9.4
- Calls preview rows test carts until they are saved, so the first-check screen no longer describes unsaved examples as saved checks.
- Labels passing history results as working and describes affected configuration-change cases as saved test carts.
- Changes no shipping calculation, stored data, external data transfer, price, billing rule, or product authority.
1.9.3
- Makes temporary shipping changes and restores more reliable when work is interrupted or repeated.
- Keeps scheduled and after-change checks pending until current Operator permission is available.
- Prevents overlapping background workers from clearing or repeating another worker's task.
- Rejects unclear or impossible dates instead of treating them as current settings or service permission.
- Replaces broad directory tags with terms that describe the WooCommerce shipping areas the plugin checks.
- Changes no shipping result, price, billing rule, or information sent to Operator.
1.9.2
- Aligns customer copy with Cochrane Style Manual guidance and adds current WordPress 7.1 compatibility evidence.
- Changes no shipping result, store setting, entitlement, external data transfer, billing rule, or price.
1.9.1
- Rewrites the plugin screens, notices, privacy text, listing, and screenshot captions in plain language.
- Uses consistent terms for saved checks, test carts, shipping options, problems, scheduled checks, and passing follow-ups.
- Moves technical IDs and integrity codes into clearly labeled technical details.
- Changes no shipping calculation, stored data, information sent to Operator, price, or billing rule.
1.9.0
- Makes the first saved check a clear recommendation with one product, one location, and three important cart totals.
- Keeps custom setup available under a plain “Customize” control.
- Leads each result with the saved check, what customers may see, and what to review next.
- Adds tests for approved shipping results returned by WooCommerce.
1.8.1
- Updated the downloadable report to use WordPress's approved way of adding its visual styles.
- Updated plugin database queries to use WordPress's approved placeholders for table names and values.
1.8.0
- Simplified the main navigation and moved planning, coverage, and safe setting-change tools under Advanced sections.
- Added privacy-safe Site Health information, a diagnostic download, optional WooCommerce logging with strict limits, and direct documentation and support links.
- Added a reviewed on/off change for one supported WooCommerce shipping option, a saved passing setup, and a time-limited change that restores the old setting.
- Kept these setting-change tools local and free. Operator remains optional and cannot change prices, thresholds, destinations, zone order, provider settings, orders, payments, or labels.
1.7.2
- Added persistent navigation, task-first setup, clearer Operator setup results, and accessible controls for different screen sizes.
See
CHANGELOG.md in the source repository for the complete private development history.