Description
Wonderful Notification Popups shows small notification cards (“toasts”) in a corner of your site — the kind of message that draws attention without interrupting anyone. You write the messages, pick the icons and decide the rhythm; everything else stays out of your way.
Typical uses: highlighting a running promotion, showing short customer quotes, explaining a service through a series of example messages, or announcing opening hours and delivery times.
Everything stays on your own server. The plugin contacts no external service, loads no remote fonts or scripts, and sends nothing anywhere. The messages come from your own database and the popups are assembled in the visitor’s browser from data that was already part of the page.
Start with the sample set
A single click on the settings page creates eight ready-made notifications covering the usual cases: a recent order, free shipping, a sale, a customer quote, a stock notice, a newsletter hint, a trust note and a thank-you. They are created as drafts, so nothing appears on your site until you publish what you actually want. Deleting them again is one click too, and it only ever touches the samples — your own notifications are never affected.
Three ways to give a notification an icon
- Built-in symbols — 19 clean line icons (cart, bag, price tag, gift, delivery, price, star, heart, thumbs up, check mark, bell, message, envelope, person, clock, shield, highlight, information, warning). They are drawn inline in the accent colour of the notification: nothing to upload, no icon font, no extra request.
- Emoji — type one in and you are done.
- Media library — for a logo or a photo, served from your own domain.
You decide what starts them, and how often
- Trigger — right after the page loads, once the visitor has scrolled far enough, once a chosen element (your FAQ section, for example) becomes visible, or when the visitor is about to leave the page.
- Rhythm — delay before the first popup, pause between two popups, how long each stays visible, and a maximum per page view.
- Quiet period — optionally stay silent for returning visitors for a number of hours.
- Background tabs — popups can pause while the tab is not in the foreground, so nobody comes back to a queue of messages.
And what they look like
- Any of the four screen corners.
- Adjustable distance from the edges and an adjustable stacking order — so a sticky header, a cookie banner or a chat button cannot bury the popups.
- Light or dark colour scheme. Light is the default, because a popup should match the site it appears on; following the visitor’s system setting is available but optional.
- Accent colour for the whole site, plus a per-notification style (neutral, positive, info, warning, critical).
- Optional close button, and an option to hide popups on small screens.
Language
Each notification can be assigned a language, and visitors only see the ones matching the language the page is rendered in, plus everything set to “All languages”. Regional variants match each other, so a German notification also reaches Austrian and Swiss visitors.
Built-in safety rails
- Notification text is treated as plain text and written into the page with textContent, so a message can never inject markup or scripts.
- The built-in icons travel as a list of plain shapes and are rebuilt with createElementNS — no markup is ever parsed in the browser.
- Only image attachments that actually exist can be used as icons.
- Every setting is validated against a whitelist or clamped into a sensible range before it is stored, and shortcode attributes go through the very same validation.
- Animations respect the visitor’s “reduce motion” setting.
- If there are no published notifications, the plugin loads no CSS and no JavaScript at all.
Shortcode
Place the popups on a single page or post:
[wonderful_notification_popups]
Individual settings can be overridden per placement:
[wonderful_notification_popups position="top-right" interval="15" duration="6" limit="3" order="sequence"]
Available attributes: position, interval, delay, duration, limit, order, trigger, selector, depth, locale.
For developers
The list handed to the browser can be changed with the wonderful_notification_popups_notifications filter.
External services
This plugin does not use any external service. No data of any kind — no visitor IP addresses, no page views, no message content — is sent anywhere. Everything runs on your own server and in the visitor’s browser.
The optional quiet period for returning visitors stores a single timestamp in the browser’s local storage. It never leaves the browser, is not a cookie and is not used for tracking.
Screenshots



Installation
- Install and activate the plugin.
- Open Notification Popups Settings and click “Create sample notifications” to get a starting point, or go straight to Notification Popups Add New and write your own: title, message, icon and, if you like, a language and a link.
- Publish the notifications you want to use.
- Back in the settings, choose what starts the popups, how often they appear and where on screen they belong.
- Either set “Show popups” to site-wide, or place
[wonderful_notification_popups]on the pages that should have them.
FAQ
-
Nothing appears on my site. What is wrong?
-
The most common reasons are that no notification is published yet — the sample set is created as drafts on purpose — that the display mode is set to “shortcode” while no shortcode is placed on the page, or that the language filter excludes every notification. The settings page tells you when there are no published notifications.
-
The popups are dark, but my site is light.
-
Set “Colour scheme” to “Light” under “Appearance and placement”. If it is set to “Follow the visitor’s system setting”, visitors whose operating system runs in dark mode get a dark popup — which looks out of place on a light site. That is why light, not automatic, is the default.
-
Raise “Distance from the top or bottom edge” until the popups clear it, or raise the stacking order (z-index) so they sit above it. Both are in the “Appearance and placement” section.
-
Does this collect any visitor data?
-
No. The plugin sends nothing to any server and sets no cookies. If you enable the quiet period for returning visitors, a single timestamp is stored in the visitor’s own browser so they are not shown the same popups again right away. Nothing about that timestamp is transmitted or readable by anyone else.
-
Can I show different messages in different languages?
-
Yes. Each notification can be assigned a language, and visitors only see the notifications matching the language the page is rendered in, plus everything set to “All languages”. Regional variants of one language match each other, so a notification set to German (Germany) also reaches visitors on the Austrian or Swiss locale.
-
Can I use HTML in a message?
-
No, and that is deliberate. Messages are plain text, which means a notification can never break your layout or inject a script. Emoji work fine. If you need the popup to lead somewhere, use the link field — it makes the whole popup clickable.
-
Does exit intent work on phones?
-
There is no “moving the pointer out of the window” gesture on a touch device, so the exit trigger falls back to the scroll trigger there instead of never firing at all.
-
Do the popups slow down my site?
-
The CSS and JavaScript together are a few kilobytes and are only loaded on pages that actually show popups. The built-in icons add no request at all. If no notification is published, nothing is loaded.
-
What happens when I delete the plugin?
-
Deleting the plugin through WordPress removes the settings and every notification you created, including their meta data. Deactivating alone changes nothing.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Wonderful Notification Popups” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Wonderful Notification Popups” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.0
- Initial release.