{"id":329101,"date":"2026-06-19T18:45:49","date_gmt":"2026-06-19T18:45:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/4wp-notifications\/"},"modified":"2026-06-19T18:45:28","modified_gmt":"2026-06-19T18:45:28","slug":"4wp-notifications","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/4wp-notifications\/","author":17741300,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.0","stable_tag":"1.2.0","tested":"7.0","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"4WP Notifications","header_author":"4wpdev","header_description":"In-app notifications for logged-in users \u2014 bell block, inbox list, WooCommerce alerts, and admin broadcasts.","assets_banners_color":"c2cad5","last_updated":"2026-06-19 18:45:28","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/4wpdev\/4wp-notifications","header_author_uri":"https:\/\/4wp.dev","rating":0,"author_block_rating":0,"active_installs":0,"downloads":44,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.0":{"tag":"1.2.0","author":"4wpdev","date":"2026-06-19 18:45:28"}},"upgrade_notice":{"1.2.0":"<p>Developer send API, PHP hooks, block editor fixes, and bell list sync improvements.<\/p>","1.1.0":"<p>Unified admin UI, bell block, role-based broadcasts, and WooCommerce toggles.<\/p>","1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3579100,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3579100,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3579120,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3579120,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"forwp\/notifications":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"forwp\/notifications","title":"4WP Notifications List","category":"widgets","description":"Display the full in-app notifications list for the logged-in user.","textdomain":"4wp-notifications","icon":"list-view","keywords":["4wp","notifications","inbox","alerts","bell"],"attributes":{"limit":{"type":"number","default":20}},"supports":{"html":false,"align":true},"editorScript":"file:.\/editor.js","editorStyle":"file:.\/editor.css","style":"file:..\/..\/css\/shortcode.css","example":{"attributes":{"limit":20}}},"forwp\/notifications-bell":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"forwp\/notifications-bell","title":"4WP Notifications Bell","category":"theme","parent":["core\/navigation"],"description":"Bell icon with a dropdown of recent notifications. Add inside a Navigation block (header menu).","textdomain":"4wp-notifications","icon":"bell","keywords":["4wp","notifications","bell","menu","navigation","alert"],"attributes":{"limit":{"type":"number","default":20},"allUrl":{"type":"string","default":""}},"supports":{"html":false,"reusable":false,"multiple":true,"interactivity":false},"editorScript":"file:.\/editor.js","editorStyle":"file:.\/editor.css","style":"file:..\/..\/css\/bell-widget.css","example":{"attributes":{"limit":10}}}},"tagged_versions":["1.2.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Admin \u2014 Display tab with blocks vs shortcodes reference.","2":"Admin \u2014 Direct notifications with role-based recipients.","3":"Admin \u2014 Notification types (WooCommerce toggles).","4":"Frontend \u2014 bell dropdown with unread badge."}},"plugin_section":[],"plugin_tags":[267975,148076,4040,4906,286],"plugin_category":[45],"plugin_contributors":[262731,262732],"plugin_business_model":[],"class_list":["post-329101","plugin","type-plugin","status-publish","hentry","plugin_tags-bell","plugin_tags-gutenberg","plugin_tags-inbox","plugin_tags-notifications","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-4wpdev","plugin_contributors-anatolikkk","plugin_committers-4wpdev"],"banners":{"banner":"https:\/\/ps.w.org\/4wp-notifications\/assets\/banner-772x250.png?rev=3579120","banner_2x":"https:\/\/ps.w.org\/4wp-notifications\/assets\/banner-1544x500.png?rev=3579120","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/4wp-notifications\/assets\/icon-128x128.png?rev=3579100","icon_2x":"https:\/\/ps.w.org\/4wp-notifications\/assets\/icon-256x256.png?rev=3579100","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>4WP Notifications<\/strong> delivers a unified in-app notification inbox for logged-in WordPress users: a header bell with unread badge, a full notifications page, optional WooCommerce order alerts, and tools for developers to fire notifications from custom code.<\/p>\n\n<p>A plugin by <a href=\"https:\/\/4wp.dev\/\">4wp.dev<\/a>. <strong>4WP<\/strong> is our project brand; the letters \"WP\" appear only as part of that brand name, not as a reference to WordPress. This plugin is not affiliated with, endorsed, or sponsored by WordPress.<\/p>\n\n<p>Source code: <a href=\"https:\/\/github.com\/4wpdev\/4wp-notifications\">github.com\/4wpdev\/4wp-notifications<\/a><\/p>\n\n<h4>Key features<\/h4>\n\n<ul>\n<li><strong>Notifications Bell block<\/strong> \u2014 dropdown with unread count; add inside a Navigation block (header menu)<\/li>\n<li><strong>Notifications List block<\/strong> \u2014 full inbox page with mark read\/unread and live polling<\/li>\n<li><strong>Shortcodes<\/strong> \u2014 <code>[forwp_notifications_bell]<\/code> and <code>[forwp_notifications]<\/code> for classic themes<\/li>\n<li><strong>Direct notifications<\/strong> \u2014 admins broadcast to roles and\/or individual users<\/li>\n<li><strong>WooCommerce<\/strong> \u2014 optional alerts for new orders and status changes<\/li>\n<li><strong>Developer hooks<\/strong> \u2014 <code>forwp_notification_event<\/code> \/ <code>4wp_notification_event<\/code> from PHP<\/li>\n<li><strong>REST API<\/strong> \u2014 list, unread count, mark read\/unread, and <strong>send<\/strong> notifications (authenticated)<\/li>\n<\/ul>\n\n<h4>Privacy<\/h4>\n\n<p>Notifications are stored in your WordPress database and shown only to the logged-in recipient. Read endpoints require an authenticated user session. Send endpoints require administrator capability (default: <code>manage_options<\/code>). No data is sent to 4wp.dev.<\/p>\n\n<h4>Development<\/h4>\n\n<p>Human-readable PHP source is in the public GitHub repository above. No npm build step \u2014 block editor scripts ship as plain JS in <code>assets\/blocks\/<\/code>.<\/p>\n\n<p>Run tests: <code>composer install &amp;&amp; composer test &amp;&amp; composer run lint<\/code><\/p>\n\n<h3>Blocks<\/h3>\n\n<p>This plugin provides 2 blocks.<\/p>\n\n<ul>\n<li><strong>4WP Notifications Bell<\/strong> (<code>forwp\/notifications-bell<\/code>) \u2014 bell icon and recent notifications dropdown (Navigation child block).<\/li>\n<li><strong>4WP Notifications List<\/strong> (<code>forwp\/notifications<\/code>) \u2014 full notification list for a page.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/4wp-notifications\/<\/code> or install from the Plugins screen.<\/li>\n<li>Activate <strong>4WP Notifications<\/strong>.<\/li>\n<li>Open <strong>4WP Notifications \u2192 Display<\/strong> and choose the page for \u201cView all notifications\u201d.<\/li>\n<li>Add the <strong>Notifications List<\/strong> block to that page (or save Display settings to auto-insert it).<\/li>\n<li>Add the <strong>Notifications Bell<\/strong> block inside your header <strong>Navigation<\/strong> block.<\/li>\n<li>Optional: enable WooCommerce notification types under <strong>Notification types<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20visitors%20see%20notifications%3F\"><h3>Do visitors see notifications?<\/h3><\/dt>\n<dd><p>No. The bell and list render only for logged-in users.<\/p><\/dd>\n<dt id=\"can%20i%20send%20a%20message%20to%20all%20customers%3F\"><h3>Can I send a message to all customers?<\/h3><\/dt>\n<dd><p>Yes. Use <strong>Direct notifications<\/strong>, select the <strong>Customer<\/strong> role (or any role), and send.<\/p><\/dd>\n<dt id=\"can%20developers%20send%20notifications%20from%20custom%20code%3F\"><h3>Can developers send notifications from custom code?<\/h3><\/dt>\n<dd><p>Yes. Use the PHP hook <code>forwp_notification_event<\/code> or POST to <code>\/wp-json\/forwp\/v1\/notifications<\/code> (requires <code>manage_options<\/code> by default). See <strong>Documentation<\/strong> in the admin app.<\/p><\/dd>\n<dt id=\"does%20woocommerce%20require%20extra%20setup%3F\"><h3>Does WooCommerce require extra setup?<\/h3><\/dt>\n<dd><p>Install WooCommerce, then enable event types under <strong>Notification types<\/strong>.<\/p><\/dd>\n<dt id=\"are%20shortcodes%20still%20supported%3F\"><h3>Are shortcodes still supported?<\/h3><\/dt>\n<dd><p>Yes. Blocks are recommended for block themes; shortcodes remain for classic content and menus.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>REST API POST \u2014 send notifications to <code>user_id<\/code> or <code>user_ids<\/code> (default capability: <code>manage_options<\/code>).<\/li>\n<li>Developer hooks: <code>forwp_notification_event<\/code> and legacy <code>4wp_notification_event<\/code>.<\/li>\n<li>Block editor assets for Bell and List blocks (inserter visibility and previews).<\/li>\n<li>Auto-insert Notifications List block on the configured page.<\/li>\n<li>Bell dropdown list refreshes on poll and when opening the menu.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Unified admin app (Display, Direct, Types, Documentation) aligned with 4WP Drive \/ Weather.<\/li>\n<li>Notifications Bell block (<code>forwp\/notifications-bell<\/code>) for headers and navigation.<\/li>\n<li>Shared frontend renderers for blocks and shortcodes.<\/li>\n<li>Role-based recipient targeting for direct admin notifications.<\/li>\n<li>WooCommerce notification type toggles in settings.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Tabbed settings shell and notification type cards.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: shortcodes, list block, WooCommerce adapter, REST read API.<\/li>\n<\/ul>","raw_excerpt":"In-app notifications for logged-in users \u2014 bell block, inbox list, WooCommerce events, admin broadcasts, and a developer REST send API.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/329101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=329101"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/4wpdev"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=329101"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=329101"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=329101"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=329101"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=329101"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=329101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}