While the Office Is Shut: A Holiday Hours Plan for Elementor Pro Sites
Photo: Jonathan Billinger , CC BY-SA 2.0, via Wikimedia Commons
Start with the calendar, not the widgets
By mid-November, most UK client sites already have a small pile of seasonal requests. The studio closes at lunchtime on Christmas Eve. The phone line is off between Christmas and New Year. The January sale starts on 2 January. Someone wants a festive banner, but not on the blog. And nobody wants to be the person editing twenty pages on 24 December while the mince pies go cold.
The fix is not more discipline. It is fewer places to edit. Treat holiday hours as a small content system: one source of truth, a handful of display conditions, and a scheduled clean-up. Elementor Pro gives you enough tools to do this without turning the site into a fragile house of cards.
Map the blast radius first
Before touching Elementor, open a spreadsheet and list every place opening hours or festive messaging appears. Check the header top bar, footer, contact page, location pages, booking page, WooCommerce notices, form confirmation emails and any global CTA blocks. For a typical UK service client, the same sentence often lives in six places and three of them were added by different freelancers.
Decide what actually needs to change. A plumber may only need a closed notice and an emergency number. A retailer may need festive delivery cut-offs, returns wording and January sale dates. A B2B agency may just need a polite note that replies will be slower until 4 January. The goal is a short list, not a redesign.
One source of truth for opening hours
Create a Global Widget called something like Holiday Hours — Client Name. Put the festive hours in it, plus a short line about response times. Drop that global widget into the header, footer and contact page. When the client changes their mind on 22 December — and they will — you edit one widget and the change propagates.
If the client already uses custom fields, take it a step further. Store the holiday dates and hours in an ACF options page, then pull them into the global widget with Elementor Pro dynamic tags. That gives non-technical editors a single form to update without opening the Theme Builder. Keep the field labels plain: Christmas Eve hours, Closed from, Reopen on. Do not make them guess what a repeater called festive_schedule_2 means.
Let display conditions do the heavy lifting
Wrap seasonal blocks in a container and use Elementor Pro display conditions to control when they appear. A festive notice can run from 1 December to 2 January. A closed banner can start at 12:00 on 24 December and stop at 09:00 on 4 January. Set the site timezone correctly under Settings > General, because a schedule built on UTC will flip at the wrong moment for a Glasgow or Cardiff client.
Use the same approach for CTAs. Hide the Book a call button while the office is shut and show a container with an email link and a clear reopen date. Do not leave a booking widget live if nobody is monitoring the calendar. A booking link that accepts a 27 December slot and then goes unanswered is worse than a simple closed message.
Scheduled popups are useful for a single festive announcement, but keep them restrained. One popup, low frequency, dismissible, and scheduled to end properly. If the client insists on a popup for the January sale, schedule it separately and check it does not overlap with the closed notice. Two popups fighting for attention on Boxing Day is not a campaign strategy.
The staging rehearsal that catches the February problem
Do not test holiday schedules on live. Clone the site to staging, then temporarily shift the display condition dates so the festive state is active now. Load the site logged out in a private window. Check desktop and mobile. Click the CTAs. Submit a test form and read the auto-reply. If the client uses a page cache or CDN, purge it and test again.
Then do the reverse test. Set the dates so the site is in January mode and confirm the Christmas banner, popup and closed notice have all disappeared. This is the step that catches the classic still says Merry Christmas in February problem. Search the staging database for festive, Christmas, closed until and Happy New Year. If those strings live in a global widget, one edit clears them. If they live in twenty pages, you have just found your January homework.
Also check scheduled popups after the holiday period. WordPress cron is traffic-driven, so a quiet site can run late. Open the popup schedule settings after the end date and confirm it is genuinely inactive, not just waiting for a visitor to trigger the clean-up.
The January reset checklist
Book a 30-minute slot on the first working day back. Reset the global widget to normal hours, or clear the festive content and leave the structure in place. End every holiday popup and remove any seasonal containers from the Theme Builder. Check form confirmation emails and WooCommerce notices for leftover dates. Purge caches, then load the site logged out and search for festive language. Finally, update the client's Google Business Profile and any external booking links if they were part of the holiday plan.
A little planning in November means nobody is editing twenty pages on Christmas Eve, and nobody is explaining a stray reindeer in March. That is the whole point of the switch-off.