Hey @everyone,
I’ve been quietly working on this one for a while, and I’m excited to announce it’s finally ready to share with the community: Notifications for HivePress! ![]()
On-site notifications have been on the community wish list for a long time. @simonavshalom opened a topic about push notifications back in 2022 that’s still picking up replies today, @Renterworld asked for unread counts in the browser tab that update without reloading the page, and last December I asked @JSHBV about the notification system they’d built for their own site. They very kindly explained what it had taken: a preferences layer so people don’t get spammed, a quicker way to fetch and mark notifications, and a sticky header to keep it all in view. That reply stuck with me, and it ended up shaping most of what this plugin does.
I know an official take on this is on the roadmap, so think of this one as something to be getting on with in the meantime.
The good news is that HivePress already does the hard part. Every notification your site sends flows through one shared system, whichever extension it comes from, and @ihor has pointed out before that this is the place to tap in if you want to mirror notifications somewhere else. That’s exactly what this plugin does. It picks up that same stream, shows it on the site itself, and lets each person choose whether they’d rather have a given notification as an email, as an on-site notification, or as both.
Because it works from that shared layer rather than from each extension separately, Messages, Bookings, Marketplace, Requests and Memberships are all covered from the moment you activate it, and any extension you add later is picked up automatically.
Examples:
What your users get
- A Notifications page in their account with the full history, grouped by date, with a search box and a filter by type
- Mark as read or unread, clear everything that’s already been read, or delete one at a time
- Delete with an undo window, so a mistaken tap on a phone is recoverable
- Pop-ups that slide in as things happen, with a countdown that pauses when hovered
- Unread counts beside Notifications in the account menu and in the browser tab title, so nothing gets missed
- Each notification shows the sender’s profile picture or the listing photo, with a matching icon
What your users control
- Their own settings page, with notifications grouped by area rather than dozens of separate rows
- Per group they choose on-site, email, push, or nothing at all, so someone can keep their booking emails and switch off everything else
- Quiet hours, including a window that runs past midnight. Notifications still arrive in the list, they just don’t interrupt
The header bell
An optional bell in the site header with its own unread count and a dropdown of the most recent notifications.
- Pick the icon from the same searchable Font Awesome set HivePress uses
- Set its colour and hover colour, and the size
- Add a background circle if you want one, with its own hover colour
- Nudge it a few pixels in either direction to line it up with whatever your theme puts beside it, without shifting anything else in the header
- It counts notifications specifically, separately from the count ListingHive already shows, and there are switches to hide the theme’s own counters if you’d rather not have two numbers up there
There’s also an optional sticky header, which keeps page anchors clear of itself, so a link that jumps to a review or a section still lands where you meant it to rather than underneath the header.
Four notification types of its own
As well as mirroring what HivePress already sends, the plugin adds four notifications for moments that don’t have an email behind them:
- Listing Favourited, when someone favourites a listing
- Review Received, when a review is left, or when a moderated one is approved
- Booking Completed, which links straight through to leaving a review on the listing
- Badge Earned, showing the badge that was actually awarded
What you control
Everything lives under HivePress > Settings > Notifications, in six sections ordered from what you’ll change most often down to what you’ll rarely touch:
- Delivery - how often an open tab checks for anything new, web push, the header bell and all its styling, the switches for hiding your theme’s own counters, the sticky header, and anonymous statistics
- Pop-ups - on or off, separate desktop and mobile positions, how many show at once, whether they hide themselves and after how long, plus an optional sound with five styles
- Appearance - background, text and accent colours, corner radius, text size and weight, unread count colour, and dropdown width
- Types - choose which notifications users can manage, group by group. Anything left unticked is sent by HivePress as usual, and users can’t turn it off
- Defaults - the channels each WordPress role starts with, and a storage period that clears old notifications automatically
- Text - write the wording for each notification using tokens like
%listing.title%and%sender.display_name%, with a fallback after a pipe in case something’s missing. Leave one blank and it uses the email subject as it is
There are also two pages of their own: Announcements and Statistics.
Announcements
- Send an on-site notification to everyone, one role, all your vendors, or named users
- Large sends go out in scheduled batches, so nothing times out
- Greet people by name using a token
- There’s a history of what was sent, by whom, and how many it reached
- Resending recalculates the audience at the time you send, so a role that has grown since reaches its new members too
Web push
Push notifications reach people who have your site closed entirely.
- Keys are generated for you the first time, so there’s nothing to set up
- Nothing sensitive travels in the push itself. The browser is simply woken up and fetches the notification from your site
- People are asked for permission only after a few visits, never on their first, because a refused prompt can never be asked again. You choose how many visits
- There’s also a button on their own settings page so they can switch it on whenever they like
Privacy, translations and housekeeping
- Notifications are included in the WordPress personal data export and erasure tools, so data requests are handled properly
- The statistics are anonymous totals only, and can be switched off
- A POT file ships with the plugin, so everything can be translated or reworded with Loco Translate
- WP-CLI is supported:
wp hivepress notifications types,recountandcleanup - New releases appear on your Plugins screen like any other update, with a details popup and one-click install
- Free and open source (GPLv3)
Requirements and installing
WordPress 6.0+, PHP 7.4+, and HivePress. Web push additionally needs HTTPS, which nearly every site already has.
Download the latest release here, then go to Plugins > Add New > Upload Plugin, choose the zip, and activate.
Updating later? Upload the new zip and choose “Replace current with uploaded”. Don’t delete the plugin first, because deleting runs the uninstall routine, which by design removes every notification, option and preference.
Then head to HivePress > Settings > Notifications. The defaults are sensible, so the only things you really need to decide are whether you want the header bell and the pop-ups. Every other option has a description explaining what it does, so you can work through the rest whenever you fancy it.
A few things worth knowing
- Turning the on-site channel off for a group stops those notifications being created at all, rather than just hiding the pop-up
- iOS Safari only allows web push for sites that have been added to the home screen. That’s an Apple rule rather than a plugin one
- Notifications are kept well away from your WordPress comments screens, so your comment counts and moderation queue are untouched
As always, the internals are checked against the current versions of HivePress and each extension, so it behaves like a native part of your site rather than something bolted on.
This is a first public release, so if you run into any issues, find bugs, or think of an awesome new feature, please drop a reply below. I’d much rather hear about a problem than not! ![]()
P.S. If this extension saved you time or money, consider buying me a coffee! Sharing these tools for free takes a lot of time and resources, and your support helps me keep doing it for the community. Thank you! ![]()
Cheers,
Chris ![]()









