Setup guide · WordPress · Popups

Setting up Demfilz Modal Popups

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.

Updated 8 July 2026~10 minWordPress 5.6+ · PHP 7.2+
1

Install

Upload the plugin zip and activate.

2

Design

Content, colours, layout, animation.

3

Behaviour

Trigger, frequency, targeting.

4

Enable

Tick Enable popup & save.

What this plugin does

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.

Step 1 — Install & activate

  • Download the plugin .zip (v1.0.1).
  • In WordPress admin, go to Plugins → Add New → Upload Plugin.
  • Choose the .zip, click Install Now, then Activate.
  • Open Modal Popups in the admin menu.

Step 2 — Design the popup

On the Design tab, build your content and watch the live preview pane update as you go:

  • Heading and body text — basic, safe HTML (links, bold, italics, lists, line breaks) is allowed and sanitised on save. The body also accepts shortcodes, so you can embed a form (see the note below).
  • Call-to-action button — button text plus its own link.
  • Image (optional) — choose one from the Media Library.
  • Colours — pickers for the background, text, heading, button, button text and the page overlay, plus overlay opacity.
  • Font — five built-in font styles, all system fonts (no external or Google Font requests).
  • Layout — position (centre, top or bottom), width, corner radius, padding and text alignment.
  • Entrance animation — zoom, fade, slide up, slide down or none.

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.

Step 3 — Behaviour & Display

Switch to the Behaviour & Display tab (your unsaved Design edits are kept — both tabs share one form):

  • Trigger — on page load, after a time delay, after scrolling a set percentage, on exit intent (mouse leaves the window), or when a button/link is clicked (enter a CSS selector).
  • Frequency — every visit, once per session, or once every X days. This is remembered in the visitor's browser (sessionStorage / localStorage) — no cookies are set on the server.
  • Auto-close (optional) — close the popup automatically after a chosen number of seconds.
  • Close options — close button, click-the-overlay-to-close, and press-Escape-to-close.
  • Where it shows — all pages, the front page only, all posts, all pages, or a custom list of post/page IDs; you can also exclude specific IDs.
  • Who sees it — everyone, logged-in users only, or logged-out visitors only.

Step 4 — Enable & test

  • Tick Enable popup and save.
  • Visit a page the popup targets to see it live.
  • If you chose “once per session” or “once every X days”, the popup remembers it has shown in that browser — re-test in a private/incognito window to see it again.

Open the popup from a button or link

Besides the automatic triggers, you can open the popup on demand from anywhere on the page:

[modal_popup_button text="Open the popup"]

textThe button label.
[modal_popup_button text="Get 10% off"]

Two more options, no shortcode needed:

  • Give any element the class dmp-open — clicking it opens the popup.
  • Set the trigger to “Button / link click” and point it at any CSS selector (for example a menu link).
TriggersPage load · time delay · scroll percentage · exit intent · button/link click (CSS selector).
FrequencyEvery visit · once per session (sessionStorage) · once every X days (localStorage). Nothing stored on your server.
TargetingAll pages · front page only · all posts · all pages · custom post/page IDs, with excludes. Audience: everyone / logged-in / logged-out.
Close optionsClose button · overlay click · Escape key · optional auto-close after X seconds.
AccessibilityProper dialog (role="dialog", aria-modal), focus trapped while open and restored on close, background scroll locked, “reduce motion” respected.
PerformanceSmall CSS/JS, loaded only on pages where the popup is set to appear; system fonts only, no third-party requests.

FAQ & troubleshooting

The popup isn't showing — why?

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.

Does this set cookies?

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.

Can I put a form (e.g. Contact Form 7) in the popup?

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.

Can I have more than one popup?

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.

← Back to Demfilz Modal Popups Need a hand setting it up?

Want a WordPress plugin like this?

Popups, marketing tools, integrations or something custom — tell us what you need and we'll come back with a plan and a fixed quote.