PopupRoulette

Description

PopupRoulette is a popup plugin for people who run more than one offer and do not want to annoy their visitors.

Upload an image and paste a link, or pick a designed template and type your text. Flip the toggle and the popup is live. No builder to learn, no account to open.

Then comes the part other popup plugins skip. Make three popups live and PopupRoulette rotates between them: each visitor gets one at random, and never the same one twice in a row. Your sale, your newsletter and your new opening hours all get seen, instead of one banner forever.

You stay in control of the experience:

  • Where. Each popup runs everywhere, only on the pages you pick, or everywhere except the checkout.
  • How often. Once per visit by default. A visitor who closed a popup is left alone for the rest of the visit, a day or a week.
  • How long. It waits a second before opening, shows a countdown ring, and closes itself after five seconds unless the visitor touches it. All three are yours to change.

It is light (one small script, no jQuery, no external requests), works behind page caches and CDNs, and is fully RTL.

What you get

  • Image + link mode. One image, one link, done. Tall story-format images are shown whole, never cropped.
  • Designed templates. When you want more than an image: a background photo, title, subtitle, a big highlight line and a button. Four built-in looks (Spotlight, Banner, Split, Clean), nine bundled fonts, text alignment, size sliders and an accent color picker. The button text flips between dark and light on its own, so it stays readable on any accent. The live preview updates as you type.
  • Page targeting. Per popup: everywhere, only on selected pages, or everywhere except them. Pick by kind (home page, posts, pages, products and any other post type, archives), tick specific pages, or list addresses with a wildcard such as /shop/*.
  • Frequency control. Show a popup on every page load, once per visit, once a day or once a week. Set once for the whole site.
  • Timing. Choose how many seconds to wait before the popup opens and when it closes by itself, or switch the auto close off.
  • Polite by default. A visitor sees one popup per visit unless you say otherwise. It closes itself after 5 seconds, with a small countdown ring on the close button so visitors see it coming. If someone hovers or taps the popup, it stays. Escape and backdrop clicks close it too.
  • Scheduling for free. Set a future publish date on a popup and it goes live at that moment. No extra UI, it’s just how WordPress works.
  • Tap-to-call. Put a phone number in the highlight line and mobile visitors can tap it to dial.

Boring details that matter

  • The roulette and the frequency limit run in the visitor’s browser, and page targeting is decided per URL on the server, so everything keeps working behind full-page caching and CDNs.
  • Popup images load eagerly. You’ll never see an empty card waiting for its picture.
  • Fonts ship inside the plugin (woff2, SIL Open Font License). No calls to Google Fonts or any other third party.
  • Works in RTL languages out of the box. The popup follows your site’s text direction.
  • Dialog semantics, keyboard close, and reduced-motion support are in.
  • Uninstalling removes every popup and all of its data. Nothing left behind.

PopupRoulette Pro

Everything above is free and stays free. PopupRoulette Pro is a separate add-on for sites that want full control:

  • Design: your own colors for every element, width, height, corner radius, where the text sits, backdrop color and strength, three entrance animations and custom CSS.
  • Placement: centered, a slide-in in either bottom corner, or a bar across the top or bottom. Corners and bars leave the page usable.
  • Triggers: after a delay, after scrolling part of the page, on exit intent, or when a button or link is clicked.
  • Audience: phones only or desktop only, logged-in or logged-out visitors, and campaign rules by UTM tag or referring site.
  • Schedule: an end date with a live countdown inside the popup, and days of the week.
  • Rotation and frequency: a weight per popup, so your best offer comes up more often, and a frequency and auto-close time of its own.
  • Results: views, clicks and click rate for every popup, counted on your own site.
  • Workflow: duplicate a popup with all of its settings.

Get PopupRoulette Pro

Privacy

No cookies, no tracking, no calls to outside servers. Two small values are kept in the visitor’s own browser storage and never sent anywhere: the ID of the last popup shown, so the rotation can avoid repeating it, and the time it was shown, so the frequency limit can be respected. Fonts are served from the plugin folder, never from Google.

Built by Itay at itaycode.com. Need a custom popup design, or a WordPress site that turns visitors into customers? Get in touch.

Screenshots

Installation

  1. Install from the plugin directory, or upload the ZIP under Plugins Add New Upload Plugin.
  2. Activate it. A “PopupRoulette” menu shows up in the sidebar.
  3. Add a popup, flip the “Popup is live” toggle, hit Publish. Open your site to see it.

Creating your first popup

The editor opens in image mode: click the frame, pick an image from the media library, paste the link it should open. That’s the whole job.

Want the designed look instead? Click the “Designed template” card. Pick one of the three templates, set a background photo, write your title and offer, and watch the preview on the right while you type. The highlight line is the big one in your accent color. Put the discount or the phone number there.

Running several popups

Every popup has its own live toggle, both in the editor and straight from the popups list. Whatever is live is in the roulette. Turn a popup off and it leaves the rotation immediately; the others keep going.

Choosing where a popup shows

Open the popup and switch to the “Where it shows” tab. “Only on…” limits it to what you tick; “Everywhere except…” does the opposite. The three columns add up: a popup set to “Everywhere except” with Pages ticked and /blog/sale-* listed stays off all pages and off those posts.

How often and how fast

PopupRoulette Settings holds the three site-wide rules: how often a visitor sees a popup, how long to wait before it opens, and when it closes by itself. While testing, add ?popr=show to any address to ignore the frequency limit, or ?popr=123 to open the popup with that ID.

FAQ

How does the rotation decide what to show?

Random pick from the popups that are live and allowed on the current page, with one rule: never the same popup twice in a row. The last shown popup is remembered in the visitor’s browser, so the rotation works per visitor, even behind aggressive page caching.

Can I schedule a popup campaign in advance?

Yes. Use the regular “Publish on” scheduling in the popup edit screen. The popup stays hidden until the scheduled time, even if its live toggle is already on. When the date arrives, it joins the roulette on its own.

Can I keep a popup off certain pages?

Yes. Every popup has a “Where it shows” section: everywhere, only on the places you pick, or everywhere except them. You can pick kinds of pages, specific pages, or addresses with a wildcard.

Why does the popup close by itself?

Because popups that sit there until dismissed are the reason people hate popups. Five seconds is enough to land the message; the countdown ring makes the timing visible; and any interaction with the popup cancels the auto close for readers who want more time. You can change the number of seconds, or set it to 0 to keep the popup open, under PopupRoulette Settings.

Will it slow my site down?

No. The front end loads one small stylesheet and one script with no jQuery, the list of live popups is a single cached option (no meta query on page load), and the fonts download only when a designed-template popup is live. Nothing is fetched from third parties.

Will visitors see a popup on every page they open?

Not unless you want that. Out of the box a visitor sees one popup per visit. Under PopupRoulette Settings you can change it to every page load, once a day or once a week.

I changed something and the popup does not appear when I test

You have probably already seen a popup in this visit, so the frequency limit is holding the next one back. Add ?popr=show to the page address to ignore the limit while testing.

Is it GDPR friendly?

Yes. No cookies, no analytics, no external requests. See the Privacy section above.

Is there a Pro version?

Yes. PopupRoulette Pro adds full design control, corner and bar placements, scroll, exit-intent and click triggers, device and campaign targeting, end dates with a countdown, weighted rotation, and view and click stats. The free plugin is complete on its own and nothing in it is locked.

Does it work with RTL sites?

Yes, fully. The plugin was born on a Hebrew news site. The popup follows the page direction, and four of the bundled fonts carry a full Hebrew alphabet.

What language is the admin interface in?

English, and fully translatable. Translations are handled by translate.wordpress.org: WordPress downloads and applies them on its own, so nothing needs to be bundled or configured. Contributions in any language are welcome there.

Where do the fonts come from?

Nine faces, all packaged as woff2 files inside the plugin under the SIL Open Font License. Heebo, Rubik, Assistant and Secular One cover Hebrew and Latin. Poppins, Montserrat, Playfair Display, Oswald and Space Grotesk are Latin only, and the editor groups them that way so you can see at a glance which is which. Pick a Latin face on a Hebrew popup and the Hebrew simply falls back to the system font, no broken boxes.

The files are served from the plugin folder. Nothing is fetched from fonts.googleapis.com or fonts.gstatic.com, so no visitor IP ever reaches a third party. Browsers download only the weights and alphabets a popup actually renders, and only when a template popup is live.

Reviews

September 6, 2026
PopupRoulette is a great little plugin. It’s very easy to set up — I had my first popup running in just a couple of minutes without having to go through endless settings. I especially like the random popup rotation, the live preview, and the fact that it works properly with caching and RTL websites. The automatic close with the countdown is also a nice touch and makes the popups feel much less intrusive. Clean, fast, easy to use, and no unnecessary bloat. Highly recommended if you need a simple and effective popup solution for WordPress!
Read all 3 reviews

Contributors & Developers

“PopupRoulette” is open source software. The following people have contributed to this plugin.

Contributors

Translate “PopupRoulette” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

2.1.0

  • The popup editor is now organised in tabs, and the live preview stays beside them while you work.
  • The PopupRoulette Pro box can be hidden, and it never shows on a site where Pro is installed.
  • For developers: popr_editor_tabs filter and popr_editor_panels action for adding editor tabs.

2.0.1

  • A Settings link on the Plugins screen.
  • PopupRoulette Pro is available as a separate add-on. While it is not installed, a single box at the bottom of the popup editor and the Settings screen says what it adds.
  • Readme rewritten.

2.0.0

  • New: “Where it shows” on every popup. Run it everywhere, only on selected pages, or everywhere except them. Choose by kind of page, by specific page, or by address with a wildcard.
  • New: frequency control. A visitor now sees one popup per visit by default instead of one on every page load. Change it to every page load, once a day or once a week under PopupRoulette Settings.
  • New: Settings screen with the delay before a popup opens and the auto-close time (0 switches auto close off).
  • New: Split template, with the picture on one side and the text on the other.
  • New: text alignment for designed templates, and button text that picks a readable color for any accent.
  • New: ?popr=show and ?popr=ID in the page address for testing.
  • For developers: filters and JavaScript events (popr_show_popup, popr_popup_opts, popr_card_vars, popr:open, popr:close, popr:click) so add-ons can extend the plugin.

1.3.1

  • “Leave a review” and “Support” links on the Plugins screen.
  • A single, dismissible review request on the PopupRoulette screens, shown once after a week with at least one live popup. Nothing on the front end changed.
  • Readme: privacy section and a few more answers in the FAQ.

1.3.0

  • Five more fonts for Latin popups: Poppins, Montserrat, Playfair Display, Oswald and Space Grotesk. Bundled as woff2 like the rest, still no third-party requests.
  • The font menu is now split into “Hebrew + Latin” and “Latin only” so the pick is obvious.
  • The front end no longer runs a meta query on every page load. The live popup IDs are cached in a single option and refreshed when you edit, toggle, trash or delete a popup.
  • Translations now come from translate.wordpress.org instead of shipping in the plugin.

1.2.1

  • Hebrew translation ships with the plugin and applies automatically on Hebrew sites.

1.2.0

  • English interface. RTL support stays, the popup follows the site’s text direction.
  • Renamed to PopupRoulette.

1.1.1

  • Popup images load eagerly, so the card never opens empty.

1.1.0

  • Random rotation, never repeating the previous popup.
  • Auto close after 5 seconds with a countdown ring.
  • Tall images are shown whole.

1.0.0

  • First release.