Overview#
Checkout Test Lab is a free WooCommerce plugin for store owners who want to know their checkout works before a customer finds a problem. It adds one screen, WooCommerce › Test Lab, with four tabs:
- Test checkout: place a real test order through your own checkout, with a payment result you choose and no real payment. The same tab has Preview, which shows the shipping and payment methods a customer would get, without placing an order.
- Checkout check: twelve read-only checks of the settings that most often stop customers paying.
- Test orders: every test order in one list, with one-click cleanup.
- Help: links to this documentation and the support forum.
This guide covers version 1.0.0.
Requirements#
| WordPress | 6.5 or later (tested up to 7.1) |
|---|---|
| WooCommerce | 9.0 or later (tested up to 11.1.2) |
| PHP | 8.0 or later |
| User role | Any user who can manage WooCommerce, such as an Administrator or a Shop manager |
| Checkout | Checkout block or classic checkout shortcode |
| Order storage | High-Performance Order Storage (HPOS) or the older posts storage |
Installation#
From your WordPress dashboard#
- Make sure WooCommerce is installed and active.
- Go to Plugins › Add New Plugin and search for Checkout Test Lab. Look for Qasim Checkout Test Lab for WooCommerce by Muhammad Qasim. If it does not appear yet, install it from the WordPress.org page instead.
- Click Install Now, then Activate.
- Open WooCommerce › Test Lab. You can also use the Open Test Lab link under the plugin name on the Plugins screen.
From a ZIP file#
- Download the plugin ZIP from its WordPress.org page.
- Go to Plugins › Add New Plugin › Upload Plugin, choose the ZIP file and click Install Now.
- Click Activate.
There is no setup wizard and nothing to configure. The first time you open Test Lab, three short tips explain the screen. Click Hide these tips when you no longer need them.
Quick start: your first test order#
- Open WooCommerce › Test Lab. The Test checkout tab is already filled in: a product is picked for you, you are the customer, and the result is Processing.
- Click Start test checkout. Your checkout page opens with the test product in the cart.
- Choose Test payment (no money moves) as the payment method and place the order.
- The order confirmation page shows a result card with the order number, status, stock and emails.
That is a complete test. The rest of this guide explains each option.
Test checkout#
The Test checkout tab has three steps. Each one changes what the test order will look like.
Step 1: What should the customer buy?#
The first product that is published, in stock and has a price is picked for you and marked Auto-picked. To use a different one, type its name in Find a product and choose it from the list.
- You can add up to 20 products, each with a quantity from 1 to 99.
- Add a coupon code in Coupon (optional) to test discounts or free-shipping coupons.
- The search lists simple products and product variations that are published, in stock and priced. Other types, such as subscriptions and bundles, are not offered.
Step 2: Who is buying?#
The customer is Me: your own name and email address. Set the Country, State and Postcode of the address you want to test. These decide which shipping zone and shipping methods apply, so change them to test other regions.
The address is filled in on the checkout for this test only. The addresses saved in your own account are not changed.
Step 3: What should the payment do?#
Choose the result the test payment should have. The plugin applies it when you place the order.
| Group | Result | What happens |
|---|---|---|
| Payment works | Processing | Paid, and waiting for you to send it. The most common result. |
| Completed | Paid and sent. Use it to test the order complete email. | |
| Payment waits | On hold | Waiting for payment, like a bank transfer. |
| Pending payment | The order is saved but not paid, like a customer who left during payment. | |
| Payment does not work | Fails | The payment is refused and the customer sees an error. The test stays on, so you can try again or end it. |
| Cancelled | The order is cancelled straight away. | |
| Refunded | Paid, then fully refunded. Use it to test refund emails. |
Two cases are normal WooCommerce behaviour and the result card tells you when they happen: an order with a total of zero has no payment step, and an order with only downloadable products may be marked Completed even when you chose Processing.
More options#
Open More options under step 3. Your choices are saved for the next test.
- Leave stock unchanged
- On by default. Test orders do not reduce stock. Switch it off to check that stock goes down as it should.
- Send order emails
- On by default. WooCommerce sends its normal order emails. Customer emails go to the test customer, which is your own email address. Switch it off to place quiet test orders.
- Remove test orders after
- Never, 1 day, 7 days or 30 days. The default is 1 day. See Automatic removal.
- Show developer links
- On by default. Shows or hides the developer card on the Help tab and the "Stuck? Get help" link at the bottom of the screen. The documentation and support forum links always stay.
During a test#
Click Start test checkout. Starting a test replaces your own cart with the test cart, and your checkout page opens. While the test runs:
- A dark notice at the top of the checkout shows a TEST MODE label, the line No real payment will be taken. and the result you chose, for example Result: Processing. It has an End test button.
- The WordPress toolbar shows Test mode on, ends in N min, with links to Open Test Lab and End test.
- A payment method called Test payment (no money moves) appears at checkout. Only you can see it.
A test ends by itself after one order or 30 minutes, whichever comes first. To stop early, click End test.
The result card#
After you place a test order, the order confirmation page shows a card that only you can see. It tells you the order number and status, whether stock was changed, and whether emails were sent and to which address.
The card has four buttons: View order, Run again (opens Test Lab with the same choices), Delete this test order and Go back to Test Lab.
Preview#
Preview answers the question "what would a customer see?" without placing an order. It uses the products, coupon and address from steps 1 and 2. Click Preview what the customer sees and the result appears below the form.
Preview never changes your own cart, your account or any order.
Shipping methods#
Preview shows the shipping zone that matched the address and its position in your zone list. Then it lists every shipping method in that zone. Each one is marked OK (the customer can choose it) or NO (it is hidden), with the price or the reason.
| Reason shown | What to do |
|---|---|
| No shipping zone matches this address, so no shipping method can show. | Add the country or region to a zone, or add a method to "Locations not covered by your other zones". |
| The matched zone has no shipping methods. | Add a shipping method to that zone. |
| Switched off in this zone. | Switch the method on in the zone settings. |
| Needs a minimum order amount. Shows the minimum, the cart total and how much is missing. | Expected if the cart is too small. Lower the minimum if it is wrong. |
| Free shipping needs a valid free-shipping coupon. | Add a free-shipping coupon in step 1, or change the free shipping rule. |
| A shipping zone for this country needs a postcode or state, and none was entered. | Enter a state or postcode in step 2. |
| Your store does not ship to this country. | Check WooCommerce › Settings › General › Shipping location(s). |
| Nothing in the cart needs shipping. | Expected for downloads and services. |
| Hidden by code, not by a setting. | Another plugin or your theme removed the method. Preview names the plugins and themes that change shipping methods. |
Most reasons have a Fix button that opens the right settings page.
Shipping prices in Preview are shown before tax. Tax on shipping, if any, is added at checkout.
Payment methods#
Preview lists your payment methods and says which ones are switched on. It gives a reason only when it can be sure from your settings, for example:
- The payment method is switched off.
- Bank transfer shows, but no bank account details are set, so customers will not know where to send money.
- Cash on delivery is limited to certain shipping methods, and none of the shown ones matches.
- Cash on delivery is not allowed for orders with only downloads or services.
- The cart total is zero, so no payment step is needed.
- On the block checkout, Preview could not confirm that the payment method supports it.
Preview cannot test payment methods. A payment plugin can hide itself at checkout for its own reasons, such as currency, country or order amount. If a method is switched on in Preview but missing at checkout, run a real test checkout and check that payment plugin's own settings.
Copy report#
Copy report copies the Preview result as plain text, with your plugin, WordPress, WooCommerce and PHP versions, the checkout type and the order storage type. It contains no names, emails, addresses or postcodes, so you can paste it into a support request.
Run this exact cart as a test order#
This button starts a test checkout with the same products, coupon and address you just previewed, using the result selected in step 3.
Checkout check#
The Checkout check tab looks at your store settings and gives one verdict at the top, for example Your checkout looks ready. It runs the first time you open the tab. Click Recheck after you change a setting. The checks only read settings. They change nothing.
Each result is marked Fail (customers may not be able to pay), Warning (worth a look), Info or OK. Problems come first and each one says what it means and what to do, with a Fix button. Passed checks are grouped under Show passed checks. When a result changes between two runs, a Changed since last check line lists it.
The twelve checks#
| Check | What it looks for |
|---|---|
| Checkout page | A checkout page is set, published and has a checkout form. It also tells you whether it is the block or the classic checkout. |
| Cart page | A cart page is set and published. |
| Payment methods | At least one payment method is switched on. |
| Payment test mode | A payment method that may still be in test or sandbox mode on your live store. Skipped on local sites. |
| Shipping coverage | Every country you sell to gets at least one shipping method. |
| Shipping zones | Every shipping zone has a shipping method switched on. |
| Guest checkout | New customers can check out, either as guests or by creating an account. |
| Store basics | Store country, currency and address are filled in. |
| Tax rates | When taxes are on, at least one tax rate applies in your store country. |
| Products | At least one product is published, in stock and priced. |
| HTTPS | Your checkout address starts with https://. Skipped on local sites. |
| Page cache | A known page-cache plugin is active. If so, make sure the Cart, Checkout and My account pages are not cached. |
The Test checkout tab also shows the latest verdict in a short line at the top, with a link to this tab.
Test orders#
Every order placed during a test is marked as a test order. It gets a TEST label in the WooCommerce orders list and a note in the order history. The Test orders tab lists them with the order number, date, result, total and shipping method.
The Result column shows the result you chose. If WooCommerce set a different order status, for example when it completes an order that only has downloads, the status is added in brackets: Processing (order status: Completed).
Delete test orders#
Click Delete all test orders and confirm with Delete test orders. A progress bar shows how many are done. Orders are deleted in small batches, so large numbers of test orders do not time out. To delete one order, use Delete this test order on its result card.
Only orders created by Checkout Test Lab can be deleted this way. Real orders are never touched.
Automatic removal#
Choose how long to keep test orders in Remove test orders after: Never, 1 day, 7 days or 30 days. The default is 1 day. A daily background task deletes test orders older than that. The cleanup runs once a day, so a test order can stay for up to a day longer than the setting.
Test orders and your reports#
Test orders are real WooCommerce orders under your own account until they are deleted. That means Processing and Completed test orders can appear in sales reports and Analytics, and a coupon used in a test counts as used. Delete test orders, or keep automatic removal on, to keep your numbers clean.
Help tab#
The Help tab gathers the places to get an answer: this documentation, a short list of its main sections, and the WordPress.org support forum. It is a read-only screen. It saves nothing, sends nothing and contains no form.
If Show developer links is on, it also shows a card about the developer with links to the developer website and to the plugin page. Switch the option off in More options to hide it.
Safety and privacy#
- The test payment method is available only to a logged-in user who can manage WooCommerce, and only during a test that user started. The plugin checks this again when the order is placed, on both the block and the classic checkout.
- Each test start link works once and expires after five minutes.
- A test ends after one order or 30 minutes.
- The plugin never completes, refunds, edits or deletes an order it did not create.
- No data leaves your site. There is no tracking, no external request and no account.
- The plugin loads no scripts or styles for customers or visitors.
Test customer details and test orders are stored only on your site. The plugin adds a short suggested paragraph to Settings › Privacy that you can copy into your privacy policy.
Limitations#
- It does not talk to real payment providers, so it cannot prove that a real card payment will succeed. Use your payment provider's own test mode for that.
- It does not monitor real customer failures.
- Preview lists payment methods but cannot test them.
- Preview shows shipping prices before tax.
- The product search offers simple products and variations only.
- If the cart or checkout pages are cached, tests may not work as expected. The Checkout check warns you when a page cache plugin is active.
Troubleshooting#
The test payment method does not show at checkout#
- Check that the test is still running. The toolbar shows Test mode on while it is. If it has ended, start a new test.
- Use the same browser and the same logged-in account that started the test.
- Your user must be able to manage WooCommerce, such as an Administrator or a Shop manager.
- If you use a page cache plugin or a host cache, exclude the Cart, Checkout and My account pages.
"That test link has expired" or "already used"#
Each start link works once and only for five minutes. Go back to Test Lab and click Start test checkout again.
A product does not appear in the search#
The search shows only simple products and variations that are published, in stock and have a price. Check the product's status, stock and price.
Test order emails do not arrive#
Check that Send order emails is on under More options. Customer emails go to your own address. If WooCommerce emails do not arrive at all, the problem is usually the site's mail setup. A mail log or SMTP plugin will show whether the emails were sent.
Preview and the real checkout show different shipping methods#
Some plugins change shipping methods with their own code, and not all of that code can run in Preview. When this happens Preview says so. Run a real test checkout with Run this exact cart as a test order to see the final list.
A payment method is switched on but missing at checkout#
The payment plugin is hiding itself for its own reasons. Common causes are a currency or country it does not support, a minimum or maximum order amount, missing API keys, or no support for the block checkout. Check that plugin's settings or ask its developer.
Frequently asked questions#
Can customers see the test payment method?#
No. It appears only for a logged-in user who can manage WooCommerce, and only while a test that user started is running.
Can I use it on my live store?#
Yes, that is what it is built for. Customers never see the test, and only test orders created by the plugin can be changed or deleted by it. Remember that test orders count in reports until they are deleted.
What happens to my own cart?#
Starting a test replaces your own cart with the test cart.
Will a test order reduce my stock?#
Not by default. Switch off Leave stock unchanged under More options when you want to test stock changes.
Does it work with High-Performance Order Storage?#
Yes. Test orders are created and deleted through WooCommerce's own order functions, with HPOS on or off.
Does it send data anywhere?#
No.
Uninstall#
Deactivating the plugin removes the test payment method. Deleting the plugin from Plugins also removes its settings, test sessions and background task.
Delete your test orders first. Deleting the plugin does not delete test orders, because they are WooCommerce orders. Use Delete all test orders before you delete the plugin.
Support#
Ask questions and report problems on the WordPress.org support forum. For anything else, contact the developer.
When you report a problem, include the text from Copy report and tell us which checkout you use (block or classic).
Changelog#
1.0.0#
- First release.