[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$foyBmTyhMTaOOFHXietgGebiUzKkBHsO8DRrNQ1XrgmM":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":24,"download_link":25,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28,"vulnerabilities":29,"developer":30,"crawl_stats":27,"alternatives":38,"analysis":139,"fingerprints":602},"signature-notification","Notification : Signature","4.0.0","Kuba Mikita","https:\u002F\u002Fprofiles.wordpress.org\u002Fkubitomakita\u002F","\u003Cp>This plugin allows to add signature to all emails sent by \u003Ca href=\"https:\u002F\u002Fbracketspace.com\u002Fnotification\u002F\" rel=\"nofollow ugc\">Notification WordPress plugin\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Custom development\u003C\u002Fh4>\n\u003Cp>BracketSpace – the company behind this plugin provides \u003Ca href=\"https:\u002F\u002Fbracketspace.com\u002Fcustom-development\u002F\" rel=\"nofollow ugc\">custom WordPress plugin development services\u003C\u002Fa>. We can create any custom plugin for you.\u003C\u002Fp>\n","Add your own Signature to Notification Emails",10,2346,0,"2025-08-25T11:29:00.000Z","6.8.5","3.6","",[19,20,21,22,23],"email","mail","notification","notify","signature","https:\u002F\u002Fbracketspace.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsignature-notification.4.0.0.zip",100,null,"2026-03-15T15:16:48.613Z",[],{"slug":31,"display_name":7,"profile_url":8,"plugin_count":32,"total_installs":33,"avg_security_score":34,"avg_patch_time_days":35,"trust_score":36,"computed_at":37},"kubitomakita",9,50520,95,237,76,"2026-04-04T14:00:01.152Z",[39,62,78,101,117],{"slug":40,"name":41,"version":42,"author":43,"author_profile":44,"description":45,"short_description":46,"active_installs":47,"downloaded":48,"rating":49,"num_ratings":50,"last_updated":51,"tested_up_to":15,"requires_at_least":52,"requires_php":53,"tags":54,"homepage":57,"download_link":58,"security_score":59,"vuln_count":60,"unpatched_count":13,"last_vuln_date":61,"fetched_at":28},"bnfw","Customize WordPress Emails and Alerts – Better Notifications for WP","1.9.9.1","Jack - BNFW","https:\u002F\u002Fprofiles.wordpress.org\u002Fvoltronik\u002F","\u003Cp>Better Notifications for WP is a simple but powerful plugin for that allows you to customise the email notifications that WordPress sends using a WYSIWYG editor and shortcodes. All of the default WordPress email notifications are available to customise as well as lots of new ones. You can choose to send notifications to individual users, multiple users, all users in a user role, multiple roles – you name it! You can also power-up your notifications with \u003Ca href=\"https:\u002F\u002Fbetternotificationsforwp.com\u002Fdownloads\u002F\" rel=\"nofollow ugc\">Premium Add-ons\u003C\u002Fa>. Emails are sent out via your WordPress website (using \u003Ccode>wp_mail\u003C\u002Fcode>) but can be sent via SMTP using a  3rd party plugin should you wish.\u003Cbr \u002F>\nIf you want to let users create their own email notifications\u002Fsubscriptions\u002Falerts, check out my other plugin: \u003Ca href=\"https:\u002F\u002Fcontentnotify.com\" rel=\"nofollow ugc\">Content Notify\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Here’s a quick walkthrough of the plugin in action:\u003Cbr \u002F>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FMxPUyRZPJ1Q?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch4>An Example:\u003C\u002Fh4>\n\u003Cp>You want all the users in the Editor role to be notified via email when a new post is published and you’d like to customise it to include your logo along with the author’s name and date \u002F time it was published – with this plugin, that’s easy.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>A handy list of shortcodes you can use is available \u003Ca href=\"https:\u002F\u002Fbetternotificationsforwp.com\u002Fdocumentation\u002Fnotifications\u002Fshortcodes\u002F\" title=\"Shortcodes for use in Better Notifications for WP\" rel=\"nofollow ugc\">here\u003C\u002Fa>.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch4>Premium Add-ons\u003C\u002Fh4>\n\u003Cp>Power-up your notifications using add-ons:\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbetternotificationsforwp.com\u002Fadd-on-bundles\u002F\" rel=\"nofollow ugc\">Notification Add-on Bundles\u003C\u002Fa> – Everything you need for your WordPress notifications. Save big when you buy an add-on bundle. Instant access.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbetternotificationsforwp.com\u002Fdownloads\u002Fsubscriptions-gdpr\u002F\" rel=\"nofollow ugc\">Subscriptions (GDPR)\u003C\u002Fa> – Allow users to manage their subscriptions for BNFW notifications.\u003Cbr \u002F>\nIf you want to let users create their own email notifications\u002Fsubscriptions\u002Falerts, check out my other plugin: \u003Ca href=\"https:\u002F\u002Fcontentnotify.com\" rel=\"nofollow ugc\">Content Notify\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbetternotificationsforwp.com\u002Fdownloads\u002Fconditional-notifications\u002F\" rel=\"nofollow ugc\">Conditional Notifications\u003C\u002Fa> – Limit certain notifications depending on which categories, tags, post formats, or terms you choose.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbetternotificationsforwp.com\u002Fdownloads\u002Fcustom-fields\u002F\" rel=\"nofollow ugc\">Custom Fields\u003C\u002Fa> – Provides a number of new shortcodes allowing you to include data from custom fields and custom user fields created using \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fadvanced-custom-fields\u002F\" rel=\"ugc\">ACF\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbetternotificationsforwp.com\u002Fdownloads\u002Fsend-to-any-email\u002F\" rel=\"nofollow ugc\">Send to Any Email\u003C\u002Fa> – Send notifications to non-WordPress Users.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbetternotificationsforwp.com\u002Fdownloads\u002Fdigest\u002F\" rel=\"nofollow ugc\">Digest\u003C\u002Fa> – Group multiple notifications into a single digest notification.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbetternotificationsforwp.com\u002Fdownloads\u002Fper-post-override\u002F\" rel=\"nofollow ugc\">Global Override\u003C\u002Fa> – Override some of the settings of notifications directly when editing a post, page, or custom post type.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbetternotificationsforwp.com\u002Fdownloads\u002Fupdate-reminder\u002F\" rel=\"nofollow ugc\">Reminders\u003C\u002Fa> – Send a reminder to your users and\u002For user roles when a post, page, or custom post type hasn’t been updated after a set amount of time. Also send a notification when a user hasn’t logged in for a set amount of time.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbetternotificationsforwp.com\u002Fdownloads\u002Fmultisite\u002F\" rel=\"nofollow ugc\">Multisite\u003C\u002Fa> – Adds new notifications and shortcodes for WordPress Multisite to Better Notifications for WP.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbetternotificationsforwp.com\u002Fdownloads\u002Fprofile-builder\u002F\" rel=\"nofollow ugc\">Profile Builder\u003C\u002Fa> – Adds compatibility and new notifications and shortcodes for Profile Builder Free, Hobbyist, and Pro plugins to Better Notifications for WP.\u003C\u002Fp>\n\u003Cp>…and more coming soon!\u003C\u002Fp>\n\u003Ch4>Notifications\u003C\u002Fh4>\n\u003Cp>The notifications that are currently available to use are:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Admin\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>New User Registration – For Admin\u003C\u002Fli>\n\u003Cli>User Lost Password – For Admin\u003C\u002Fli>\n\u003Cli>Password Changed – For Admin\u003C\u002Fli>\n\u003Cli>User Email Changed – For Admin\u003C\u002Fli>\n\u003Cli>User Role Changed – For Admin\u003C\u002Fli>\n\u003Cli>User Logged In – For Admin\u003C\u002Fli>\n\u003Cli>WordPress Core Automatic Background Updates\u003C\u002Fli>\n\u003Cli>Privacy – Confirm Action: Export Data Request – For Admin\u003C\u002Fli>\n\u003Cli>Privacy – Confirm Action: Erase Data Request – For Admin\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Transactional\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>New User Registration – For User\u003C\u002Fli>\n\u003Cli>New User – Post-registration Email\u003C\u002Fli>\n\u003Cli>User Lost Password – For User\u003C\u002Fli>\n\u003Cli>Password Changed – For User\u003C\u002Fli>\n\u003Cli>User Email Changed Confirmation – For User\u003C\u002Fli>\n\u003Cli>User Email Changed – For User\u003C\u002Fli>\n\u003Cli>User Role Changed – For User\u003C\u002Fli>\n\u003Cli>User Logged In – For User\u003C\u002Fli>\n\u003Cli>Comment Reply\u003C\u002Fli>\n\u003Cli>Privacy – Confirm Action: Export Data Request – For User\u003C\u002Fli>\n\u003Cli>Privacy – Confirm Action: Erase Data Request – For User\u003C\u002Fli>\n\u003Cli>Privacy – Data Export – For User\u003C\u002Fli>\n\u003Cli>Privacy – Data Erased – For User\u003C\u002Fli>\n\u003Cli>Profile Builder – Approval Request for Admin (\u003Ca href=\"https:\u002F\u002Fbetternotificationsforwp.com\u002Fdownloads\u002Fprofile-builder\u002F\" rel=\"nofollow ugc\">Profile Builder Add-on\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Profile Builder – Email Confirmation (\u003Ca href=\"https:\u002F\u002Fbetternotificationsforwp.com\u002Fdownloads\u002Fprofile-builder\u002F\" rel=\"nofollow ugc\">Profile Builder Add-on\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Profile Builder – Account Approved (\u003Ca href=\"https:\u002F\u002Fbetternotificationsforwp.com\u002Fdownloads\u002Fprofile-builder\u002F\" rel=\"nofollow ugc\">Profile Builder Add-on\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Profile Builder – Account Unapproved (\u003Ca href=\"https:\u002F\u002Fbetternotificationsforwp.com\u002Fdownloads\u002Fprofile-builder\u002F\" rel=\"nofollow ugc\">Profile Builder Add-on\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>User Login Reminder (\u003Ca href=\"https:\u002F\u002Fbetternotificationsforwp.com\u002Fdownloads\u002Fcustom-fields\u002F\" rel=\"nofollow ugc\">Reminders Add-on\u003C\u002Fa>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Posts \u002F Custom Post Types\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>New Post Published\u003C\u002Fli>\n\u003Cli>Post Updated\u003C\u002Fli>\n\u003Cli>Post Pending Review\u003C\u002Fli>\n\u003Cli>New Private Post\u003C\u002Fli>\n\u003Cli>Post Scheduled\u003C\u002Fli>\n\u003Cli>Published Post Moved to Trash\u003C\u002Fli>\n\u003Cli>New Comment\u003C\u002Fli>\n\u003Cli>New Comment Awaiting Moderation\u003C\u002Fli>\n\u003Cli>Post – Comment Approved\u003C\u002Fli>\n\u003Cli>Post – Custom Field Updated (\u003Ca href=\"https:\u002F\u002Fbetternotificationsforwp.com\u002Fdownloads\u002Fcustom-fields\u002F\" rel=\"nofollow ugc\">Custom Fields Add-on\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Post – Update Reminder (\u003Ca href=\"https:\u002F\u002Fbetternotificationsforwp.com\u002Fdownloads\u002Fupdate-reminder\u002F\" rel=\"nofollow ugc\">Reminders Add-on\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>New Trackback\u003C\u002Fli>\n\u003Cli>New Pingback\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Pages\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>New Page Published\u003C\u002Fli>\n\u003Cli>Page Updated\u003C\u002Fli>\n\u003Cli>Page Pending Review\u003C\u002Fli>\n\u003Cli>New Private Page\u003C\u002Fli>\n\u003Cli>Page Scheduled\u003C\u002Fli>\n\u003Cli>Page – New Comment\u003C\u002Fli>\n\u003Cli>Page – New Comment Awaiting Moderation\u003C\u002Fli>\n\u003Cli>Page – Comment Approved\u003C\u002Fli>\n\u003Cli>Page – Comment Reply\u003C\u002Fli>\n\u003Cli>Page – Custom Field Updated (\u003Ca href=\"https:\u002F\u002Fbetternotificationsforwp.com\u002Fdownloads\u002Fcustom-fields\u002F\" rel=\"nofollow ugc\">Custom Fields Add-on\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Page – Update Reminder (\u003Ca href=\"https:\u002F\u002Fbetternotificationsforwp.com\u002Fdownloads\u002Fupdate-reminder\u002F\" rel=\"nofollow ugc\">Reminders Add-on\u003C\u002Fa>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Media\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>New Media Published\u003C\u002Fli>\n\u003Cli>Media Updated\u003C\u002Fli>\n\u003Cli>Media – New Comment\u003C\u002Fli>\n\u003Cli>Media – New Comment Awaiting Moderation\u003C\u002Fli>\n\u003Cli>Media – Comment Approved\u003C\u002Fli>\n\u003Cli>Media – Comment Reply\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Posts\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>New Category\u003C\u002Fli>\n\u003Cli>New Tag\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Custom Post Types\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>New Term\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Multisite (\u003Ca href=\"https:\u002F\u002Fbetternotificationsforwp.com\u002Fdownloads\u002Fmultisite\u002F\" rel=\"nofollow ugc\">Multisite Add-on\u003C\u002Fa>)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>New Site Activated or Created – For Network Admin\u003C\u002Fli>\n\u003Cli>New User Created – For Network Admin\u003C\u002Fli>\n\u003Cli>Network Admin Email Change Attempted – For New Network Admin\u003C\u002Fli>\n\u003Cli>Network Admin Email Changed – For Old Network Admin\u003C\u002Fli>\n\u003Cli>New Site Activated or Created – For Site Admin\u003C\u002Fli>\n\u003Cli>Site Deleted – For Site Admin\u003C\u002Fli>\n\u003Cli>Site Admin Email Change Attempted – For New Site Admin\u003C\u002Fli>\n\u003Cli>Site Admin Email Changed – For Old Site Admin\u003C\u002Fli>\n\u003Cli>New Site Activated – For User\u003C\u002Fli>\n\u003Cli>New User Created – For User\u003C\u002Fli>\n\u003Cli>New User Invited to Site – For User\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>If you’d like to see a notification in the list above, please drop me a line in the forum and I’ll see what I can do to add it.\u003C\u002Fp>\n\u003Cp>If you want to let users create their own email notifications\u002Fsubscriptions\u002Falerts, check out my other plugin: \u003Ca href=\"https:\u002F\u002Fcontentnotify.com\" rel=\"nofollow ugc\">Content Notify\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>Like this plugin? Please leave it \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fbnfw\u002Freviews\u002F?rate=5#new-post\" rel=\"ugc\">a great review\u003C\u002Fa>! Don’t think the plugin is worthy of 5 stars? Having problems? Let me know in the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fbnfw\u002F\" rel=\"ugc\">forum\u003C\u002Fa> and I’ll do my best to help.\u003C\u002Fp>\n\u003Cp>DISCLAIMER\u003Cbr \u002F>\n  This is an incredibly useful and highly rated plugin however, it’s possible that overuse or abuse of this plugin could upset your users by sending them too many notifications. By downloading \u002F installing \u002F using this plugin, you take full responsibility of the management \u002F quantity \u002F types of notifications that are sent out from it including abiding by any SPAM laws in your country \u002F operating areas, dealing with \u002F responding to subscription \u002F unsubscription requests, complaints, and so on. I accept no liability or responsibility for SPAM or abuse of this plugin from the user(s) of or anyone that may receive notifications as a result of the use of this plugin. I’m trusting you, please don’t abuse your users.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n","Supercharge your WordPress email notifications using a WYSIWYG editor and shortcodes. Default and new notifications available. Add-ons available.",30000,1035011,96,184,"2025-09-08T10:17:00.000Z","4.8","7.4",[55,19,56,21,22],"alert","message","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fbnfw\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbnfw.1.9.9.1.zip",99,2,"2023-05-18 00:00:00",{"slug":21,"name":63,"version":64,"author":7,"author_profile":8,"description":65,"short_description":66,"active_installs":67,"downloaded":68,"rating":69,"num_ratings":70,"last_updated":71,"tested_up_to":72,"requires_at_least":73,"requires_php":53,"tags":74,"homepage":17,"download_link":75,"security_score":26,"vuln_count":76,"unpatched_count":13,"last_vuln_date":77,"fetched_at":28},"Notification – Custom Notifications and Alerts for WordPress","9.0.10","\u003Cp>\u003Cstrong>WordPress sends emails you can’t customize.\u003C\u002Fstrong> You can’t change who receives them, what they say, or how they look. And if you need to notify your team about content changes, user activity, or security events — WordPress simply doesn’t do that.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Notification fixes this.\u003C\u002Fstrong> It gives you complete control over what WordPress sends, to whom, and through which channel. Replace rigid default emails with fully customizable messages, or create entirely new notifications triggered by any WordPress event. No coding required — set up your first notification in under 5 minutes.\u003C\u002Fp>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FgW2KHrT_a7U?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n\u003Ch4>WHAT YOU CAN DO WITH THE FREE VERSION\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Replace default WordPress emails\u003C\u002Fstrong> — Disable any built-in email (new user, password reset, comments, etc.) and replace it with your own version using the built-in Wizard\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Create custom notifications\u003C\u002Fstrong> — Get notified when posts are published, users register, comments arrive, plugins update, and 50+ other WordPress events\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Use dynamic content\u003C\u002Fstrong> — Insert Merge Tags like \u003Ccode>{post_title}\u003C\u002Fcode>, \u003Ccode>{user_email}\u003C\u002Fcode>, or \u003Ccode>{comment_content}\u003C\u002Fcode> to personalize every message\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Send to anyone\u003C\u002Fstrong> — Route notifications to specific email addresses, users, or entire roles\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Send via email or webhook\u003C\u002Fstrong> — Email is built-in; webhooks let you connect to any external service or automation tool\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Control with precision\u003C\u002Fstrong> — Enable or disable individual triggers, configure carriers, and set up multiple notifications per event\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>REPLACE DEFAULT WORDPRESS EMAILS\u003C\u002Fh4>\n\u003Cp>The built-in Wizard walks you through disabling WordPress default emails and replacing them with your own. You keep full control over the content, recipients, and formatting — no more generic messages you can’t edit.\u003C\u002Fp>\n\u003Ch4>BUILT-IN TRIGGERS\u003C\u002Fh4>\n\u003Cp>Over 50 triggers are ready to use out of the box. Enable or disable them in Settings.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Posts & Custom Post Types\u003C\u002Fstrong> — published, drafted, updated, pending review, approved, trashed (works with any CPT)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Taxonomy terms\u003C\u002Fstrong> — created, updated, deleted (works with any taxonomy)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Comments, Pingbacks & Trackbacks\u003C\u002Fstrong> — new, replied, approved, unapproved, spam, trashed\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Users\u003C\u002Fstrong> — registered, profile updated, logged in, failed login, logged out, password reset\u002Fchanged, deleted\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Media\u003C\u002Fstrong> — added, updated, deleted\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Plugins\u003C\u002Fstrong> — activated, deactivated, installed, removed, updated\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Themes\u003C\u002Fstrong> — installed, switched, updated\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WordPress\u003C\u002Fstrong> — available updates (on a schedule you define)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy\u003C\u002Fstrong> — personal data erased, erase request, exported, export request\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Each trigger comes with its own set of Merge Tags, plus you can use Global Merge Tags (\u003Ccode>{site_title}\u003C\u002Fcode>, \u003Ccode>{admin_email}\u003C\u002Fcode>, \u003Ccode>{home_url}\u003C\u002Fcode>, etc.) anywhere.\u003C\u002Fp>\n\u003Ch4>EXTENSIONS\u003C\u002Fh4>\n\u003Cp>Extend the plugin with additional carriers, triggers, and features:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbracketspace.com\u002Fdownloads\u002Fnotification-webhooks\u002F\" rel=\"nofollow ugc\">Webhooks\u003C\u002Fa> – send and receive Webhooks\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbracketspace.com\u002Fdownloads\u002Fnotification-conditionals\u002F\" rel=\"nofollow ugc\">Conditionals\u003C\u002Fa> – send Notifications only when specific conditions are met\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbracketspace.com\u002Fdownloads\u002Fnotification-custom-fields\u002F\" rel=\"nofollow ugc\">Custom Fields\u003C\u002Fa> – use any meta value in your Notifications\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbracketspace.com\u002Fdownloads\u002Fnotification-slack\u002F\" rel=\"nofollow ugc\">Slack\u003C\u002Fa> – post messages to Slack channel\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbracketspace.com\u002Fdownloads\u002Fnotification-push\u002F\" rel=\"nofollow ugc\">Push\u003C\u002Fa> – send push notifications via browser’s native system\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbracketspace.com\u002Fdownloads\u002Fnotification-discord\u002F\" rel=\"nofollow ugc\">Discord\u003C\u002Fa> – post messages to Discord channel\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbracketspace.com\u002Fdownloads\u002Fnotification-twilio\u002F\" rel=\"nofollow ugc\">Twilio\u003C\u002Fa> – send bulk SMS messages from your Twilio registered phone number\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbracketspace.com\u002Fdownloads\u002Fnotification-scheduled-triggers\u002F\" rel=\"nofollow ugc\">Scheduled Triggers\u003C\u002Fa> – schedule your notifications based on events time\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbracketspace.com\u002Fdownloads\u002Fnotification-review-queue\u002F\" rel=\"nofollow ugc\">Review Queue\u003C\u002Fa> – catch your Notifications into a queue for manual review\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbracketspace.com\u002Fdownloads\u002Fnotification-woocommerce\u002F\" rel=\"nofollow ugc\">WooCommerce\u003C\u002Fa> – triggers specific to WooCommerce\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbracketspace.com\u002Fdownloads\u002Fnotification-pushbullet\u002F\" rel=\"nofollow ugc\">Pushbullet\u003C\u002Fa> – send Push and SMS Notifications via your phone\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbracketspace.com\u002Fdownloads\u002Fnotification-pushover\u002F\" rel=\"nofollow ugc\">Pushover\u003C\u002Fa> – send Push messages to devices registered in Pushover\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbracketspace.com\u002Fdownloads\u002Fnotification-sendgrid\u002F\" rel=\"nofollow ugc\">SendGrid\u003C\u002Fa> – send emails using SendGrid service\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbracketspace.com\u002Fdownloads\u002Fnotification-mailgun\u002F\" rel=\"nofollow ugc\">Mailgun\u003C\u002Fa> – send emails using Mailgun service\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbracketspace.com\u002Fdownloads\u002Fnotification-file-log\u002F\" rel=\"nofollow ugc\">File Log\u003C\u002Fa> – save Notifications as file logs on the server\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fnotification-bbpress\u002F\" rel=\"ugc\">bbPress\u003C\u002Fa> – bbPress triggers\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fnotification-buddypress\u002F\" rel=\"ugc\">BuddyPress\u003C\u002Fa> – BuddyPress triggers and integration with their notification system\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsignature-notification\u002F\" rel=\"ugc\">Signature\u003C\u002Fa> – add a signature to all your emails automatically\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbracketspace.com\u002Fdownloads\u002Fnotification-email-attachments\u002F\" rel=\"nofollow ugc\">Email Attachments\u003C\u002Fa> – attach files to your notification\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>DEVELOPER-FRIENDLY\u003C\u002Fh4>\n\u003Cp>Notification is designed to be extended. Create custom Triggers from any \u003Ccode>do_action()\u003C\u002Fcode> 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.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fdocs.bracketspace.com\u002Fnotification\u002Fdeveloper\u002Fgeneral\" rel=\"nofollow ugc\">Developer documentation\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FBracketSpace\u002FNotification-Extension-Boilerplate\u002F\" rel=\"nofollow ugc\">Extension Boilerplate\u003C\u002Fa> to start building your own add-on\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>USE CASES\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Editorial workflows\u003C\u002Fstrong> — Notify editors when a post is submitted for review, and authors when it’s approved or scheduled\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Security monitoring\u003C\u002Fstrong> — Get alerts on failed login attempts, user role changes, or plugin activations\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Client sites\u003C\u002Fstrong> — Replace confusing default WordPress emails with branded, clear messages for your clients\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Team coordination\u003C\u002Fstrong> — Send Slack or webhook notifications when content is updated, users register, or comments need moderation\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WooCommerce stores\u003C\u002Fstrong> — Trigger custom alerts for orders, stock changes, and customer activity (with the WooCommerce extension)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Here are some of the most popular specific setups. See the FAQ section for step-by-step details on each.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Notify authors when their post is published\u003C\u002Fli>\n\u003Cli>Email editors when a post is submitted for review\u003C\u002Fli>\n\u003Cli>Replace the default new user welcome email with a branded version\u003C\u002Fli>\n\u003Cli>Alert admins on failed login attempts with IP address details\u003C\u002Fli>\n\u003Cli>Get notified when someone edits a published post\u003C\u002Fli>\n\u003Cli>Send Slack\u002Fwebhook alerts when plugins are activated or updated\u003C\u002Fli>\n\u003Cli>Notify users when their role changes\u003C\u002Fli>\n\u003Cli>Disable default WordPress emails and replace them with custom ones\u003C\u002Fli>\n\u003Cli>Monitor user registrations, password resets, and account deletions\u003C\u002Fli>\n\u003Cli>Set up comment moderation notifications for post authors\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>USEFUL LINKS\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fdocs.bracketspace.com\u002Fnotification\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FBracketSpace\u002FNotification\" rel=\"nofollow ugc\">GitHub repository\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FBracketSpace\u002FNotification\u002Fissues\u002Fnew\" rel=\"nofollow ugc\">Report a bug\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>CUSTOM DEVELOPMENT\u003C\u002Fh4>\n\u003Cp>BracketSpace – the company behind this plugin provides \u003Ca href=\"https:\u002F\u002Fbracketspace.com\u002Fcustom-development\u002F\" rel=\"nofollow ugc\">custom WordPress plugin development services\u003C\u002Fa>. We can create any custom plugin for you.\u003C\u002Fp>\n","Take full control of WordPress emails and notifications. Replace default messages, add custom triggers, and send alerts via email, webhook, Slack, and &hellip;",10000,402473,92,124,"2026-03-11T08:32:00.000Z","6.9.4","5.8",[55,19,20,21,22],"https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fnotification.9.0.10.zip",1,"2021-10-25 00:00:00",{"slug":79,"name":80,"version":81,"author":82,"author_profile":83,"description":84,"short_description":85,"active_installs":86,"downloaded":87,"rating":36,"num_ratings":88,"last_updated":89,"tested_up_to":72,"requires_at_least":90,"requires_php":91,"tags":92,"homepage":17,"download_link":98,"security_score":99,"vuln_count":76,"unpatched_count":76,"last_vuln_date":100,"fetched_at":28},"email-notification-on-login","Email Notification on Login","1.7.0","apasionados","https:\u002F\u002Fprofiles.wordpress.org\u002Fapasionados\u002F","\u003Cp>This plugin sends an email to the WordPress System email (Settings \u002F General \u002F Email Address) or any other configured email address each time somebody logs into WordPress. This is handy if there are not many logins each day or week to keep track of all of them and being able to detect non authorized logins.\u003C\u002Fp>\n\u003Cp>The email contains the username, the user id and the user role (administrator, editor, author or contributor). Other data included is the Date & Time and the IP Address.\u003C\u002Fp>\n\u003Cp>This plugin is an enhanced version of the plugin \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Femail-notification-on-admin-login\u002F\" rel=\"ugc\">Email notification on admin login\u003C\u002Fa>, that tracks all users, includes user role, translations and the lookup of the country of the IP from which the form is sent.\u003C\u002Fp>\n\u003Cp>We created this enhanced version of the plugin, because we needed a translation to Spanish and wanted to know the country from which the uses send the contact form, whithout having to lookup the IP address.\u003C\u002Fp>\n\u003Cp>In order to display the Country it needs the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fgeoip-detect\u002F\" rel=\"ugc\">Geolocation IP Detection (until March 2020: GeoIP Detection) plugin\u003C\u002Fa> that can be found in the WordPress plugin repository. This plugin “provides geographic information detected by an IP adress”. \u003Cem>This plugin auto-updates the GeoIP database once a week. This product includes GeoLite data created by MaxMind, available from \u003Ca href=\"http:\u002F\u002Fwww.maxmind.com\" rel=\"nofollow ugc\">www.maxmind.com\u003C\u002Fa>.\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>If the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fgeoip-detect\u002F\" rel=\"ugc\">Geolocation IP Detection (until March 2020: GeoIP Detection) plugin\u003C\u002Fa> is not installed and enabled, you will only see the IP address, without the country of the IP adress.\u003C\u002Fp>\n\u003Cp>We decided to use the Geolocation IP Detection (until March 2020: GeoIP Detection) plugin to handle the lookup of the country, because it’s a plugin that is actively developed and we saw no advantage in implementing all this functionality, when we could use an existing one.\u003C\u002Fp>\n\u003Ch4>What can I do with this plugin?\u003C\u002Fh4>\n\u003Cp>This plugin sends an email to the WordPress System email (Settings \u002F General \u002F Email Address) or any other configured email address each time somebody logs into WordPress. This is handy if there are not many logins each day or week to keep track of all of them and being able to detect non authorized logins.\u003C\u002Fp>\n\u003Ch4>What ideas is this plugin based on?\u003C\u002Fh4>\n\u003Cp>This plugin is an enhanced version of the plugin \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Femail-notification-on-admin-login\u002F\" rel=\"ugc\">Email notification on admin login\u003C\u002Fa>, that tracks all users, includes user role, translations and the lookup of the country of the IP from which the form is sent.\u003C\u002Fp>\n\u003Ch4>System requirements\u003C\u002Fh4>\n\u003Cp>PHP version 5.5 or greater.\u003C\u002Fp>\n\u003Ch4>Email notification on Login Plugin in your Language!\u003C\u002Fh4>\n\u003Cp>This first release is avaliable in English and Spanish. In the “languages” folder we have included the necessarry files to translate this plugin.\u003C\u002Fp>\n\u003Cp>If you would like the plugin in your language and you’re good at translating, please drop us a line at \u003Ca href=\"https:\u002F\u002Fapasionados.es\u002Fcontacto\u002Findex.php?desde=wordpress-org-email-notification-on-login-home\" rel=\"nofollow ugc\">Contact us\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Further Reading\u003C\u002Fh4>\n\u003Cp>You can access the description of the plugin in Spanish at: \u003Ca href=\"https:\u002F\u002Fapasionados.es\u002Fblog\u002Fenviar-email-cuando-alguien-se-loguea-wordpress-plugin-7762\u002F\" rel=\"nofollow ugc\">Email notification on Login en espa&ntilde;ol\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Contact\u003C\u002Fh3>\n\u003Cp>For further information please send us an \u003Ca href=\"https:\u002F\u002Fapasionados.es\u002Fcontacto\u002Findex.php?desde=wordpress-org-email-notification-on-login\" rel=\"nofollow ugc\">email\u003C\u002Fa>.\u003C\u002Fp>\n","Receive an email after each successful login with the user information",1000,19562,11,"2026-01-27T14:14:00.000Z","4.0.1","5.5",[93,94,95,96,97],"admin-login-notification","email-notification","email-notify-on-admin-login","email-notify-on-login","login-notification","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Femail-notification-on-login.zip",78,"2025-05-07 00:00:00",{"slug":102,"name":103,"version":104,"author":105,"author_profile":106,"description":107,"short_description":108,"active_installs":86,"downloaded":109,"rating":26,"num_ratings":110,"last_updated":111,"tested_up_to":72,"requires_at_least":112,"requires_php":113,"tags":114,"homepage":115,"download_link":116,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"simple-login-notification","Simple Login Notification","2.2","Jeff Starr","https:\u002F\u002Fprofiles.wordpress.org\u002Fspecialk\u002F","\u003Cp>Sends a detailed notification email when admins and other users log in to your site. Choose the user levels\u002Froles for which you would like to receive login notifications. Optionally exclude users and\u002For IP addresses.\u003C\u002Fp>\n\u003Cp>This plugin is useful for keeping an eye on any unauthorized administrator or user logins. Each email alert includes the user name, IP address, user agent, and other details. Very useful for forensic investigations.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>👁️ Keep an eye on things..\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>\u003Cstrong>Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Send email alerts for any user level\u002Frole\u003C\u002Fli>\n\u003Cli>Option to exclude alerts for any user ID\u003C\u002Fli>\n\u003Cli>Option to exclude alerts for any IP address\u003C\u002Fli>\n\u003Cli>Send alerts to additional email addresses\u003C\u002Fli>\n\u003Cli>Automatically send alerts to main Admin user\u003C\u002Fli>\n\u003Cli>Option to disable alerts for main Admin user\u003C\u002Fli>\n\u003Cli>Provides detailed information about each login\u003C\u002Fli>\n\u003Cli>Lightweight and fast: total plugin size \u003C 100KB\u003C\u002Fli>\n\u003Cli>Simple to use: configure a few options and done\u003C\u002Fli>\n\u003Cli>No permanent changes are made to anything\u003C\u002Fli>\n\u003Cli>Easy peasy mac and cheesy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cblockquote>\n\u003Cp>👇 Check out the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsimple-login-notification\u002F#screenshots\" rel=\"ugc\">screenshots\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>\u003Cstrong>Why is this useful?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>I use this plugin to keep an eye on any unauthorized login attempts. Probably a bit paranoid but I don’t care, paranoid works well for me.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>How is this plugin different?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>While researching for this plugin, I found four other “admin login notification” type plugins:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Femail-notification-on-login\u002F\" rel=\"ugc\">Email Notification on Login\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Femail-notification-on-admin-login\u002F\" rel=\"ugc\">Email notification on admin login\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fkaya-login-notification\u002F\" rel=\"ugc\">Kaya Login Notification\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fkolorweb-access-admin-notification\u002F\" rel=\"ugc\">KolorWeb Access Admin Notification\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Unfortunately none of these plugins suited my specific needs:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Lightweight, clean and simple\u003C\u002Fli>\n\u003Cli>Current with latest WordPress\u003C\u002Fli>\n\u003Cli>No requirement for PHP sessions\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>So I decided to build my own. Let me emphasize the utter simplicity of this plugin. It does one thing and does it well: sends an email whenever an admin-level user logs in to WordPress. No bells and whistles, no bloat. If you need more functionality, check out the above plugins should get you there.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Privacy\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>This plugin does not collect or store any user data. It does not set any cookies, and it does not connect to any third-party locations. The \u003Cem>only\u003C\u002Fem> thing this plugin does is send an email for each admin-level login. Each email includes information about the user, such as username, IP address, user agent, and other details.\u003C\u002Fp>\n\u003Cp>Simple Login Notification is developed and maintained by \u003Ca href=\"https:\u002F\u002Fx.com\u002Fperishable\" rel=\"nofollow ugc\">Jeff Starr\u003C\u002Fa>, 15-year \u003Ca href=\"https:\u002F\u002Fplugin-planet.com\u002F\" rel=\"nofollow ugc\">WordPress developer\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fbooks.perishablepress.com\u002F\" rel=\"nofollow ugc\">book author\u003C\u002Fa>.\u003C\u002Fp>\n","Sends a notification email when admins and other users log in to your site.",12427,7,"2026-02-02T15:42:00.000Z","5.3","5.6.20",[93,94,95,97],"https:\u002F\u002Fperishablepress.com\u002Fsimple-login-notification\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsimple-login-notification.2.2.zip",{"slug":118,"name":119,"version":120,"author":121,"author_profile":122,"description":123,"short_description":124,"active_installs":125,"downloaded":126,"rating":99,"num_ratings":127,"last_updated":128,"tested_up_to":129,"requires_at_least":130,"requires_php":53,"tags":131,"homepage":134,"download_link":135,"security_score":136,"vuln_count":137,"unpatched_count":13,"last_vuln_date":138,"fetched_at":28},"post-status-notifier-lite","Post Status Notifier Lite","1.11.7","Timo","https:\u002F\u002Fprofiles.wordpress.org\u002Fworschtebrot\u002F","\u003Ch4>Notify every WordPress post change!\u003C\u002Fh4>\n\u003Cp>You want to \u003Cstrong>be notified\u003C\u002Fstrong> when one of your contributors have submitted a new post for revision or an editor published one? Vice versa you want to \u003Cstrong>notify your contributors\u003C\u002Fstrong> when their posts got published?\u003Cbr \u002F>\nThis is just the beginning of what you can achieve with Post Status Notifier (PSN)!\u003C\u002Fp>\n\u003Cp>It works with all kind of \u003Cstrong>custom post types\u003C\u002Fstrong>, supports all \u003Cstrong>custom taxonomies\u003C\u002Fstrong> like categories and tags other plugins are using. You can grab all these taxonomy values and custom fields attached to a post and use them as \u003Cstrong>placeholders\u003C\u002Fstrong> in your custom notification texts. PSN has a powerful \u003Cstrong>conditional template syntax\u003C\u002Fstrong> featuring many filters and functions to get the most out of the placeholders!\u003C\u002Fp>\n\u003Cp>Define as many notification rules as you need with all kind of settings, like custom \u003Cstrong>CC\u003C\u002Fstrong>, \u003Cstrong>BCC\u003C\u002Fstrong> and \u003Cstrong>FROM\u003C\u002Fstrong> emails addresses. PSN is \u003Cstrong>extensible\u003C\u002Fstrong>! Build your custom module to implement a new notification service.\u003C\u002Fp>\n\u003Cp>PSN works great with plugins like \u003Cstrong>WP Job Manager\u003C\u002Fstrong> (\u003Ca href=\"https:\u002F\u002Fwww.ifeelweb.de\u002F2014\u002F666\u002Fnotify-wp-job-manager-listings-wordpress-plugin-post-status-notifier\u002F\" rel=\"nofollow ugc\">read more\u003C\u002Fa>), Calendarize.it (\u003Ca href=\"https:\u002F\u002Fwww.ifeelweb.de\u002F2014\u002F748\u002Fnotify-calendarize-events-wordpress-plugin-post-status-notifier\u002F\" rel=\"nofollow ugc\">read more\u003C\u002Fa>), \u003Cstrong>Crowdfunding by Astoundify\u003C\u002Fstrong> (\u003Ca href=\"https:\u002F\u002Fwww.ifeelweb.de\u002F2014\u002F706\u002Fnotify-payments-crowdfunding-astoundify-post-status-notifier\u002F\" rel=\"nofollow ugc\">read more\u003C\u002Fa>) or \u003Cstrong>Advanced Custom Fields\u003C\u002Fstrong>, just to name a few. The possibilities are endless. Want to \u003Cstrong>automate your publishing workflow\u003C\u002Fstrong> with \u003Ca href=\"https:\u002F\u002Fbufferapp.com\u002F\" rel=\"nofollow ugc\">Buffer\u003C\u002Fa>? No problem!\u003C\u002Fp>\n\u003Cp>Plugin homepage:\u003Cbr \u002F>\nhttps:\u002F\u002Fwww.ifeelweb.de\u002Fwp-plugins\u002Fpost-status-notifier\u002F\u003C\u002Fp>\n\u003Cp>Always up-to-date online documentation:\u003Cbr \u002F>\nhttps:\u002F\u002Fdocs.ifeelweb.de\u002Fpost-status-notifier\u002F\u003C\u002Fp>\n\u003Cp>FAQ:\u003Cbr \u002F>\nhttps:\u002F\u002Fdocs.ifeelweb.de\u002Fpost-status-notifier\u002Ffaq.html\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cp>Get the \u003Ca href=\"https:\u002F\u002Fcodecanyon.net\u002Fitem\u002Fpost-status-notifier\u002F4809420?ref=ifeelweb\" rel=\"nofollow ugc\">Premium version\u003C\u002Fa> for all features\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Define \u003Cstrong>custom notification rules\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Support for posts, pages and all \u003Cstrong>custom post types\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Support for \u003Cstrong>all post status\u003C\u002Fstrong> values\u003C\u002Fli>\n\u003Cli>Create \u003Cstrong>custom email texts\u003C\u002Fstrong> with support for many placeholders\u003C\u002Fli>\n\u003Cli>Manipulate placeholders content with \u003Cstrong>filters\u003C\u002Fstrong> to completely adjust the output to your needs (uses the filters of the famous PHP template engine Twig \u002F limited to one filter in the Lite version)\u003C\u002Fli>\n\u003Cli>WordPress \u003Cstrong>multisite compatible\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Premium version: \u003Ca href=\"https:\u002F\u002Fdocs.ifeelweb.de\u002Fpost-status-notifier\u002Fmail_templates.html\" rel=\"nofollow ugc\">HTML emails \u002F mail templates\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Premium version: \u003Ca href=\"https:\u002F\u002Fdocs.ifeelweb.de\u002Fpost-status-notifier\u002Fmailqueue.html\" rel=\"nofollow ugc\">Mail queue \u002F deferred sending\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Premium version: Categories filter: Include or exclude categories (even from custom post types) from notifications\u003C\u002Fli>\n\u003Cli>Premium version: Supports \u003Cstrong>SMTP\u003C\u002Fstrong>. You find all necessary SMTP settings to connect your SMTP server in the options section.\u003C\u002Fli>\n\u003Cli>Premium version: Supports \u003Cstrong>user roles\u003C\u002Fstrong> (custom roles too) as email recipients\u003C\u002Fli>\n\u003Cli>Premium version: Optional \u003Cstrong>logging\u003C\u002Fstrong>: Logs status changes based on your rules\u003C\u002Fli>\n\u003Cli>Premium version: \u003Cstrong>Dashboard widget\u003C\u002Fstrong> showing the latest log entries (can be disabled)\u003C\u002Fli>\n\u003Cli>Premium version: \u003Cstrong>Import \u002F Export\u003C\u002Fstrong> of your notification rules\u003C\u002Fli>\n\u003Cli>Premium version: \u003Cstrong>Copy\u003C\u002Fstrong> rules\u003C\u002Fli>\n\u003Cli>Premium version: \u003Cstrong>Conditional template syntax\u003C\u002Fstrong> (\u003Ca href=\"https:\u002F\u002Fdocs.ifeelweb.de\u002Fpost-status-notifier\u002Fconditional_templates.html\" rel=\"nofollow ugc\">Manual\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Premium version: Extensible (\u003Ca href=\"https:\u002F\u002Fdocs.ifeelweb.de\u002Fpost-status-notifier\u002Fextending_index.html\" rel=\"nofollow ugc\">Manual\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Premium version: Custom sender e-mail. Define the notification sender (\u003Cstrong>FROM\u003C\u002Fstrong>) per rule or as a default in the options.\u003C\u002Fli>\n\u003Cli>Premium version: Mandrill support\u003C\u002Fli>\n\u003Cli>Premium version: \u003Ca href=\"https:\u002F\u002Fdocs.ifeelweb.de\u002Fpost-status-notifier\u002Fdynamic_recipients.html\" rel=\"nofollow ugc\">Dynamic recipients\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Premium version: \u003Ca href=\"https:\u002F\u002Fdocs.ifeelweb.de\u002Fpost-status-notifier\u002Foptions.html#late-execution\" rel=\"nofollow ugc\">Late execution\u003C\u002Fa> to support frontend submission plugins as well as possible\u003C\u002Fli>\n\u003Cli>Premium version: \u003Ca href=\"https:\u002F\u002Fdocs.ifeelweb.de\u002Fpost-status-notifier\u002Flimitations.html\" rel=\"nofollow ugc\">Rule trigger limitations\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Comprehensive \u003Cstrong>documentation\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Included \u003Cstrong>translations\u003C\u002Fstrong>: english, german\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Support\u003C\u002Fstrong> in english and german via Zendesk: ifeelwebde.zendesk.com\u003C\u002Fli>\n\u003Cli>Tested on Windows, Mac OS and Linux\u003C\u002Fli>\n\u003Cli>Built on our ifeelweb.de WordPress Plugin Framework\u003C\u002Fli>\n\u003Cli>The Lite version features two notification rules and one CC email\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>What customers say\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>“Great plugin, look through maybe 7 plugins until found this one and it is the best.”\u003C\u002Fstrong>\u003Cbr \u002F>\n– misolek\u003C\u002Fp>\n\u003Cp>\u003Cstrong>“just got the pro version and it’s working great, awesome plugin man and thanks for your excellent support”\u003C\u002Fstrong>\u003Cbr \u002F>\n– nomadone\u003C\u002Fp>\n\u003Cp>“This plugin is very intuitive and works great. Very helpful support. Top notch!”\u003Cbr \u002F>\n– Rick\u003C\u002Fp>\n\u003Cp>\u003Cstrong>“Thank you for your great support – the plugin works great now and has accomplished what 5 other commercial and free plugins couldn’t – to provide simple and configurable email notifications for WP status changes.”\u003C\u002Fstrong>\u003Cbr \u002F>\n– Jon\u003C\u002Fp>\n\u003Cp>\u003Cstrong>“just got the pro version and it’s working great, awesome plugin man and thanks for your excellent support”\u003C\u002Fstrong>\u003Cbr \u002F>\n– nomadone\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fcodecanyon.net\u002Fitem\u002Fpost-status-notifier\u002Fdiscussion\u002F4809420\" rel=\"nofollow ugc\">Comment-Source\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Configuration\u003C\u002Fh3>\n\u003Cp>Go to the new option page \u003Ccode>Post Status Notifier Lite\u003C\u002Fcode>. Here you can define custom notification rules.\u003C\u002Fp>\n\u003Cp>Here you can find a detailed documentation:\u003C\u002Fp>\n\u003Cp>https:\u002F\u002Fdocs.ifeelweb.de\u002Fpost-status-notifier\u002F\u003C\u002Fp>\n\u003Ch3>Info\u003C\u002Fh3>\n\u003Cp>If you find any bugs please use the comments on the \u003Ca href=\"https:\u002F\u002Fwww.ifeelweb.de\u002Fcontact\u002F\" rel=\"nofollow ugc\">plugin’s homepage\u003C\u002Fa>. Please also contact me for feature requests and ideas how to improve this plugin. Any other reactions are welcome too of course.\u003C\u002Fp>\n","Notify on every post change: Flexible rules, custom placeholders and support for all post types and taxonomies.",800,50689,17,"2024-10-24T12:26:00.000Z","6.6.5","3.3",[19,21,22,132,133],"post","status","http:\u002F\u002Fwww.ifeelweb.de\u002Fwp-plugins\u002Fpost-status-notifier\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-status-notifier-lite.1.11.7.zip",90,3,"2024-10-28 00:00:00",{"attackSurface":140,"codeSignals":170,"taintFlows":539,"riskAssessment":588,"analyzedAt":601},{"hooks":141,"ajaxHandlers":166,"restRoutes":167,"shortcodes":168,"cronEvents":169,"entryPointCount":13,"unprotectedCount":13},[142,149,154,159,163],{"type":143,"name":144,"callback":145,"priority":146,"file":147,"line":148},"action","notification\u002Fsettings\u002Fregister","registerCarrierSettings",30,"compat\\register-hooks.php",13,{"type":150,"name":151,"callback":152,"priority":11,"file":147,"line":153},"filter","notification\u002Fcarrier\u002Femail\u002Fmessage\u002Fpre","add",14,{"type":143,"name":155,"callback":156,"file":157,"line":158},"admin_notices","closure","dependencies\\micropackage\\requirements\\src\\Requirements.php",267,{"type":143,"name":160,"callback":156,"priority":76,"file":161,"line":162},"notification\u002Finit","load.php",18,{"type":143,"name":160,"callback":156,"priority":60,"file":164,"line":165},"signature-notification.php",108,[],[],[],[],{"dangerousFunctions":171,"sqlUsage":516,"outputEscaping":518,"fileOperations":537,"externalRequests":60,"nonceChecks":76,"capabilityChecks":13,"bundledLibraries":538},[172,177,181,186,190,194,198,201,205,208,211,215,219,223,227,229,231,234,236,240,244,247,250,252,255,259,262,265,268,271,274,277,279,281,283,286,289,291,294,296,300,303,307,311,315,318,322,325,327,329,333,337,340,343,346,349,353,356,359,362,365,369,373,376,378,383,386,389,391,394,397,401,405,407,411,413,416,418,421,424,426,429,434,437,441,446,449,453,455,458,461,463,464,466,468,471,473,476,478,482,485,489,493,495,498,501,504,507,510,514],{"fn":173,"file":174,"line":175,"context":176},"assert","dependencies\\composer\\class-map-generator\\src\\PhpFileParser.php",84,"assert(is_string($name));",{"fn":173,"file":178,"line":179,"context":180},"dependencies\\composer\\composer\\src\\Composer\\Command\\BaseCommand.php",107,"assert($this->composer instanceof Composer);",{"fn":182,"file":183,"line":184,"context":185},"exec","dependencies\\composer\\composer\\src\\Composer\\Command\\ConfigCommand.php",240,"if (exec('which '.$candidate)) {",{"fn":187,"file":183,"line":188,"context":189},"system",251,"system($editor . ' ' . $file . (Platform::isWindows() ? '' : ' > `tty`'));",{"fn":173,"file":191,"line":192,"context":193},"dependencies\\composer\\composer\\src\\Composer\\Command\\InitCommand.php",476,"assert(is_string($match['name']));",{"fn":182,"file":195,"line":196,"context":197},"dependencies\\composer\\composer\\src\\Composer\\Command\\SelfUpdateCommand.php",587,"exec('fltmc.exe filters', $output, $exitCode);",{"fn":182,"file":195,"line":199,"context":200},637,"exec('\"'.$script.'\"');",{"fn":173,"file":202,"line":203,"context":204},"dependencies\\composer\\composer\\src\\Composer\\Command\\ShowCommand.php",334,"assert(isset($versions));",{"fn":173,"file":202,"line":206,"context":207},1341,"assert(is_string($require['name']));",{"fn":173,"file":202,"line":209,"context":210},1342,"assert(is_string($require['version']));",{"fn":173,"file":212,"line":213,"context":214},"dependencies\\composer\\composer\\src\\Composer\\Config.php",537,"assert(is_string($match[1]));",{"fn":173,"file":216,"line":217,"context":218},"dependencies\\composer\\composer\\src\\Composer\\Console\\HtmlOutputFormatter.php",87,"assert(is_string($matches[1]));",{"fn":173,"file":220,"line":221,"context":222},"dependencies\\composer\\composer\\src\\Composer\\Downloader\\FileDownloader.php",155,"assert(count($urls) > 0);",{"fn":173,"file":224,"line":225,"context":226},"dependencies\\composer\\composer\\src\\Composer\\EventDispatcher\\EventDispatcher.php",134,"assert($this->composer instanceof Composer, new \\LogicException('This should only be reached with a ",{"fn":173,"file":224,"line":228,"context":226},153,{"fn":173,"file":224,"line":230,"context":226},171,{"fn":173,"file":224,"line":232,"context":233},392,"assert(is_string($path[0]));",{"fn":173,"file":224,"line":235,"context":226},580,{"fn":173,"file":237,"line":238,"context":239},"dependencies\\composer\\composer\\src\\Composer\\Installer\\LibraryInstaller.php",346,"assert($this->downloadManager instanceof DownloadManager, new \\LogicException(self::class.' should b",{"fn":173,"file":241,"line":242,"context":243},"dependencies\\composer\\composer\\src\\Composer\\Installer\\PluginInstaller.php",139,"assert($this->composer instanceof Composer, new \\LogicException(self::class.' should be initialized ",{"fn":173,"file":245,"line":246,"context":218},"dependencies\\composer\\composer\\src\\Composer\\IO\\BufferIO.php",60,{"fn":173,"file":245,"line":248,"context":249},61,"assert(is_string($matches[2]));",{"fn":173,"file":251,"line":36,"context":214},"dependencies\\composer\\composer\\src\\Composer\\Json\\JsonFormatter.php",{"fn":173,"file":251,"line":253,"context":254},77,"assert(is_string($match[2]));",{"fn":173,"file":256,"line":257,"context":258},"dependencies\\composer\\composer\\src\\Composer\\Json\\JsonManipulator.php",79,"assert(is_string($matches['start']));",{"fn":173,"file":256,"line":260,"context":261},80,"assert(is_string($matches['value']));",{"fn":173,"file":256,"line":263,"context":264},81,"assert(is_string($matches['end']));",{"fn":173,"file":256,"line":266,"context":267},89,"assert(is_string($packageMatches['package']));",{"fn":173,"file":256,"line":269,"context":270},271,"assert(is_string($match['start']));",{"fn":173,"file":256,"line":272,"context":273},272,"assert(is_string($match['content']));",{"fn":173,"file":256,"line":275,"context":276},273,"assert(is_string($match['end']));",{"fn":173,"file":256,"line":278,"context":270},368,{"fn":173,"file":256,"line":280,"context":273},369,{"fn":173,"file":256,"line":282,"context":276},370,{"fn":173,"file":256,"line":284,"context":285},396,"assert(is_string($match));",{"fn":173,"file":256,"line":287,"context":288},442,"assert(is_string($matches['content']));",{"fn":173,"file":256,"line":290,"context":258},513,{"fn":173,"file":256,"line":292,"context":293},514,"assert(is_string($matches['removal']));",{"fn":173,"file":256,"line":295,"context":264},515,{"fn":173,"file":297,"line":298,"context":299},"dependencies\\composer\\composer\\src\\Composer\\Package\\Version\\VersionBumper.php",102,"assert(is_string($match[0]));",{"fn":173,"file":301,"line":302,"context":218},"dependencies\\composer\\composer\\src\\Composer\\Package\\Version\\VersionGuesser.php",414,{"fn":173,"file":304,"line":305,"context":306},"dependencies\\composer\\composer\\src\\Composer\\Plugin\\PluginManager.php",566,"assert(null !== $this->globalComposer);",{"fn":173,"file":308,"line":309,"context":310},"dependencies\\composer\\composer\\src\\Composer\\Repository\\ComposerRepository.php",185,"assert($baseUrl !== '');",{"fn":173,"file":312,"line":313,"context":314},"dependencies\\composer\\composer\\src\\Composer\\Repository\\Vcs\\GitHubDriver.php",71,"assert(is_string($match[3]));",{"fn":173,"file":312,"line":316,"context":317},72,"assert(is_string($match[4]));",{"fn":173,"file":319,"line":320,"context":321},"dependencies\\composer\\composer\\src\\Composer\\Repository\\Vcs\\GitLabDriver.php",105,"assert(is_string($match['parts']));",{"fn":173,"file":319,"line":323,"context":324},106,"assert(is_string($match['repo']));",{"fn":173,"file":319,"line":326,"context":321},574,{"fn":173,"file":319,"line":328,"context":324},575,{"fn":173,"file":330,"line":331,"context":332},"dependencies\\composer\\composer\\src\\Composer\\Util\\ComposerMirror.php",48,"assert($url !== '');",{"fn":173,"file":334,"line":335,"context":336},"dependencies\\composer\\composer\\src\\Composer\\Util\\Filesystem.php",616,"assert(is_string($m[0]));",{"fn":173,"file":334,"line":338,"context":339},913,"assert($sourceHandle !== false, 'Could not open \"'.$source.'\" for reading.');",{"fn":173,"file":334,"line":341,"context":342},915,"assert($targetHandle !== false, 'Could not open \"'.$target.'\" for writing.');",{"fn":173,"file":334,"line":344,"context":345},938,"assert($aHandle !== false, 'Could not open \"'.$a.'\" for reading.');",{"fn":173,"file":334,"line":347,"context":348},940,"assert($bHandle !== false, 'Could not open \"'.$b.'\" for reading.');",{"fn":173,"file":350,"line":351,"context":352},"dependencies\\composer\\composer\\src\\Composer\\Util\\HttpDownloader.php",321,"assert(isset($job['resolve']));",{"fn":173,"file":350,"line":354,"context":355},322,"assert(isset($job['reject']));",{"fn":173,"file":350,"line":357,"context":358},426,"assert(isset($this->jobs[$index]['exception']));",{"fn":173,"file":360,"line":165,"context":361},"dependencies\\composer\\composer\\src\\Composer\\Util\\Platform.php","assert(is_string($matches['var']));",{"fn":173,"file":360,"line":363,"context":364},109,"assert('' !== $matches['var']);",{"fn":173,"file":366,"line":367,"context":368},"dependencies\\composer\\composer\\src\\Composer\\Util\\ProcessExecutor.php",463,"assert(is_string($m['user']));",{"fn":173,"file":370,"line":371,"context":372},"dependencies\\composer\\composer\\src\\Composer\\Util\\SyncHelper.php",40,"assert($downloader instanceof DownloaderInterface || $downloader instanceof DownloadManager);",{"fn":173,"file":374,"line":375,"context":332},"dependencies\\composer\\composer\\src\\Composer\\Util\\Url.php",63,{"fn":173,"file":374,"line":377,"context":368},118,{"fn":379,"file":380,"line":381,"context":382},"proc_open","dependencies\\composer\\xdebug-handler\\src\\XdebugHandler.php",302,"$process = proc_open($cmd, [], $pipes);",{"fn":173,"file":384,"line":371,"context":385},"dependencies\\react\\promise\\src\\functions.php","assert(\\is_callable($canceller));",{"fn":173,"file":384,"line":387,"context":388},279,"assert($callback instanceof \\Closure || \\is_string($callback));",{"fn":173,"file":384,"line":351,"context":390},"assert($typeToMatch instanceof \\ReflectionNamedType);",{"fn":173,"file":384,"line":392,"context":393},327,"assert(isset($matches));",{"fn":173,"file":384,"line":395,"context":396},329,"assert($type instanceof \\ReflectionNamedType);",{"fn":173,"file":398,"line":399,"context":400},"dependencies\\react\\promise\\src\\Internal\\CancellationQueue.php",51,"assert(\\method_exists($cancellable, 'cancel'));",{"fn":173,"file":402,"line":403,"context":404},"dependencies\\react\\promise\\src\\Promise.php",70,"assert($parent instanceof self);",{"fn":173,"file":402,"line":406,"context":388},269,{"fn":173,"file":408,"line":409,"context":410},"dependencies\\seld\\jsonlint\\src\\Seld\\JsonLint\\JsonParser.php",261,"assert(isset($symbol));",{"fn":173,"file":408,"line":412,"context":410},350,{"fn":173,"file":408,"line":414,"context":415},469,"assert(\\is_array($this->vstack[$len]));",{"fn":173,"file":408,"line":417,"context":415},484,{"fn":173,"file":408,"line":419,"context":420},486,"assert(\\is_array($this->vstack[$len-2]));",{"fn":173,"file":408,"line":422,"context":423},510,"assert($this->vstack[$len-2] instanceof stdClass);",{"fn":173,"file":408,"line":425,"context":420},549,{"fn":379,"file":427,"line":313,"context":428},"dependencies\\seld\\phar-utils\\src\\Linter.php","$process = proc_open($command, $descriptorspec, $pipes);",{"fn":430,"file":431,"line":432,"context":433},"unserialize","dependencies\\symfony\\cache\\Adapter\\ArrayAdapter.php",381,"$value = unserialize($value);",{"fn":430,"file":435,"line":298,"context":436},"dependencies\\symfony\\cache\\LockRegistry.php","self::$signalingException ?? self::$signalingException = unserialize(\"O:9:\\\"Exception\\\":1:{s:16:\\\"\\0",{"fn":430,"file":438,"line":439,"context":440},"dependencies\\symfony\\cache\\Marshaller\\DefaultMarshaller.php",82,"if (false !== $value = unserialize($value)) {",{"fn":442,"file":443,"line":444,"context":445},"shell_exec","dependencies\\symfony\\console\\Application.php",1009,"$sttyMode = shell_exec('stty -g');",{"fn":442,"file":443,"line":447,"context":448},1013,"shell_exec('stty '.$sttyMode);",{"fn":379,"file":450,"line":451,"context":452},"dependencies\\symfony\\console\\Cursor.php",189,"$isTtySupported = (bool) @proc_open('echo 1 >\u002Fdev\u002Fnull', [['file', '\u002Fdev\u002Ftty', 'r'], ['file', '\u002Fdev\u002F",{"fn":442,"file":450,"line":454,"context":445},196,{"fn":442,"file":450,"line":456,"context":457},197,"shell_exec('stty -icanon -echo');",{"fn":442,"file":450,"line":459,"context":460},203,"shell_exec(sprintf('stty %s', $sttyMode));",{"fn":442,"file":462,"line":158,"context":445},"dependencies\\symfony\\console\\Helper\\QuestionHelper.php",{"fn":442,"file":462,"line":275,"context":457},{"fn":442,"file":462,"line":465,"context":448},288,{"fn":442,"file":462,"line":467,"context":448},393,{"fn":442,"file":462,"line":469,"context":470},433,"$sExec = shell_exec('\"'.$exe.'\"');",{"fn":442,"file":462,"line":472,"context":445},445,{"fn":442,"file":462,"line":474,"context":475},446,"shell_exec('stty -echo');",{"fn":442,"file":462,"line":477,"context":448},454,{"fn":442,"file":479,"line":480,"context":481},"dependencies\\symfony\\console\\Terminal.php",74,"return self::$stty = (bool) shell_exec('stty 2> '.('\\\\' === \\DIRECTORY_SEPARATOR ? 'NUL' : '\u002Fdev\u002Fnul",{"fn":379,"file":479,"line":483,"context":484},163,"$process = proc_open($command, $descriptorspec, $pipes, null, null, ['suppress_errors' => true]);",{"fn":182,"file":486,"line":487,"context":488},"dependencies\\symfony\\process\\PhpExecutableFinder.php",41,"if ($php = strtok(exec($command.' '.escapeshellarg($php)), \\PHP_EOL)) {",{"fn":379,"file":490,"line":491,"context":492},"dependencies\\symfony\\process\\Process.php",355,"$this->process = @proc_open($commandline, $descriptors, $this->processPipes->pipes, $this->cwd, $env",{"fn":379,"file":490,"line":494,"context":452},1263,{"fn":379,"file":490,"line":496,"context":497},1286,"return $result = (bool) @proc_open('echo 1 >\u002Fdev\u002Fnull', [['pty'], ['pty'], ['pty']], $pipes);",{"fn":182,"file":490,"line":499,"context":500},1525,"exec(sprintf('taskkill \u002FF \u002FT \u002FPID %d 2>&1', $pid), $output, $exitCode);",{"fn":379,"file":490,"line":502,"context":503},1538,"} elseif ($ok = proc_open(sprintf('kill -%d %d', $signal, $pid), [2 => ['pipe', 'w']], $pipes)) {",{"fn":430,"file":505,"line":313,"context":506},"dependencies\\symfony\\var-exporter\\Instantiator.php","$wrappedInstance = [unserialize('C:'.\\strlen($class).':\"'.$class.'\":0:{}')];",{"fn":430,"file":505,"line":508,"context":509},73,"$wrappedInstance = [unserialize('O:'.\\strlen($class).':\"'.$class.'\":0:{}')];",{"fn":430,"file":511,"line":512,"context":513},"dependencies\\symfony\\var-exporter\\Internal\\Registry.php",45,"$objects[$k] = unserialize($v);",{"fn":430,"file":511,"line":49,"context":515},"$proto = @unserialize($proto.\\strlen($class).':\"'.$class.'\":0:{}');",{"prepared":127,"raw":13,"locations":517},[],{"escaped":519,"rawEcho":520,"locations":521},15,6,[522,526,528,530,532,534],{"file":523,"line":524,"context":525},"dependencies\\brianhenryie\\strauss\\src\\Autoload.php",110,"raw output",{"file":523,"line":527,"context":525},116,{"file":523,"line":529,"context":525},145,{"file":523,"line":531,"context":525},157,{"file":366,"line":533,"context":525},277,{"file":535,"line":536,"context":525},"dependencies\\micropackage\\templates\\src\\Template.php",191,306,[],[540,559,567,580],{"entryPoint":541,"graph":542,"unsanitizedCount":76,"severity":558},"execute (dependencies\\composer\\composer\\src\\Composer\\Command\\SelfUpdateCommand.php:83)",{"nodes":543,"edges":555},[544,549],{"id":545,"type":546,"label":547,"file":195,"line":548},"n0","source","$_SERVER",126,{"id":550,"type":551,"label":552,"file":195,"line":553,"wp_function":554},"n1","sink","file_get_contents() [SSRF\u002FLFI]",333,"file_get_contents",[556],{"from":545,"to":550,"sanitized":557},false,"medium",{"entryPoint":560,"graph":561,"unsanitizedCount":76,"severity":558},"\u003CSelfUpdateCommand> (dependencies\\composer\\composer\\src\\Composer\\Command\\SelfUpdateCommand.php:0)",{"nodes":562,"edges":565},[563,564],{"id":545,"type":546,"label":547,"file":195,"line":548},{"id":550,"type":551,"label":552,"file":195,"line":553,"wp_function":554},[566],{"from":545,"to":550,"sanitized":557},{"entryPoint":568,"graph":569,"unsanitizedCount":76,"severity":558},"log (dependencies\\symfony\\console\\Command\\CompleteCommand.php:198)",{"nodes":570,"edges":578},[571,574],{"id":545,"type":546,"label":547,"file":572,"line":573},"dependencies\\symfony\\console\\Command\\CompleteCommand.php",204,{"id":550,"type":551,"label":575,"file":572,"line":576,"wp_function":577},"file_put_contents() [File Write]",205,"file_put_contents",[579],{"from":545,"to":550,"sanitized":557},{"entryPoint":581,"graph":582,"unsanitizedCount":76,"severity":558},"\u003CCompleteCommand> (dependencies\\symfony\\console\\Command\\CompleteCommand.php:0)",{"nodes":583,"edges":586},[584,585],{"id":545,"type":546,"label":547,"file":572,"line":573},{"id":550,"type":551,"label":575,"file":572,"line":576,"wp_function":577},[587],{"from":545,"to":550,"sanitized":557},{"summary":589,"deductions":590},"The 'signature-notification' plugin v4.0.0 exhibits a mixed security posture.  On the positive side, its vulnerability history is clean, with no recorded CVEs, suggesting a commitment to security or a lack of past exploitation. The static analysis also shows a commendable use of prepared statements for all SQL queries and a significant percentage of properly escaped outputs. However, several concerning signals are present in the code analysis. The substantial number of 'dangerous functions' like `assert`, `exec`, and `unserialize` raises a red flag, as these can be exploited if not handled with extreme care and robust sanitization. Furthermore, the taint analysis reveals four flows with unsanitized paths, indicating potential avenues for data injection or manipulation, even if they were not classified as critical or high severity in this analysis. The complete absence of capability checks for any entry points, coupled with a lack of nonce checks on the single identified entry point, presents a significant risk for unauthorized actions.",[591,593,596,598],{"reason":592,"points":519},"High number of dangerous functions used",{"reason":594,"points":595},"Unsanitized paths in taint flows",12,{"reason":597,"points":11},"No capability checks on entry points",{"reason":599,"points":600},"Missing nonce checks on entry points",8,"2026-03-16T23:41:27.683Z",{"wat":603,"direct":610},{"assetPaths":604,"generatorPatterns":606,"scriptPaths":607,"versionParams":608},[605],"\u002Fwp-content\u002Fplugins\u002Fsignature-notification\u002Fassets\u002Fcss\u002Fsignature-notification.css",[],[],[609],"signature-notification\u002Fassets\u002Fcss\u002Fsignature-notification.css?ver=",{"cssClasses":611,"htmlComments":616,"htmlAttributes":619,"restEndpoints":623,"jsGlobals":624,"shortcodeOutput":626},[612,613,614,615],"signature-notification-wrap","signature-notification-container","signature-notification-editor","signature-notification-buttons",[617,618],"\u003C!-- signature-notification: add your signature below -->","\u003C!-- signature-notification: signature wrapper -->",[620,621,622],"data-signature-id","data-signature-field","data-signature-template",[],[625],"window.NotificationSignatureEditor",[627,628],"[signature_notification_editor]","[signature_notification_preview]"]