Design a modal popup with a live preview, then choose when it appears, how often, and on which pages. Here's how to install the plugin, build your popup on the Design tab, set its behaviour and targeting, and switch it on.
Upload the plugin zip and activate.
Content, colours, layout, animation.
Trigger, frequency, targeting.
Tick Enable popup & save.
Demfilz Modal Popups lets you build a polished, on-brand modal popup entirely from the WordPress admin, with a live preview that updates as you change each design option. Use it to grow your newsletter, announce a sale, highlight a lead magnet, show a cookie or age notice, or point visitors to your most important page. Everything is managed on one screen with two tabs: Design and Behaviour & Display.
You'll need: a WordPress site (5.6+, tested up to 7.0) running PHP 7.2 or newer. That's it — no account, no API keys, and the plugin makes no external requests and sets no cookies.
Plugins → Add New → Upload Plugin..zip, click Install Now, then Activate.Modal Popups in the admin menu.On the Design tab, build your content and watch the live preview pane update as you go:
Embedding a form: paste the form's shortcode straight into the body, for example [contact-form-7 id="123" title="Contact form 1"]. Shortcodes are expanded when the popup is shown on the front end — they don't run inside the admin design preview. For Contact Form 7, leave its default asset loading enabled so the form's CSS/JS is present on the page; if you've set it to load assets “only when needed”, also place the form on a normal page (or keep that option off) so its scripts load.
Switch to the Behaviour & Display tab (your unsaved Design edits are kept — both tabs share one form):
Besides the automatic triggers, you can open the popup on demand from anywhere on the page:
[modal_popup_button text="Open the popup"]
text | The button label. [modal_popup_button text="Get 10% off"] |
|---|
Two more options, no shortcode needed:
dmp-open — clicking it opens the popup.| Triggers | Page load · time delay · scroll percentage · exit intent · button/link click (CSS selector). |
|---|---|
| Frequency | Every visit · once per session (sessionStorage) · once every X days (localStorage). Nothing stored on your server. |
| Targeting | All pages · front page only · all posts · all pages · custom post/page IDs, with excludes. Audience: everyone / logged-in / logged-out. |
| Close options | Close button · overlay click · Escape key · optional auto-close after X seconds. |
| Accessibility | Proper dialog (role="dialog", aria-modal), focus trapped while open and restored on close, background scroll locked, “reduce motion” respected. |
| Performance | Small CSS/JS, loaded only on pages where the popup is set to appear; system fonts only, no third-party requests. |
Three things to check: (1) Enable popup is ticked and saved on the Behaviour & Display tab; (2) the page you're viewing matches the Where it shows and logged-in/logged-out settings; (3) the frequency rule hasn't already fired in your browser — “once per session” and “once every X days” are remembered per browser, so test in a private/incognito window.
No. “Show once per session” uses the browser's sessionStorage and “once every X days” uses localStorage. Nothing is stored on your server and no third-party requests are made.
Yes — paste the form's shortcode straight into the body. Shortcodes are expanded when the popup shows on the front end (they don't run inside the admin design preview). For Contact Form 7, leave its default asset loading enabled so its CSS/JS is on the page; if you've set it to load assets “only when needed”, also place the form on a normal page (or keep that option off) so its scripts load.
This version manages a single popup. Need multiple popups, A/B testing or form integrations? Get in touch via the link on the settings screen, or contact us.
Demfilz Modal Popups runs entirely on your own site: the fonts are system fonts, the frequency rules are remembered in the visitor's own browser, and no external services are contacted. This plugin is independent; “WordPress” is a trademark of the WordPress Foundation.
Popups, marketing tools, integrations or something custom — tell us what you need and we'll come back with a plan and a fixed quote.