Appearance
Notification Preferences
Notification Preferences gives members a frontend screen listing every notification your site sends, against the channels it can send them through. They untick what they don't want, and the site stops sending it.
Overview
Voxel lets you decide, site-wide, which notifications exist and which channels they use. What it doesn't offer is a way for an individual member to say "email me about orders, but stop emailing me every time someone follows me."
This function adds that, as a matrix of app events against channels, and enforces the result server-side — including for notifications Voxel itself sends, not just Toolkit ones.
Key Features
- A member-facing matrix of every enabled app event against its channels
- Covers email, in-app, push and SMS
- Enforced server-side on all four channels
- The widget can only ever narrow what admins allow
- Events or channels disabled in the admin never appear to members
- Site-wide and per-widget exclusions keep critical events out of members' hands
- Push and SMS columns appear only when those functions are enabled
Setup Instructions
Step 1: Enable the Function
- Navigate to Voxel Toolkit → Functions in your WordPress admin
- Find Notification Preferences and toggle it on
Step 2: Enable the Widget
- Navigate to Voxel Toolkit → Widgets
- Enable Notification Preferences (VT)
Step 3: Add It to a Template
Add the Notification Preferences (VT) widget to a logged-in template — your account or profile page is the natural home, next to whatever other member settings you offer.
Step 4: Decide What Members Can Change
In the function's settings, use Excluded events to keep specific notifications off the widget entirely. Anything excluded is never shown and never opted out of.
Exclude the notifications a member must receive: password resets, order receipts, anything with a legal or transactional obligation behind it. The widget is for preferences, not for switching off the things that keep your site honest.
The same exclusion control exists on the widget itself, so different templates can offer different subsets.
How It Interacts With Admin Settings
The widget only ever narrows. It cannot enable anything an administrator has turned off.
- An app event disabled in Voxel → App Events doesn't appear
- A channel disabled for an event doesn't appear as a column for it
- An excluded event doesn't appear, regardless of its own settings
So the member's view is always a subset of what the site already permits, and turning a notification off site-wide immediately removes it from everyone's preferences.
Channels
| Channel | Appears when |
|---|---|
| Always | |
| In-app | Always |
| Push | The Push Notifications function is enabled |
| SMS | The SMS Notifications function is enabled |
Troubleshooting
An Event Isn't Listed
Either it is disabled in Voxel → App Events, or it is in the function's Excluded events list, or the widget itself excludes it. The widget never invents events — it lists what the site already sends.
A Member Still Got a Notification They Unticked
Preferences are enforced when the notification is sent. A message already queued before the change can still arrive. If it keeps happening for one event, check whether that event is excluded — excluded events ignore preferences by design.
The Push or SMS Column Is Missing
Those columns only render when the corresponding function is enabled. Enable Push Notifications or SMS Notifications first.
Requirements
- Voxel theme
- Elementor, for the widget
- Push and SMS columns require their respective Toolkit functions

