| 开发者 |
notification
bracketspace Kubitomakita tomaszadamowicz insejn mateuszgbiorczyk |
|---|---|
| 更新时间 | 2026年3月11日 16:32 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 6.9 |
| 版权: | GPLv3 |
| 版权网址: | 版权信息 |
{post_title}, {user_email}, or {comment_content} to personalize every message{site_title}, {admin_email}, {home_url}, etc.) anywhere.
EXTENSIONS
Extend the plugin with additional carriers, triggers, and features:
do_action() call, add Merge Tags in a single line of code, or build entirely new Carriers. The plugin can be bundled with your theme or plugin and white-labeled with one function call.
load.php file. It will figure out if it's loaded from theme or from plugin.
See the detailed guideNo 3rd-party plugins needed. The Notification plugin comes with a built-in logger — activate it in Settings > Debugging and you'll see all notification parameters in a log visible only to you.
First, check if WordPress sends any emails at all — try resetting your password. If that email doesn't arrive, the issue is your server configuration, not this plugin. Use any SMTP plugin to fix that. You can also activate the debug log in plugin settings to confirm whether the notification is being triggered.
Absolutely. The plugin has an intuitive visual interface in the WordPress Admin — no coding skills required. Developers get a powerful API on top of that, but it's entirely optional.
Create a new notification and select the Post Published trigger. Add an Email carrier and set the recipient type to Email/Merge Tag with the value {post_author_user_email}. Use merge tags like {post_title} in the subject and {post_permalink}, {post_publication_datetime} in the body.
WordPress doesn't send these by default — it's one of the most requested missing features. Create a notification with the Post Pending Review trigger. Set the recipient to the Role type and choose Editor (or Administrator). Use {post_title}, {post_author_user_display_name}, and {post_permalink} to build a useful message.
First, disable the default WordPress new user email in Notifications > Settings > Integrations. Then create a notification with the User Registered trigger. Set the recipient to Email/Merge Tag → {user_email}. Use {user_login}, {user_password_setup_link}, and {site_title} in the body to create your branded welcome message.
Create a notification with the User Login Failed trigger. Set the recipient to the Administrator role. Include {user_login}, {user_IP}, and {user_login_failed_datetime} in the body to see who tried to log in, from where, and when.
Use the Post Updated trigger. Set the recipient to the Administrator role (or any role/email you prefer). Include {post_title}, {post_permalink}, {post_updating_user_display_name}, and {post_revision_link} in the body to see what changed and who changed it.
Create two notifications — one with the Plugin Activated trigger and one with the Plugin Updated trigger. Use {plugin_name}, {plugin_version}, and {plugin_activation_date_time} in the message body. Similar triggers are also available for themes.
Create a notification with the User Role Changed trigger. Set the recipient to Email/Merge Tag → {user_email} so the affected user gets the notification. Use {user_display_name}, {old_role}, and {new_role} in the body.
Create a notification with the Comment Published trigger. Set the recipient to Email/Merge Tag → {post_author_user_email} so the post author is notified. Use {comment_author_user_display_name}, {comment_content}, {post_title}, and {post_permalink} in the body.
Both plugins let you customize WordPress email notifications, but they take different approaches:
They solve completely different problems. OneSignal sends browser push notifications to re-engage visitors after they leave your site. Notification sends event-driven alerts (email, webhook, Slack, etc.) when something happens inside WordPress — a post is published, a user registers, a comment needs moderation. They complement each other rather than compete. Use OneSignal for marketing push notifications to your audience, and Notification for internal workflow alerts for your team.
Manage Notification E-mails gives you on/off toggles for default WordPress emails — you can mute them, but that's it. Notification can also disable default emails, but then lets you replace them with fully customized versions — custom content, custom recipients, merge tags, and multiple carrier options. It's the difference between muting emails and owning them.
With register_trigger() function. See the detailed guide
You can write a merge tag yourself or use the Custom Fields extension for a no-code solution.
Use the Conditionals extension to control exactly when a notification is sent.
Yes, just include filter-id:some-value in the Recipient value (using the Email/Merge tag type with the Email carrier), then return your recipient list from the notification/recipient/email/some-value filter.
Yes! We offer custom plugin development services. Feel free to contact us.
$trigger->{$post_type} has been replaced with static prop $trigger->post.property_name attribute rather than post_type to set trigger property used by resolvers.notification/data/save and notification/data/save/after now pass Core\Notification instance in the first param instead of the WordPress adapter instance.BracketSpace\Notification\Defaults\ changed to BracketSpace\Notification\Repository\BracketSpace\Notification\Abstracts\Carrier changed to BracketSpace\Notification\Repository\Carrier\BaseCarrierBracketSpace\Notification\Abstracts\Field changed to BracketSpace\Notification\Repository\Field\BaseFieldBracketSpace\Notification\Abstracts\MergeTag changed to BracketSpace\Notification\Repository\MergeTag\BaseMergeTagBracketSpace\Notification\Abstracts\Recipient changed to BracketSpace\Notification\Repository\Recipient\BaseRecipientBracketSpace\Notification\Abstracts\Resolver changed to BracketSpace\Notification\Repository\Resolver\BaseResolverBracketSpace\Notification\Abstracts\Trigger changed to BracketSpace\Notification\Repository\Trigger\BaseTrigger
Hook depracations:
notification/data/save/after, use notification/data/saved
Function and method deprecations:
BracketSpace\Notification\Admin\PostType::getAllNotifications(), use BracketSpace\Notification\Database\NotificationDatabaseService::getAll()
notification_convert_data(), use BracketSpace\Notification\Core\Notification::from('array', $array)notification_register_settings(), use the notification/settings/register action directlynotification_get_settings(), use \Notification::component('settings')->getSettings()notification_update_setting(), use \Notification::component('settings')->updateSetting()notification_get_setting(), use \Notification::component('settings')->getSetting()notification_adapt(), use BracketSpace\Notification\Core\Notification::to()notification_adapt_from(), use BracketSpace\Notification\Core\Notification::from()notification_swap_adapter(), use ::from() and ::to() methods on the BracketSpace\Notification\Core\Notification classnotification_add(), use BracketSpace\Notification\Register::notification()notification_log(), use BracketSpace\Notification\Core\Debugger::log()notification(), use BracketSpace\Notification\Register::notificationFromArray()
Removed deprecated hooks:
notitication/admin/notifications/pre, use notification/admin/carriers/pre
notitication/admin/notifications, use notification/admin/carriersnotification/email/use_html_mime, use notification/carrier/email/use_html_mimenotification/email/recipients, use notification/carrier/email/recipientsnotification/email/subject, use notification/carrier/email/subjectnotification/email/message/pre, use notification/carrier/email/message/prenotification/email/message/use_autop, use notification/carrier/email/message/use_autopnotification/email/message, use notification/carrier/email/messagenotification/email/headers, use notification/carrier/email/headersnotification/email/attachments, use notification/carrier/email/attachmentsnotification/webhook/args, use notification/carrier/webhook/argsnotification/webhook/args/{$type}, use notification/carrier/webhook/args/{$type}notification/notification/form_fields/values, use notification/carrier/fields/values
Full changelog
BracketSpace\Notification\Defaults\ to BracketSpace\Notification\Repository\.Date, DateTime and Time) now requires timestamp argument to be callable.property_name in all Merge Tags.