HappyCoders Store Hours for WooCommerce
Set the hours your store takes orders. Outside them, ordering is blocked and customers are told when you open again — but they can still browse everything.
What it does
If you cook to order, an order placed at two in the morning is not a sale — it is a problem you find when you open. This closes the till without closing the shop.
Fixed or weekly hours
The same opening and closing time every day, or a different schedule for each day from Monday to Sunday.
Close instantly
One click shuts ordering down — a staff shortage, bad weather, a gas cylinder that did not arrive — without touching the schedule you will want back tomorrow.
Tell them when you open
Customers see when ordering resumes: today, tomorrow, or a named weekday at a set time. Not just “closed”.
Blocked at every door
Add to cart, AJAX and quick add to cart, checkout, place order, and a direct checkout URL are all covered.
Browsing stays open
Products, prices and the whole catalogue stay visible while ordering is closed, so you keep the traffic and the SEO.
Nothing heavy
No external libraries, no tracking, no API calls and no custom database tables. It uses the WordPress Options API.
Setting it up
Four steps, and the longest one is deciding your hours.
- Install and activate the plugin from Plugins → Add New, or upload the folder to /wp-content/plugins/.
- Go to WooCommerce → Store Hours.
- Choose Fixed Daily Hours or Weekly Schedule, and fill in the times.
- Save. Test it by setting the closing time to a minute from now and trying to add something to the cart.
What happens when you are closed
Ordering stops. Nothing else does.
| When the store is closed | |
|---|---|
| Browsing products | Still works |
| Prices and catalogue | Still visible |
| Items already in the cart | Stay there |
| Add to cart | Blocked |
| AJAX / quick add to cart | Blocked |
| Checkout and place order | Blocked |
| Direct checkout URL | Blocked |
Requirements
| Version | 1.0.4 |
| Requires WordPress | 6.0 or higher |
| Requires PHP | 7.4 or higher |
| Tested up to | WordPress 7.0 |
| Database tables | None. Uses the Options API. |
| Works with | WooCommerce themes and quick-view popups |
| Price | Free |
Who it is for
- Restaurants, bakeries and cloud kitchens that cook to order
- Grocery and fresh-produce stores with a delivery cut-off
- Pharmacies and any store where someone has to be there to fulfil the order
- Any store where an order placed overnight cannot actually be delivered
Questions people ask
Can customers still browse when the store is closed?
Yes. Only ordering is blocked. The catalogue, prices and product pages all work normally.
Does it work with AJAX add-to-cart and quick-view popups?
Yes. Every add-to-cart route is blocked while the store is closed, not just the main button.
Does it create database tables?
No. It uses the WordPress Options API and adds no custom tables.
Are items removed from the cart when the store closes?
No. The cart stays as it is — only checkout is blocked, so the customer can finish the order when you open.
Will it slow the site down?
It has no external libraries, no tracking and makes no API calls, so there is very little for it to slow down.
Can I close the store right now, without editing the schedule?
Yes, that is what the emergency closure switch is for. One click, and the schedule is still there when you reopen.
Free on the WordPress plugin directory
Install it from your dashboard, or download the ZIP from WordPress.org.



