Graphics Cove

WORDPRESS PLUGIN · WOOCOMMERCE

Shop Pause & Hours

A reliable one-tap "stop taking orders" switch and weekly opening-hours schedule for WooCommerce. Built so it never gets stuck closed.

Get it on WordPress.orgSupport and questionsFree · v1.0.0 · Requires WooCommerce · WordPress 6.2+ · PHP 7.4+

Shop Pause & Hours adds a one-click “pause orders” switch to the WordPress toolbar and a weekly opening-hours schedule, with holidays, for WooCommerce stores. When the shop is paused or outside its hours, customers can still browse and build a cart, but the checkout form is replaced with a “we reopen at…” notice and order placement is blocked.

It is aimed at takeaways, cafés and other small shops that close, but it is useful for any store that needs to stop taking orders cleanly.

A pause switch in the toolbar

One tap to stop taking orders, for 30 minutes, an hour, until tomorrow, or until you turn it back on. Resume in one tap.

A weekly opening-hours schedule

Multiple slots per day (open for lunch, close, open again for dinner), overnight slots, and holiday date ranges.

Only checkout is blocked

Customers keep browsing and building a cart. The checkout form is replaced with a clear "we reopen at…" notice and banner, order placement is blocked, and their basket is kept.

BUILT TO BE RELIABLE

It never gets stuck closed

The common complaint about hours and vacation plugins is that they get stuck. The store closes and never reopens, or orders slip through anyway. Those are symptoms of running a time-critical control on WP-Cron and page caches. This plugin avoids that.

No WP-Cron

A pause has an end time. When it passes, it simply stops applying. There is no scheduled job that can fail to fire and leave you closed.

Server-time check on every checkout

The block is enforced by a fresh check when the order is submitted, on both the classic checkout and the block (Store API) checkout. It is not a cached flag.

DST-safe

All schedule maths runs in your site timezone via PHP's date handling. No manual offsets.

Cache-aware

While gated, cart and checkout signal page-cache plugins to bypass them, and the banner re-checks a no-store status endpoint on load, so it still appears on a page cached while you were open.

Never a dead end

The pause switch and the "open now" override are separate controls, and each clears in one tap.

Free, with no account

Hours, holidays, banner, shortcode, block and checkout gating all work with no sign-up. The plugin makes no external HTTP requests and stores no personal data.

Banner, shortcode and block

The closed or reopening notice can appear automatically, or you can place it yourself. It only shows when the shop is closed or paused.

Frequently asked questions

Does it stop people browsing the shop?

No. Only checkout is blocked. Customers can browse and add to cart. On the checkout page the order form is replaced with a notice explaining when you reopen, and their basket is kept.

Does it work with the WooCommerce block checkout?

Yes. The Checkout block is replaced with the same "we reopen at…" panel, and order placement is blocked on the Store API request as well as the classic checkout.

Will it get stuck closed like other plugins?

That is the thing this plugin is designed to avoid. Pauses expire on their own and the schedule is evaluated fresh on each request, so there is no cron flag to get stuck.

Can staff still test checkout while closed?

Yes. With "Staff bypass" enabled (default), any logged-in user who can manage WooCommerce reaches a normal, working checkout while the shop is closed, so you can place test orders. Everyone else is blocked. Always confirm the closed state in a logged-out or incognito window, since your admin session does not reflect what customers see.

Does it work with page caching?

Yes. While gated, cart and checkout tell page-cache plugins to bypass them, and the banner self-corrects on load via a no-store status endpoint. Edge or proxy caches such as Varnish or Cloudflare may need a rule to skip caching on the cart and checkout pages, which is standard for WooCommerce.

I paused the shop but I can still reach checkout. Is it broken?

Almost always one of two things. Either you are logged in as an administrator or shop manager (Staff bypass lets shop staff through, while logged-out customers are always blocked), or the pause has expired (a "30 minutes" pause ends after 30 minutes, so set a fresh one).

Add a pause switch to your store

Free, no account, no external service. Install it from WordPress.org, or get in touch if you need a hand or something custom.