Appearance
Notifications
What the site tells people when something happens. A post is submitted for review, an author's listing is approved, someone signs up, a member's plan ends.
Where: VX Modules → Notifications. It is built in, not a module, so there is nothing to turn on first. Every notification is on or off by itself, separately for the admin and for the person it is about.
What sends
Notifications come in groups. The post types group is always there; the others appear while their module is on, and leave the screen when it is turned off.
Posts
Five for every post type VX manages, and for Posts:
| Notification | When it sends | Admin | Author |
|---|---|---|---|
| Submitted for review | A new post lands in Pending, waiting for someone to approve it | On | On — their receipt |
| Edited by its author | Someone changes a published or pending post. Edits by editors and admins do not count. | On | Off |
| Published | A post goes live, whoever published it, including a scheduled post reaching its date | Off | On |
| Approved | Someone other than the author publishes a post that was waiting in Pending | Off | On |
| Not approved | Someone other than the author moves a pending post back to Draft or to the Trash | Off | On |
WordPress has no "rejected" status, so Not approved is the move moderation actually makes: back to Draft, or into the Trash.
These fire however the post changed — wp-admin, the block editor, VX's editor, a form, the Entries screen, Quick Edit, or the Sheet.
Accounts
With the Forms module on:
| Notification | When it sends | Admin | The member |
|---|---|---|---|
| New account | Someone signs up through a registration form | On | Off |
| Account approved | An admin approves an account that was waiting for approval | Off | Off |
| Account not approved | An admin denies an account that was waiting for approval | Off | On |
A registration form's own welcome, verification, and "account approved" emails still go out as set on the form. Switch these on only for what the form does not already send.
Memberships
With the Memberships module on, ten more: plan started, renewed, payment failed, canceled, ending soon, ended, switched, paused posts restored, post expired, and allowance used up. See Membership notifications for when each sends.
Who gets them
| Audience | Means |
|---|---|
| Admin | The address under Sending → Admin emails go to, or the site's admin email |
| Author | The author of the post the notification is about |
| The member | The account an account or membership notification is about |
Nobody is emailed about something they did themselves, unless that is the point — the author's Submitted for review receipt, or a new member's welcome.
Writing a message
Open a notification to edit its subject and message, per audience. Every notification arrives with a sensible default, so most sites only switch things on and off.
Messages use VX's own dynamic tags — the same ones the Elementor picker offers. Type @ in the subject or message, or use the Dynamic tags button:
- the post's fields, from Core and every fieldset on its post type
- its author, the person who did it, and the site
- VX's modifiers, typed straight after a tag
- the notification's own tags:
| Tag | Returns |
|---|---|
@notification(event) | What happened |
@notification(actor_name) | Who did it: name |
@notification(actor_email) | Who did it: email |
@notification(recipient_name) | Recipient: name |
@notification(recipient_email) | Recipient: email |
@notification(review_link) | A link to review the post in wp-admin |
@notification(status) | The status now |
@notification(previous_status) | The status before |
@notification(date) | The date and time |
A notification can bring tags of its own; the membership notifications add the plan's name, its end or renewal date, a link to manage the subscription, and the counts that event knows.
Preview renders the message against a real post — or a real account, for account notifications — so you see it with actual values, and send a test puts it in your inbox.
Text messages
Every notification also has a text-message switch and a text field. Texts are not sent yet: the channel is marked Coming soon, and anything written there is kept and sends once text messages arrive.
Sending
Where admin notifications go, who they come from, and how they look.
| Setting | What it does |
|---|---|
| Admin emails go to | One address or several, separated by commas. Empty uses the site's admin email. |
| From name | Empty leaves it to WordPress or your SMTP plugin. |
| From email | Use an address on this site's domain, or many inboxes will file it as spam. |
| Branded layout | The site's name above the message in a clean card. Off sends the paragraphs alone, for SMTP plugins that add their own. |
Emails leave through WordPress's own mailer, so an SMTP plugin carries them.
Sent once, with the right values
Notifications are queued as things happen and sent once, at the end of the save. That matters for two reasons:
- The values are current. A post's status changes before its fields are saved — the block editor, VX's editor, and the forms all write the post first and its fields after — so a message written at the moment of the status change would show the old values.
- One save sends one message. A post submitted and edited in the same save is only submitted, and an author whose post was approved is not also told it was published.
Recently sent
The last hundred messages sent or attempted, with when, which notification and audience, who it went to, and the subject — so "did it go out?" has an answer on screen instead of in the mail server's logs.
For developers
| Filter | What it does |
|---|---|
vxm/notifications/events | Add events. Forms and Memberships add theirs this way. |
vxm/notifications/post_types | Which post types get the five post notifications |
vxm/notifications/recipients | Add an audience, such as a listing's followers |
vxm/notifications/channels | Add or replace a channel, such as a text-message provider |

