A customer in Brazil finds your product through Google, reads the whole page, adds it to the cart, and fills in the checkout form. Then your carrier tells you it can’t deliver to Brazil, so you refund the order, write an apology, and lose the payment fee. If your WooCommerce store could block checkout for that country, none of that would have happened.
Hiding the product from Brazilian visitors would prevent that, but it has a cost of its own. Hidden pages earn no search traffic from that country. Customers with a forwarding address in a country you do ship to can’t find the product, and a page that looks like a dead link to some visitors erodes trust. Many stores want the reverse: everyone can browse, and only the order is stopped.
That is a specific mode in Country Based Restrictions PRO (CBR PRO). Products stay visible and can be added to the cart, and the country check runs only when the customer clicks Place Order. This guide covers when to use that mode, how to set it up, how to confirm it works, and what it doesn’t cover.
Why hiding products is the wrong fix for most shipping limits
Most country restrictions fall into one of two groups.
Legal or licensing limits. These are about the product itself: a supplement that isn’t approved in one market, or software licensed only for certain regions. If you can’t legally sell or show the product somewhere, hiding it is correct.
Fulfilment limits. These are about where the parcel goes: your carrier doesn’t cover a region, a battery can’t fly to some destinations, or duties make an order uneconomic. The product isn’t the problem, the delivery address is. Hiding the product punishes people for where they browse from, not where they want delivery.
Detection makes this worse. Browse-time restrictions depend on the country WooCommerce detects, usually from the visitor’s IP address. A traveller, a VPN user, or someone buying a gift for a relative abroad gets restricted by their location, not their delivery address. A check at Place Order runs after the customer has entered an address, so the rule is applied to the address that matters.
If your limits are fulfilment limits, block at checkout. For a fuller comparison of the zone-based and product-based approaches, see how to set up country-based shipping restrictions in WooCommerce.
Two ways to block checkout while products stay visible
CBR PRO has four Catalog Visibility modes, and only one is active at a time. Two of them leave the product on display while preventing the order:
| Restrict product only on Place Order (Checkout) | Catalog Visible (non purchasable) + Allow Add To Cart | |
|---|---|---|
| Product shown in shop and search | Yes | Yes |
| Restriction message on the product page | No | Yes |
| Can be added to the cart | Yes | Yes |
| When the customer finds out | On clicking Place Order | On the product page, cart and checkout |
| Best for | Shipping and fulfilment limits | Telling visitors up front that a product isn’t sold in their country |
Use the Place Order mode when the delivery address decides whether you can fulfil the order. Use Catalog Visible when you want visitors from a restricted country warned before they start shopping. The rest of this guide covers the Place Order mode.
How to block WooCommerce checkout by country
Before you start, CBR PRO needs WooCommerce geolocation set up for its IP-based detection. The getting started guide covers this.
Step 1: Choose the Place Order mode
- Go to WooCommerce → Country Restrictions → Settings.
- In the Catalog Visibility section, select Restrict product only on Place Order (Checkout).
- Click Save Changes.
Step 2: Decide which address the rule checks
In the Restriction Settings section on the same screen, Restriction by country defaults to Restriction by Shipping Country. Keep the default for delivery limits. Switch to billing country only if the limit is about who pays rather than where the parcel goes, such as a tax-registration rule.
Step 3: Add the restriction rules
The mode controls when the restriction applies. The rules control which products and countries. You can set them in two places:
- Per product: go to Products → All Products, edit the product, and open Country Restrictions in the Product data panel. Choose Product not Available for selected countries and select the countries, or choose Product Available for selected countries to allow only the countries you list.
- In bulk: use the Catalog Restrictions tab to apply one rule to a category, tag, attribute, shipping class, or your whole catalog. New products in that category are covered automatically. The bulk catalog restrictions guide has the full options.
A shipping class is often the cleanest fit for fulfilment limits. If lithium batteries can’t go to certain countries, a rule on the battery shipping class covers every battery product, including ones you add next month.
A product-level rule always takes priority over a bulk rule for the same product. If a product unexpectedly gets through, check whether it has its own rule.
Step 4: Exempt staff accounts if needed
Restrictions apply to every account, administrators included. If your team places manual orders for customers in restricted countries, add their accounts to Bypass Restriction for Specific Users in Restriction Settings.
What the customer sees at Place Order
Until checkout, the customer shops normally. When they click Place Order with a restricted product in the cart and a restricted country in the address, the order is not created and WooCommerce shows an error naming the product and the country:
Ceramic Table Lamp cannot be shipped to Brazil, so the order cannot be placed.
The cart stays as it is. The customer can remove the item and complete the order for everything else, or change the delivery address to a country you serve.
How to confirm it is working
Test this before a customer does. Use a private browser window, since a logged-in admin account may be on the bypass list.
- In Restriction Settings, turn on Enable debug toolbar. While you’re logged in as an administrator, the storefront admin bar shows the detected country and lets you switch it.
- Open a restricted product’s shop page and product page. Both should display normally, with no restriction message.
- Add it to the cart, go to checkout, and enter a shipping address in a restricted country. Click Place Order. You should get the error above, and no new order should appear under WooCommerce → Orders.
- Change the address to a permitted country and place the order. It should go through.
- If your store uses the block-based Checkout and you have bulk rules, run the same test for a product covered only by a category or shipping-class rule.
Turn the debug toolbar off when you’re done.
What this mode does not do
- It doesn’t warn customers early. Customers only learn about the restriction when they click Place Order. If that would frustrate them, say so in your shipping policy, or use Catalog Visible with Allow Add To Cart.
- It doesn’t restrict shipping methods. The order is blocked for restricted products only. To stop a carrier serving a country, use WooCommerce shipping zones.
- It isn’t for legal restrictions. If a product can’t legally be shown in a country, a visible product page is the wrong result. Use Hide Completely.
- A manually selected country can override detection. A country picked in the CBR country selector widget is stored in a cookie and overrides IP geolocation. If you display the widget, test what happens when a customer picks one country there and enters another at checkout.
- Page caching can interfere. A full-page cache can show one visitor a page rendered for another country. The compatibility guide covers WP Rocket and SiteGround.
If you’re still choosing a tool, our comparison of WooCommerce country restriction plugins explains which plugins block at checkout and which hide the catalogue.
Frequently asked questions
Can I block checkout for a country without hiding products in WooCommerce?
WooCommerce can’t do this on its own. Its selling-location setting limits which countries can check out at all, for every product. Country Based Restrictions PRO adds a mode that blocks the order at Place Order for specific products and countries. Products stay visible and can be added to the cart.
Does the checkout restriction use the IP address or the shipping address?
By default, it uses the shipping country. You can switch to the billing country in Restriction Settings. If Force geolocation is on, the plugin uses the IP-detected country and ignores saved addresses for logged-in customers, so leave it off for checkout-level restrictions.
Does it work with the block-based Checkout?
Yes. CBR PRO validates the order on both the classic checkout and the Checkout block. Run the test above on whichever checkout your store uses, with both per-product and bulk rules, before relying on it.
Can I restrict a whole category instead of each product?
Yes. On the Catalog Restrictions tab you can set a rule for a category, tag, attribute, shipping class, custom taxonomy, or the whole catalogue. Products added later are covered automatically. A rule set on an individual product takes priority over a bulk rule.
Will the restricted products still rank in search?
In this mode, product pages stay published and reachable, so they can be crawled and indexed like any other page. Search rankings depend on more than visibility, but this mode doesn’t remove pages that would otherwise rank.
Can I restrict payment methods by country as well?
Yes. This is a separate feature on the Payment Restrictions tab, which shows or hides individual payment gateways based on the customer’s billing or shipping country. It works alongside any Catalog Visibility mode. See the payment gateway restrictions guide.
Conclusion
If your limits are about where you can deliver rather than what you’re allowed to sell, a hidden product is the wrong fix. Blocking at Place Order keeps every product page live for browsing and search, and stops only the orders you can’t fulfil. It checks the address the customer enters, not where they happen to be browsing from.
Set the mode, add your rules, and test it in a private window before you rely on it. If you want to see which countries generate your orders before you decide where to restrict, start with your geographic sales data.
14-Day Money-Back Guarantee. HPOS Compatible. WPML Ready. Priority Support.
