The worst online order is the one that arrives at 11:40pm when the kitchen closed at 10 — paid for, expected, and impossible to fulfil. WooCommerce will happily take orders 24/7 because it was built for products that ship, not food that's cooked. If you run a restaurant on WooCommerce, you need business hours that actually gate ordering. Here's how.
Why 24/7 checkout breaks food businesses
An order placed while you're closed creates three problems at once: a customer who expects food that isn't coming, a refund you have to process manually (with the card-fee loss), and — if you auto-print to the kitchen — a ticket nobody sees until morning. Disabling the whole store overnight with a maintenance plugin technically works, but it also hides your menu from late-night browsers who'd happily order for tomorrow.
The three ways to do it in WooCommerce
- Manual: toggle the store or payment methods off every night. Free, and you'll forget exactly once before abandoning it.
- Standalone store-hours plugins: several exist and work; it's one more plugin to license, update, and keep compatible with checkout changes.
- Built into your POS integration: if you're a Clover merchant on CloverWoo, Business Hours ships in the restaurant feature pack — one toggle, no extra plugin.
Setting up Business Hours in CloverWoo
- WordPress admin → Clover → Settings → Restaurant Features.
- Toggle on Business Hours.
- Set open and close times per day — different hours per weekday are fine, and closed days are just left off.
- Save. Outside the window, checkout is blocked and a 'Closed' banner appears on shop pages automatically.
Two details matter for restaurants specifically. First, overnight hours are supported — a kitchen open until 2am is a close time of 02:00 the next day, and the window math handles the midnight crossover. Second, the menu stays browsable while closed: customers can look, they just can't pay. You keep the SEO traffic and the cravings; you skip the unfulfillable orders.
Edge cases worth knowing
- Orders already in checkout when the clock crosses closing: the validation runs at payment, so a cart built at 9:55 can't slip through at 10:05.
- Timezone: hours follow your WordPress timezone setting (Settings → General) — set it to your restaurant's local timezone, not UTC.
- Holidays: for one-off closures, toggle the feature's closed state for the day; for scheduled holidays, plan a closure list in advance.
Frequently asked questions
Can WooCommerce block orders outside business hours natively?
No — core WooCommerce takes orders around the clock. You either toggle things manually, add a store-hours plugin, or use an integration like CloverWoo where per-day business hours with checkout blocking are built into the restaurant feature pack.
Does CloverWoo support overnight hours, like open until 2am?
Yes. Set the close time past midnight (e.g. open 17:00, close 02:00) and the overnight window is handled correctly — orders at 1:30am go through, orders at 2:30am see the Closed banner.
Is the shop hidden while closed?
No — and that's deliberate. The menu stays fully browsable for SEO and for customers planning ahead; only checkout is blocked, with a clear Closed banner so nobody is surprised at the payment step.
What if I'm not a restaurant?
Business Hours is part of CloverWoo's opt-in restaurant pack and is off by default. Retail stores that want it (e.g. same-day local delivery cutoffs) can toggle it on; everyone else sees zero change.