{"id":280311,"date":"2026-06-18T18:03:18","date_gmt":"2026-06-18T18:03:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/notice-warden\/"},"modified":"2026-06-18T20:28:50","modified_gmt":"2026-06-18T20:28:50","slug":"zennotice-warden","status":"closed","type":"plugin","link":"https:\/\/as.wordpress.org\/plugins\/zennotice-warden\/","author":23448890,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.8.1","stable_tag":"1.8.1","tested":"7.0.7","requires":"4.0","requires_php":"5.6","requires_plugins":null,"header_name":"ZenNotice Warden","header_author":"kruglovnet","header_description":"Individually disable, hide, or block admin notices using call-stack analysis.","assets_banners_color":"","last_updated":"2026-06-18 20:28:50","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/zennotice-warden\/","header_author_uri":"https:\/\/profiles.wordpress.org\/kruglovnet\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":315,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.8.1":{"tag":"1.8.1","author":"kruglovnet","date":"2026-06-18 20:28:50"}},"upgrade_notice":{"1.8.1":"<p>Adds regex validation to reject unsafe or slow patterns.<\/p>","1.8.0":"<p>Adds regex auto-blocking and notice content preview. Existing blocked notices are migrated automatically.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.8.1"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[263222,26308,267770,247083,260342],"plugin_category":[],"plugin_contributors":[],"plugin_business_model":[],"class_list":["post-280311","plugin","type-plugin","status-closed","hentry","plugin_tags-admin-cleanup","plugin_tags-admin-notices","plugin_tags-block-notices","plugin_tags-hide-notices","plugin_tags-notice-manager"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/zennotice-warden.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>ZenNotice Warden puts you in control of your WordPress dashboard.<\/strong> Tired of endless plugin notices, update reminders, and system messages cluttering your admin area? This plugin lets you hide any notice with one click \u2014 or set up automatic rules to block them forever.<\/p>\n\n<p>Unlike plugins that blindly hide all notices, ZenNotice Warden gives you individual control. Each notice gets a block button. Click it \u2192 it's gone. Still want it back? Unblock it anytime from the settings page.<\/p>\n\n<h4>How it works<\/h4>\n\n<p>The plugin intercepts all output from <code>admin_notices<\/code> and <code>network_admin_notices<\/code> hooks and adds a block button to each notice. Once clicked, the notice disappears and won't be shown again for the current site.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>One-click blocking<\/strong> \u2014 a \u00d7 button appears on every notice<\/li>\n<li><strong>Regex auto-blocking<\/strong> \u2014 notices matching your custom patterns are hidden automatically (e.g. <code>\/update available\/i<\/code> to hide all update notifications)<\/li>\n<li><strong>Full management UI<\/strong> at Settings \u2192 ZenNotice Warden<\/li>\n<li><strong>View blocked notices<\/strong> with content preview \u2014 see what you've hidden<\/li>\n<li><strong>Unblock anytime<\/strong> with a single click<\/li>\n<li>Supports <code>notice<\/code>, <code>updated<\/code>, <code>error<\/code>, and <code>update-nag<\/code> types<\/li>\n<li>Compatible with multisite (<code>network_admin_notices<\/code>)<\/li>\n<li>Clean uninstall \u2014 removes all data on deactivation<\/li>\n<li>Translation-ready \u2014 \u0420\u0443\u0441\u0441\u043a\u0438\u0439, English, and more<\/li>\n<\/ul>\n\n<h4>Who is this for?<\/h4>\n\n<ul>\n<li>Site owners overwhelmed by plugin notifications<\/li>\n<li>Developers testing plugins who don't want repeated notices<\/li>\n<li>Anyone who wants a clean, distraction-free admin area<\/li>\n<\/ul>\n\n<h3>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c<\/h3>\n\n<p><strong>ZenNotice Warden \u2014 \u044d\u0442\u043e \u043f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043d\u0430\u0434 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0435 WordPress.<\/strong> \u0423\u0441\u0442\u0430\u043b\u0438 \u043e\u0442 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043e\u0442 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432, \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0439 \u043e\u0431 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\u0445 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439? \u042d\u0442\u043e\u0442 \u043f\u043b\u0430\u0433\u0438\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043a\u0440\u044b\u0442\u044c \u043b\u044e\u0431\u043e\u0435 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u0438\u043c \u043a\u043b\u0438\u043a\u043e\u043c \u2014 \u0438\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0434\u043b\u044f \u0438\u0445 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438.<\/p>\n\n<p>\u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0443\u043f\u043e \u0441\u043a\u0440\u044b\u0432\u0430\u044e\u0442 \u0432\u0441\u0435 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043e\u043c, ZenNotice Warden \u0434\u0430\u0451\u0442 \u0432\u044b\u0431\u043e\u0440\u043e\u0447\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c. \u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0438 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043d\u043e\u043f\u043a\u0430 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438. \u041d\u0430\u0436\u0430\u043b \u2014 \u0438\u0441\u0447\u0435\u0437\u043b\u043e. \u041f\u0435\u0440\u0435\u0434\u0443\u043c\u0430\u043b? \u0412\u0435\u0440\u043d\u0438 \u0435\u0433\u043e \u0432 \u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a.<\/p>\n\n<p><strong>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438:<\/strong>\n- \u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 \u043b\u044e\u0431\u044b\u0445 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u043e\u0434\u043d\u0438\u043c \u043a\u043b\u0438\u043a\u043e\u043c\n- Regex-\u0444\u0438\u043b\u044c\u0442\u0440\u044b \u2014 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u043a\u0440\u044b\u0442\u0438\u0435 \u043f\u043e \u0442\u0435\u043a\u0441\u0442\u0443 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>\/\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\/i<\/code>)\n- \u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u043c\u0438 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f\u043c\u0438\n- \u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439\n- \u041f\u043e\u043b\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430\n- \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043c\u0443\u043b\u044c\u0442\u0438\u0441\u0430\u0439\u0442\u0430\u0445\n- \u0427\u0438\u0441\u0442\u043e\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u2014 \u043d\u0435 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043c\u0443\u0441\u043e\u0440\u0430 \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>zennotice-warden<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress<\/li>\n<li>Go to Settings \u2192 ZenNotice Warden to manage blocked notices and regex filters<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20block%20a%20notice%3F\"><h3>How do I block a notice?<\/h3><\/dt>\n<dd><p>After activation, a \u00d7 button appears on every admin notice. Click it to block it permanently.<\/p><\/dd>\n<dt id=\"how%20do%20i%20unblock%20a%20notice%3F\"><h3>How do I unblock a notice?<\/h3><\/dt>\n<dd><p>Go to Settings \u2192 ZenNotice Warden and click \"Unblock\" next to the notice. It will reappear on the next page load.<\/p><\/dd>\n<dt id=\"can%20i%20auto-block%20notices%20by%20text%20pattern%3F\"><h3>Can I auto-block notices by text pattern?<\/h3><\/dt>\n<dd><p>Yes. Go to Settings \u2192 ZenNotice Warden \u2192 Regex Filters, add a pattern like <code>\/update available\/i<\/code>, and all matching notices will be hidden automatically.<\/p><\/dd>\n<dt id=\"will%20this%20break%20my%20site%3F\"><h3>Will this break my site?<\/h3><\/dt>\n<dd><p>No. The plugin only hides notices visually \u2014 it doesn't modify any core files or database data. You can unblock any notice at any time.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20multisite%3F\"><h3>Does it work with multisite?<\/h3><\/dt>\n<dd><p>Yes. It hooks into both <code>admin_notices<\/code> and <code>network_admin_notices<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.8.1<\/h4>\n\n<ul>\n<li>Added regex validation \u2014 unsafe or slow patterns are rejected with an error message<\/li>\n<li>Prevent nested group ReDoS patterns<\/li>\n<li>Added execution time check for regex filters<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Added regex auto-blocking \u2014 notices matching custom patterns are hidden automatically<\/li>\n<li>Added notice content preview in the settings page<\/li>\n<li>Added regex filter management UI (add\/delete patterns)<\/li>\n<li>Changed data format to store notice text alongside the ID<\/li>\n<li>Added automatic migration from old data format<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>Improved notice ID generation (wp_strip_all_tags + whitespace normalization)<\/li>\n<li>Added unblock support (AJAX toggle)<\/li>\n<li>Added settings page to view and manage blocked notices<\/li>\n<li>Added option cleanup on plugin deactivation<\/li>\n<li>Added textdomain loading for translations<\/li>\n<li>Added is_admin() check in constructor<\/li>\n<li>Fixed permission check order: capabilities checked before nonce<\/li>\n<li>Improved script registration (dedicated handle)<\/li>\n<\/ul>\n\n<h4>1.6.3<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Hide annoying WordPress admin notices. Block, disable, or auto-hide plugin and system notices. AJAX-powered with regex filters.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/280311","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=280311"}],"author":[{"embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/anonymized-23448890"}],"wp:attachment":[{"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=280311"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=280311"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=280311"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=280311"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=280311"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=280311"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}