The same sale popup reads differently depending on who is looking at it. A first-time visitor sees an offer. A customer who bought yesterday at full price sees a reason to ask for a refund. A wholesale account sees a code that is not meant for them, and emails support to ask why it does not work.
This guide sets up the rules that keep each group seeing the right thing, then walks through the rehearsal. It starts with what the free plugin can do and names the Pro and Pro+ conditions where they are needed. Condition names below are the ones in the popup editor’s Targeting tab; your installed version and store integration may differ, so check the editor rather than assume.
Decide the four states first
Write one line for each:
| Visitor state | What they should see during the sale |
|---|---|
| Logged-out visitor | The announcement, then the exit reminder if they leave a product or cart page. “Logged out” is not the same as “first-time”; a returning customer who is not signed in looks the same to the site. |
| Logged-in customer | The announcement without “new customer” wording, or nothing if the offer is for new customers only. |
| Member, subscriber or wholesale role | Their own message, or nothing. |
| Recent buyer | An eligibility line that still reads correctly after a purchase, and no repeat reminders in the browser they bought from. |
If a row says “nothing”, that is a targeting rule you must add, not a default.
How the Targeting tab combines rules
Popup Maker joins the conditions inside one group with or and joins separate groups with and. Each condition has a not toggle (the warning-icon button in front of it, labelled “Enable the Not Operand”). The popup loads only when every group has at least one passing condition. In practice: pages go in one group, and each exclusion gets its own and group. Putting an exclusion in the same group as the pages turns it into “or not”, which matches almost everything.
Free plugin: target by place, not by person
The free plugin targets by content: which pages, posts, categories, and (with WooCommerce active) Any WooCommerce Page, Any Shop Page, Cart Page, Checkout Page, Account Page, Is Endpoint, All Products, Products: Selected and Products: With Product Category. It does not know whether the visitor is logged in or what role they have. Within that limit:
- Keep sale popups off the checkout. Add Checkout Page in its own group with the not toggle on. Add another group with Is Endpoint set to
order-received, not toggle on, unless the popup is the thank-you. - Keep sale popups off the account area. Another group: Account Page, not. Logged-in customers managing orders do not need a banner.
- Give wholesale or member content its own popup. If members use separate pages (a members area, a wholesale catalogue), target a members-only popup to those pages and exclude those pages, in their own group, on the public popup.
- Use the cookie as the memory. A visitor who closed the announcement is remembered by its On Popup Close cookie in that browser for the Cookie Time you set.
What the free plugin cannot do: show one thing to logged-in users and another to logged-out users on the same page, or hide a popup from someone who already bought. For those, you need the rules below.
Pro: target by login state and role
Popup Maker Pro adds a User group of conditions on the Targeting tab:
- Is Logged In. Add it with the not toggle on the public announcement, in its own and group, so logged-in customers never see “new customer” wording. Build a second popup for logged-in customers if they should see something different.
- Has Role. Select the roles (Subscriber, Customer, a membership plugin’s role, a wholesale role) and target the members’ popup to them. On the public popup, add the same condition with the not toggle. A WordPress role is a label the site assigned; it is not proof of a paid or active membership, and suppressing a popup does not enforce coupon eligibility or page access. If your membership plugin enforces its own rules, keep those where they are.
- Exclude yourself. Has Role Administrator (and Shop manager) with the not toggle on every sale popup, so you can work in the store all week. Remove it only while testing as an admin.
- Cookie Exists / Cookie Is. If your thank-you popup sets a campaign-specific cookie such as
bought_black_friday_2026, add Cookie Exists with the not toggle on the other sale popups to silence them in that browser for the rest of the sale. This is a browser record, not a purchase record: it misses guests who never load the confirmation page, anyone on a second device, and anyone who cleared cookies.
Device, browser size, referrer and URL conditions live in the same list; the User Targeting feature page describes each one.
From the makers of Popup Maker
Same four states for content inside the page
Content Control shows or hides any editor block by login state and role, so a members-only price table or wholesale note can follow the same plan as your popups. Content Control Pro adds a date range for lines that should only appear during the sale.
Pro+: target by cart and purchases
Pro+ (Ecommerce Popups) adds store conditions. The names differ by integration, so check which ones your editor shows:
WooCommerce
- Product(s) in cart: show a message only when a chosen product is in the cart (or exclude carts that already contain it).
- Cart Total: choose which total to check (Cart Total, Subtotal, Discount Total and others) and a more-than or less-than value, so the exit reminder only fires with something in the cart.
- Customer Spent: more than or less than a lifetime amount.
- Customer Has Purchased: selected products, optionally requiring all of them. This matches products, not dates.
- With WooCommerce Memberships or WooCommerce Subscriptions active, membership and subscription conditions also appear.
Easy Digital Downloads
- Download(s) in cart, Download combo in cart, Cart has discount, Cart Total, Customer Spent, Customer Has Purchased.
- Customer Since: before or after a date.
- With Software Licensing or Recurring Payments active: Has License, License Expiring (within a number of days), Has Subscription, Upcoming Subscription Renewal.
Recent buyers. Keep the offer’s eligibility clear in the announcement itself: say who the code is for and avoid “new customer” wording, so it still reads correctly to someone who bought yesterday. Then let the thank-you popup do the remembering. Set its cookie On Popup Open with a campaign-specific name and add Cookie Exists with the not toggle to the other sale popups, as described above; that stops repeat reminders in the browser the purchase was made in. If the sale is on specific products, Customer Has Purchased with the not toggle also hides it from anyone who already owns them.
Pro+ also adds call-to-action buttons, WooCommerce – Add to Cart and WooCommerce – Apply Discount (with EDD equivalents), each with a “Redirect to” setting for Cart or Checkout. The cart abandonment guide shows the exact setup.
Rehearse as four people, on three screens
Preview in the editor shows layout only; it loads the popup for you regardless of status and swaps the triggers for a debug trigger. Rehearse the rules on a staging copy with the payment gateway in test mode, with the test popups given an active window so positive cases can show. Do not place a real order, and keep the production coupon unavailable until launch.
Make three staging accounts: a customer with one past test order, a user in your member or wholesale role, and keep your admin account for comparison. Use the checks below and record the results in a spreadsheet.
| Desktop | Phone (real device) | Tablet or small laptop | |
|---|---|---|---|
| Logged out | Announcement once; nothing on a blog post; exit reminder (Pro) on leaving a product page with items in the cart; nothing on checkout. | Same; close button reachable; page scrolls after close; code selectable. | Same as desktop. |
| Logged-in customer | Planned wording or suppression; nothing on account pages. | Same as desktop, plus the phone checks. | Same as desktop. |
| Member or wholesale role | Members’ message only; public code never shown. | Same as desktop, plus the phone checks. | Same as desktop. |
| Recent buyer (after a staging test order) | Thank-you once on the confirmation page; other sale popups suppressed in this browser if you use the cookie rule; then open a second browser and record what a buyer sees there. | Same as desktop, plus the phone checks. | Same as desktop. |
Cookies during the rehearsal. For a fresh audience or targeting case, clear the Popup Maker cookies (the Debug Tools Chrome extension can do this) or use a separate browser profile. For a repeat-suppression case, keep the same session and cookies. Another private window may share an existing private session; close them all or clear the cookies explicitly.
Three things people miss on phones:
- The close button under the browser bar. Mobile Safari and Chrome overlay toolbars at the top and bottom. If the close button sits at the very edge, it may not be tappable. Move it inward or use a close link inside the content.
- The popup taller than the screen. If the visitor cannot reach the button, they cannot act. See Why Is My Responsive Popup Taller Than the Screen On Mobile Devices?.
- Exit intent on phones. The desktop Mouse Leave method never fires on a phone. On Pro, enable a mobile method (Back Button, Lost Browser Focus, Mobile Scroll or the mobile Time Delay) or accept that the exit reminder is desktop-only.
If a popup should not appear on phones at all, every tier has Disable this popup on mobile devices and Disable this popup on tablet devices checkboxes on the Targeting tab.
When two popups qualify on the same page
Popup Maker evaluates each popup’s conditions independently, so two popups can both qualify on one page, and the first may still be open when the second triggers. Changing delays alone does not prevent that. The fixes:
- Make the audiences mutually exclusive: the members’ popup has Has Role for the member roles, and the public popup has the same condition with the not toggle, each in its own and group.
- Keep one automatic message per page view. If you need two, one of them should be click-triggered.
Checklist
- ☐ Checkout,
order-receivedand account pages excluded, each in its own and group, on every sale popup except the thank-you. - ☐ Public announcement excluded for logged-in users or member roles (Pro) or kept off member pages (free).
- ☐ Members’ popup targeted to their roles (Pro) or their pages (free).
- ☐ Recent buyers: eligibility line reads correctly after a purchase; thank-you cookie set and the other sale popups check it.
- ☐ Administrators excluded (Pro) or you are testing only in separate browser profiles.
- ☐ Four states by three screens rehearsed on staging and recorded in your test notes, with the cookie state noted for each case.
Printable version: download this checklist as a one-page PDF (US Letter) or the A4 version. No sign-up; the file is free to keep.
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.