Two things go wrong with sale announcements: visitors do not notice the sale, and the announcement keeps running after the sale ends. This guide builds one popup that handles both, then shows two ways to stop it on time.
You will need: the offer in one line, the end date and time with a named time zone, and the page the popup should send people to. If you do not have those yet, start with How to Prepare Your Store’s Popups for Black Friday (or Any Sale).
Part 1: Build the announcement popup (all tiers)
1. Add the popup
In WordPress, go to Popup Maker > Add Popup. Give it an internal name you will recognize in a list of twenty popups next year, such as Black Friday 2026 — announcement. The name is not shown to visitors; the popup title is, if your theme displays it.
2. Write the content
Keep it to three parts. For example, a store offering 20% off could use:
- Headline: “Save 20% in our Black Friday sale.”
- Supporting line: “Use SAVE20 at checkout. Ends November 30 at 11:59 pm Eastern.”
- Button: “Shop the sale,” linking directly to the sale collection or offer page.
Use your own discount, code, deadline and destination. Make the code plain text, not an image, so people on phones can select and copy it. If your store applies the discount automatically, say so instead of showing a code. Write the time zone by name; “midnight Monday” means different moments to different visitors.
3. Add the trigger and its cookie
Under the editor, open Popup Settings > Triggers and click Add New Trigger. Choose Time Delay / Auto Open. The delay is in milliseconds; a short delay is usual for an announcement. When you add the trigger, Popup Maker offers to create a cookie with it. Accept it.
4. Set the cookie
Cookies are on the same Triggers tab (the section is Triggers & Cookies), not a separate tab. Click the pencil icon next to the cookie the trigger created. Choose the event:
- On Popup Close if the announcement should stop repeating after the visitor dismisses it.
- On Popup Open if it should stop after it is first displayed, for example if visitors tend to click the button rather than the close control (a close cookie is only set when the popup is closed).
Set Cookie Time to cover the sale, for example 4 days (plain English: seconds, minutes, hours, days, months or years). If you ever add a cookie separately with Add New Cookie, edit the trigger and select that cookie under its Cookie Name setting so the trigger checks it. Save, then load another page without clearing cookies: the popup should not repeat.
This limits repeats in the same browser while the cookie remains. It does not recognize the same person on another device, and a visitor can clear it.
5. Choose where it appears
Open Popup Settings > Targeting. Popup Maker joins conditions in one group with or and joins groups with and; each condition has a not toggle (the warning-icon button labelled “Enable the Not Operand”). Build two groups:
- Group 1, the pages where a visitor should learn about the sale: Home Page or Any Shop Page or All Products. Use the or button to add each condition to the same group. These WooCommerce conditions are part of the free plugin when WooCommerce is active; Easy Digital Downloads stores can use the Downloads conditions and the pages they sell from.
- Group 2, added with the and button: Checkout Page with the not toggle on. Nothing should interrupt someone who is paying.
Do not put the Checkout exclusion in the first group. “Home or Shop or Products or not-Checkout” matches almost every page on the site.
6. Choose the display
Open Popup Settings > Display and pick a preset that fits an announcement: Top Bar, Right Bottom Slide-in or Left Bottom Notice leave the page usable; Center Popup interrupts. A corner position alone does not remove the page overlay; that is a separate setting under Display > Advanced (Disable Overlay). Under Size, choose a responsive size such as Small or Medium rather than a fixed pixel width so it fits a phone screen. Keep the close button visible and large enough to tap.
7. Preview, then hold
Use the editor’s Preview to check the content and layout. Preview shows the popup to you regardless of its status and with a debug trigger, so it does not test your targeting, cookie or schedule; Part 3 covers that. If the sale has not started, leave the popup as a Draft and continue to Part 2.
Part 2: Start on time, stop on time
Free plugin: schedule the start, calendar the stop
A popup is a WordPress post. In the Publish box, change “Publish immediately” to the sale start date and time and click Schedule. Check that Settings > General > Timezone is set to a named city in your region; WordPress schedules in the site time zone.
Two cautions (the scheduled popups doc has the details):
- Scheduled publishing depends on your site’s scheduled-task processing (WP-Cron by default, which runs on visits) and on caching. If the start time matters to the minute, publish it yourself at the start.
- The free plugin does not include a built-in end schedule. Put the end time on a calendar with a named owner and a second reminder for the next morning. Ending the sale means opening the popup, clicking Switch to Draft, then loading the home page in a private window to confirm it is gone.
Pro: schedule both ends and let the popup stop itself
With Popup Maker Pro, open the popup’s Scheduling tab.
- Add a schedule and choose Date Range.
- Enter the Start Date and Start Time, and the End Date and End Time. All Day? covers whole days.
- Leave Local Time unchecked for a shared sale window. The schedule then runs on the site time zone shown next to that checkbox; a named region such as America/New_York follows that region’s clock changes. Checking Local Time applies the schedule on each visitor’s browser clock, which only makes sense when your offer and its enforcement are meant to be visitor-relative.
- Save and publish the popup. Outside the range it is not eligible to show; inside the range it is. Nobody has to click anything on the day.
Running Black Friday and Cyber Monday as separate windows? Add a second Date Range on the same popup instead of cloning it; schedules combine with OR, so the popup is active during either window. The other modes (Start Date, End Date, Chosen Dates, Office Hours) are on the scheduling feature page.
From the makers of Popup Maker
Schedule a notice inside the page
Content Control Pro puts a Date Range on any editor block. The block shows and hides itself in the visitor’s browser on your site’s clock, so it keeps working behind a page cache. Leave User Rules closed for an all-visitors notice. Like a popup schedule, it does not expire the coupon.
Either route: the coupon has its own clock
Treat the popup schedule and the coupon expiry as two separate settings. A popup that stops showing does not stop a code from working, and a popup schedule, local-time or not, does not expire a coupon.
- WooCommerce. Open Marketing > Coupons, edit the coupon and check the expiry field under the General tab. The standard field is date-based, and WooCommerce’s documentation says the coupon cannot be used on the date entered. Confirm the actual cutoff on staging; if the sale must run through the whole of its final day, the expiry date you need may be the following day. Do not assume the field accepts the popup’s exact hour and minute. Usage restrictions and usage limits are separate tabs and do not set the expiry.
- Easy Digital Downloads. Open Downloads > Discounts and check the discount’s own start and expiration settings separately.
If your promotion needs a cutoff the coupon field cannot express, use a verified coupon-scheduling feature or a named manual stop for the coupon as well.
Part 3: Check it on staging
Preview does not test the rules, so run these on a staging copy with the payment gateway in test mode. Give the test popup a window that is active now so you can see positive cases, then move the window to test the boundaries. Do not place a real order.
Before the window:
- Fresh browser profile, home page: nothing shows. The code is refused on a staging cart.
Inside the window:
- Fresh profile, home page: the announcement appears once. Close it. Load the shop page: it does not appear again (same profile, cookies kept).
- Load a blog post: nothing (the targeting groups are not too broad). Load checkout with an item in the cart: nothing.
- On a real phone: the close button is reachable with a thumb, the page scrolls after closing, and the code is selectable text.
- Desktop keyboard: Tab reaches the close control with a visible focus ring.
- The code applies on an eligible cart.
After the window:
- Fresh profile, home page: nothing. Reload a page that was open before the end: nothing. If it still shows, check (free) whether the popup is still Published, or (Pro) the range’s end date, end time and Local Time setting.
- The code is refused.
Features and labels can vary with your installed version and store integration. Use the linked documentation, confirm the required add-ons, and test the actual visitor path before launch.
Frequently Asked Questions
Can I show the announcement on every page?
You can, but the cookie is what keeps it from being annoying: one view per browser, then silence for the cookie period.
Should the announcement collect emails?
Not this one. A sale announcement with a form in it does two jobs badly. If you want to grow the list before the sale, run a separate signup popup in the weeks before, with its own cookie on form submission.
Why did my scheduled popup publish late?
Check the saved status and time zone, your site’s scheduled-task processing and any page cache; WP-Cron is one common cause on quiet sites. Pro scheduling does not depend on WordPress scheduled publishing.