

App Configuration — one-click VAPID key pair
Ultimate Push Notifications is a self-hosted push notification solution for WordPress. It sends notifications from your own server straight to each browser’s push service using the open Web Push standard (VAPID) — on desktop and mobile, even when the visitor is not on your site.
No SMS bills. No email list dependency. Just instant, reliable push notifications that actually reach people.
Push notifications have 4x higher open rates than email. Keep your customers, community members, and team informed the moment something happens — for free.
Most push notification services charge a monthly fee per subscriber and keep your subscriber list on their servers. This plugin needs no account with anyone: setup is one button, delivery costs nothing, and every subscription lives in your own database. You own your audience.
For WooCommerce Store Owners:
You’re losing sales because customers have no idea their order shipped, their payment failed, or their order is ready. And your vendors have no idea someone just bought from them. This plugin fixes all of that — with instant push alerts for every order event.
For BuddyPress / Community Sites:
Your community members miss friend requests, new messages, group invites, and activity updates because they’re not watching their inbox. Push notifications bring them back the moment something happens — without email fatigue.
For Site Administrators:
You need to know the instant a form is submitted, a new user registers, or an event goes live. Real-time push notifications to your browser mean you’re always in the loop, even if your email is buried.
For All Sites:
Instead of paying for SMS alerts or high-volume email plans, this plugin lets you communicate in real time for free — using the same infrastructure Google uses for Android notifications.
Web Push — Self-Hosted
– One-click setup: generate a key pair and you are done. No Firebase project, no Google account
– Standards-based delivery (RFC 8030 / 8291 / 8292) straight to each browser’s push service
– Background queue with automatic retry and per-service backoff — sends never slow down checkout
– Health page checks every link in the chain and says exactly what is wrong when something is
– Service Worker handles background notifications even when the browser is closed
– Rich notifications: show images inside the push popup
– Click-to-navigate: clicking a notification opens the right page automatically
– Auto-cleanup: invalid / expired device tokens are removed automatically — no stale bloat
Subscribers — Unlimited, Yours
– Visitors subscribe without an account; members subscribe with theirs. No cap, in any tier, ever
– Soft-ask prompt: your own dismissible bar asks first — after N seconds, page views or scroll depth — and only hands off to the browser’s one-shot permission prompt when the visitor clicks Allow
– Floating bell, [upn_subscribe] shortcode, a Push Subscribe Button block, or any element with data-upn-subscribe
– Subscriber list shows browser, OS, device, locale, time zone, last seen, last delivery and consent — with Logged-in / Visitors / Web Push views
– Privacy tools: subscriptions and preferences are exported and erased with the account (WordPress Privacy Export / Erase)
Compose & Send
– Write a notification, pick an audience — everyone, visitors, members, roles, device type, active in the last N days — see the live recipient count, send it to your own device first, then send
– Merge tags — {site_name}, {post_title}, {user_name}, {first_name} and more, plus event tags in automations
– Rich payload: icon, large image, click URL; click tracking with click-through rate on the Health page
Automations
– Push on publish — new posts (or any post type) go to your subscribers automatically, with the featured image
– Event automations — trigger audience message. Free runs three at a time:
– WordPress: new user registers, comment posted
– WooCommerce: new order, order status changes (filter by status), payment received, added to cart, low stock, out of stock
– BuddyPress: friend request, friend accepted, private message, member update (to their friends), reply to an update, group update (to the group), member joins a group (to its admins)
– Contact Form 7: form submitted — every field is a merge tag, {field_your_email}, whatever the form’s field names
– Each automation chooses who: store staff by role, the product’s author (vendor), the customer, the message recipients, the group’s members… The person who caused the event is left out unless you say otherwise
– Members turn any automation off for themselves under Set Notifications (and in their BuddyPress profile)
Device Management
– Every device is tracked individually; one member can register several
– Test notifications directly from the admin — verify delivery before going live
– Devices a push service reports as gone are removed automatically
Notifications are sent from your own server directly to each browser’s push service using the open Web Push standard (VAPID). Nothing is proxied through a third party, no per-subscriber fees, and the subscription data never leaves your database.
No app stores. No app to install. Works in Chrome, Firefox, Edge, Safari on macOS, and Safari on iOS 16.4+ once the site is added to the Home Screen.
If your server cannot generate keys (the Health page will say so), App Config also accepts a key pair pasted from elsewhere.
Upgrading from an earlier version? Devices registered through Firebase will keep their rows but will not receive anything — Google shut down the legacy Firebase API on 22 July 2024. Ask those users to open Register My Device once; their browser re-registers over Web Push automatically. The Health page counts how many are left.
Full step-by-step documentation:
Everywhere
– {site_name} {site_url} {date} {time}
– {post_title} {post_url} {post_excerpt} {post_type} {author_name} — when the notification is about a post
– {user_name} {user_login} {user_email} {first_name} — when it is about a user
WooCommerce automations
– {order_id} {order_total} {order_status} {status_from} {customer_name} {customer_email} {items_count} {item_names} {payment_method} {order_url} {order_admin_url}
– {product_title} {product_price} {product_url} {quantity} {shopper_name} {stock_quantity} {product_admin_url}
BuddyPress automations
– {initiator_name} {friend_name} {sender_name} {message_subject} {message_excerpt} {thread_url} {member_name} {activity_excerpt} {activity_url} {commenter_name} {comment_excerpt} {group_name} {group_url} {requests_url} {profile_url}
Contact Form 7 automations
– {form_title} {form_summary} {form_url} and every field as {field_<name>} — e.g. {field_your_email} for a field named your-email
The automation editor lists the tags each trigger provides. Add your own with the upn_merge_tags filter.
For support, feature requests, and bug reports:
* Visit [codesolz.net](https://codesolz.net/?utm_source=wordpress.org&utm_medium=README&utm_campaign=ultimate-push-notifications) for instant support
* Email: [[email protected]](mailto:[email protected])
* GitHub: [github.com/CodeSolz/ultimate-push-notifications](https://github.com/CodeSolz/ultimate-push-notifications)
* Forum: [forum.codesolz.net](https://forum.codesolz.net/?utm_source=wordpress.org&utm_medium=README&utm_campaign=ultimate-push-notifications)