{"id":315081,"date":"2026-05-25T09:39:47","date_gmt":"2026-05-25T09:39:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/notice-tracker\/"},"modified":"2026-09-01T10:27:43","modified_gmt":"2026-09-01T10:27:43","slug":"notice-vault","status":"publish","type":"plugin","link":"https:\/\/zh-hk.wordpress.org\/plugins\/notice-vault\/","author":23372382,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.6","stable_tag":"1.0.6","tested":"7.1","requires":"6.4","requires_php":"7.2","requires_plugins":null,"header_name":"Notice Vault","header_author":"Abdur Rahman Emon","header_description":"Manage and organize WordPress admin notices by moving them from the cluttered dashboard into a centralized notice management system.","assets_banners_color":"f2f2fb","last_updated":"2026-09-01 10:27:43","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/abdur-emon\/notice-vault","header_author_uri":"https:\/\/profiles.wordpress.org\/abduremon\/","rating":0,"author_block_rating":0,"active_installs":200,"downloads":2421,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"abduremon","date":"2026-05-25 09:39:24","revision":3547259},"1.0.1":{"tag":"1.0.1","author":"abduremon","date":"2026-05-25 10:49:45","revision":3547412},"1.0.2":{"tag":"1.0.2","author":"abduremon","date":"2026-05-25 11:33:30","revision":3547493},"1.0.3":{"tag":"1.0.3","author":"abduremon","date":"2026-06-07 19:32:39","revision":3563867},"1.0.4":{"tag":"1.0.4","author":"abduremon","date":"2026-06-29 09:52:14","revision":3589811},"1.0.5":{"tag":"1.0.5","author":"abduremon","date":"2026-07-20 12:04:53","revision":3614705},"1.0.6":{"tag":"1.0.6","author":"abduremon","date":"2026-09-01 10:27:43","revision":3675857}},"upgrade_notice":{"1.0.6":"<p>Important fix for any site with editors, authors or shop managers: their admin notices were being hidden with no way to read them, and now stay on the dashboard. Also captures the promo banners plugins render above the dashboard, repairs notice previews, and makes the clear-all confirmation keyboard accessible. Safe drop-in \u2014 upgrade steps run automatically and your existing rules are preserved.<\/p>","1.0.5":"<p>Important reliability release. Restores auto-expire (it was not running), keeps WordPress update and security nags on the dashboard, stops large notices being lost, and fixes notices being filed under the wrong type. Safe drop-in \u2014 upgrade steps run automatically and your existing rules are preserved.<\/p>","1.0.4":"<p>Fixes error notices being hidden by default, adds GDPR export\/erase support, and hardens capture, performance, and security. Safe drop-in \u2014 your existing notice rules are preserved on upgrade.<\/p>","1.0.3":"<p>Major UI\/UX redesign with a card-based settings layout, refreshed popup, and a brand logo update. Safe drop-in \u2014 a one-shot migration runs on first admin load; no manual action required.<\/p>","1.0.2":"<p>Maintenance release \u2014 syncs the internal version constant with the plugin header. Safe drop-in.<\/p>","1.0.1":"<p>Maintenance release \u2014 minimum WordPress version bumped to 6.4. Update WordPress first if you&#039;re still on an older release.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":0},"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3675857,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3675857,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.gif":{"filename":"banner-1544x500.gif","revision":3675857,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.gif":{"filename":"banner-772x250.gif","revision":3675857,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3675857,"resolution":"1","location":"assets","locale":"","width":1200,"height":800},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3675857,"resolution":"2","location":"assets","locale":"","width":1200,"height":800}},"screenshots":{"1":"Notice Type panel","2":"Pop-up &amp; Auto Expires panel"}},"plugin_section":[],"plugin_tags":[26308,260350,264374,151991,11326],"plugin_category":[],"plugin_contributors":[264274,264288],"plugin_business_model":[],"class_list":["post-315081","plugin","type-plugin","status-publish","hentry","plugin_tags-admin-notices","plugin_tags-dashboard-notifications","plugin_tags-dismiss-notices","plugin_tags-hide-admin-notices","plugin_tags-notices","plugin_contributors-abduremon","plugin_contributors-ismail0071","plugin_committers-abduremon"],"banners":{"banner":"https:\/\/ps.w.org\/notice-vault\/assets\/banner-772x250.gif?rev=3675857","banner_2x":"https:\/\/ps.w.org\/notice-vault\/assets\/banner-1544x500.gif?rev=3675857","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/notice-vault\/assets\/icon-128x128.gif?rev=3675857","icon_2x":"https:\/\/ps.w.org\/notice-vault\/assets\/icon-256x256.gif?rev=3675857","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/notice-vault\/assets\/screenshot-1.jpg?rev=3675857","caption":"Notice Type panel"},{"src":"https:\/\/ps.w.org\/notice-vault\/assets\/screenshot-2.jpg?rev=3675857","caption":"Pop-up &amp; Auto Expires panel"}],"raw_content":"<!--section=description-->\n<h4>Take Control of Your Dashboard with Notice Vault<\/h4>\n\n<p>Every WordPress admin knows the feeling: you open your dashboard, and it\u2019s buried under a pile of plugin notices, update nags, \u201cthanks for installing\u201d notices, and review requests. The important warnings get lost in the noise \u2014 and the noise never stops.<\/p>\n\n<p><strong>Notice Vault<\/strong> captures every admin notice as it fires and moves it into one tidy popup. Your dashboard stays quiet, and nothing is thrown away \u2014 each notice waits in the popup until you are ready to read it.<\/p>\n\n<h4>Hide Admin Notices Without Losing Them<\/h4>\n\n<p>Most plugins that hide admin notices simply delete the markup, and the message is gone for good. Notice Vault works differently: it hides admin notices from the dashboard and keeps a copy of every one of them in your own database. You get a calm screen <em>and<\/em> the full record of what WordPress, your plugins and your theme tried to tell you.<\/p>\n\n<h4>All Your Dashboard Notifications in One Place<\/h4>\n\n<p>Captured dashboard notifications are sorted into six categories \u2014 success, error, warning, info, system and non-standard \u2014 and presented together in a single popup with category filters, an Unread\/All toggle and a live counter in the admin bar. Instead of scrolling past a wall of alerts on every single admin page, you glance at one number and open the vault when it suits you.<\/p>\n\n<h4>Read, Keep or Dismiss Notices on Your Terms<\/h4>\n\n<p>Mark notices as read one at a time or in bulk, and dismiss notices you have already dealt with so they stop coming back. Read state is stored per user, so every administrator keeps their own view of the vault. Anything you leave alone expires automatically after a number of days you choose.<\/p>\n\n<h4>You Decide Which Admin Notices Get Hidden<\/h4>\n\n<p>Nothing disappears behind your back. Each of the six notice types carries its own rule: <strong>Show in popup<\/strong> moves that category off the dashboard, <strong>Do nothing<\/strong> leaves it exactly where WordPress put it. Error notices and WordPress core update and security nags stay on the dashboard by default, so critical alerts are never hidden from you.<\/p>\n\n<h3>\ud83d\udd25 Why you'll Love it \ud83d\udd25<\/h3>\n\n<ul>\n<li><strong>Simplify Your Workspace:<\/strong> Move noisy admin notices out of the dashboard and into a dedicated popup.<\/li>\n<li><strong>Nothing Gets Lost:<\/strong> Hide admin notices without deleting them \u2014 every captured notice stays readable in the vault.<\/li>\n<li><strong>Improve Productivity:<\/strong> Focus on your work and your content instead of closing endless alert boxes.<\/li>\n<li><strong>Granular Control:<\/strong> Configure every notice category separately \u2014 send it to the popup or leave it alone.<\/li>\n<li><strong>Lightweight &amp; Fast:<\/strong> Admin-only by design. Zero overhead on the front end.<\/li>\n<\/ul>\n\n<h3>\u26a1 Key Features<\/h3>\n\n<ul>\n<li><strong>Capture &amp; Centralize:<\/strong> Admin notices fired through <code>admin_notices<\/code>, <code>network_admin_notices<\/code>, <code>user_admin_notices<\/code>, and <code>all_admin_notices<\/code> are captured into a single popup.<\/li>\n<li><strong>Per-Type Rules:<\/strong> Configure each of the six notice categories (success, error, warning, info, system, non-standard) to either show in the popup or stay on the dashboard as usual.<\/li>\n<li><strong>Admin Bar Counter:<\/strong> A \"Notices\" item appears in the WordPress admin bar with a live unread counter and a quick preview of your most recent dashboard notifications.<\/li>\n<li><strong>Three Popup Styles:<\/strong> Pick between Slide from Right (default), Modal Popup (centered), or Slide from Right (Large) for bigger screens.<\/li>\n<li><strong>Mark as Read &amp; Dismiss Notices:<\/strong> Clear notices individually or in bulk, or dismiss them entirely. Read state is per-user, so each admin keeps their own view.<\/li>\n<li><strong>Auto-Expire:<\/strong> Notices older than a configurable number of days (default 30, range 1\u2013365) are removed automatically by a daily cron job.<\/li>\n<li><strong>Privacy-First:<\/strong> All notices are stored locally in your WordPress database. No external services, no tracking, no phone-home.<\/li>\n<\/ul>\n\n<h3>\ud83c\udf1f Experience a Distraction-Free WordPress Workflow<\/h3>\n\n<p>Whether you manage a network of client sites or simply write on your own blog and are tired of constant upselling, <strong>Notice Vault<\/strong> keeps admin notices organized instead of scattered \u2014 a professional, quiet, distraction-free place to work.<\/p>\n\n<h3>\ud83d\udccc Built to do ONE Job well<\/h3>\n\n<p><strong>Notice Vault<\/strong> is free and independent, with a single focus: giving you back a calm dashboard by capturing the admin notices that clutter it \u2014 without touching your site's frontend or slowing anything down.<\/p>\n\n<h3>Privacy Policy<\/h3>\n\n<p><strong>Notice Vault does not:<\/strong><\/p>\n\n<ul>\n<li>Send any data to external servers<\/li>\n<li>Use cookies or tracking<\/li>\n<li>Share data with third parties<\/li>\n<li>Store notices anywhere other than locally in your site's database<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>Automatic Installation<\/h4>\n\n<ol>\n<li>Log in to your WordPress admin panel<\/li>\n<li>Navigate to <strong>Plugins \u2192 Add New<\/strong><\/li>\n<li>Search for \"Notice Vault\"<\/li>\n<li>Click <strong>Install Now<\/strong><\/li>\n<li>Activate the plugin<\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download the plugin ZIP file<\/li>\n<li>Log in to your WordPress admin panel<\/li>\n<li>Navigate to <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong><\/li>\n<li>Choose the ZIP file and click <strong>Install Now<\/strong><\/li>\n<li>Activate the plugin<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20hide%20admin%20notices%20in%20wordpress%3F\"><h3>How do I hide admin notices in WordPress?<\/h3><\/dt>\n<dd><p>Install Notice Vault and activate it \u2014 that is the whole setup. From that moment the plugin captures admin notices as they fire and moves them into the Notices popup instead of printing them on your dashboard. If you want a category to keep rendering in place, set it to \"Do nothing\" at <strong>Notice Vault \u2192 Settings<\/strong>.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20hide%20all%20admin%20notices%3F\"><h3>Does this plugin hide all admin notices?<\/h3><\/dt>\n<dd><p>No, you have full control. Each notice type can be configured separately to either show in the popup (out of the dashboard) or stay exactly where it is. Error notices, and WordPress core update and security nags, are left on the dashboard by default.<\/p><\/dd>\n<dt id=\"will%20i%20miss%20important%20notices%3F\"><h3>Will I miss important notices?<\/h3><\/dt>\n<dd><p>No. Hidden notices are not deleted \u2014 they are stored and listed in the popup, and the admin bar shows a live counter of how many dashboard notifications you have not read yet.<\/p><\/dd>\n<dt id=\"where%20do%20my%20dashboard%20notifications%20go%20once%20they%20are%20captured%3F\"><h3>Where do my dashboard notifications go once they are captured?<\/h3><\/dt>\n<dd><p>Into a table in your own WordPress database, and from there into the Notices popup. You can filter them by type, switch between Unread and All, and load older ones as you scroll. Nothing is ever sent anywhere else.<\/p><\/dd>\n<dt id=\"can%20i%20dismiss%20notices%20permanently%3F\"><h3>Can I dismiss notices permanently?<\/h3><\/dt>\n<dd><p>Yes. Mark notices as read to clear the unread counter, or dismiss notices outright to remove them from the vault. You can also mark all as read or clear everything in one action, and whatever you leave behind is auto-removed once it passes the expiry window.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20multisite%3F\"><h3>Does this work with multisite?<\/h3><\/dt>\n<dd><p>Notice Vault runs per-site on a multisite network \u2014 activate it on each subsite you want to manage. Network-wide automatic activation and shared notice storage across the network are not currently supported.<\/p><\/dd>\n<dt id=\"will%20this%20slow%20down%20my%20site%3F\"><h3>Will this slow down my site?<\/h3><\/dt>\n<dd><p>No! The plugin uses lazy loading, transient caching, and minimal database queries. It runs in the admin only, so it has zero impact on frontend performance.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20pop-up%20appearance%3F\"><h3>Can I customize the pop-up appearance?<\/h3><\/dt>\n<dd><p>Yes! You can choose from 3 popup styles: Slide from Right, Modal Popup, or Slide from Right (Large).<\/p><\/dd>\n<dt id=\"how%20long%20are%20notices%20stored%3F\"><h3>How long are notices stored?<\/h3><\/dt>\n<dd><p>By default, notices are automatically deleted after 30 days. You can set anything from 1 to 365 days in the settings.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20translation-ready%3F\"><h3>Is this plugin translation-ready?<\/h3><\/dt>\n<dd><p>Yes! Notice Vault is fully translation-ready with a .pot file included.<\/p><\/dd>\n<dt id=\"what%20happens%20immediately%20after%20i%20activate%20the%20plugin%3F\"><h3>What happens immediately after I activate the plugin?<\/h3><\/dt>\n<dd><p>By default, most captured notice categories (success, warning, info, system, non-standard) are set to <strong>\"Show in popup\"<\/strong>, while <strong>Error<\/strong> notices are left on the dashboard so critical alerts are never hidden. The moment the plugin is active, the popup-enabled notices from every plugin and theme move out of your dashboard into the Notices popup instead of appearing inline. You can change this per category at <strong>Notice Vault \u2192 Settings<\/strong> \u2014 choose <strong>\"Show in popup\"<\/strong> to capture a category, or <strong>\"Do nothing\"<\/strong> to let it render on the dashboard as it normally would.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.6 - 2026-08-31<\/h4>\n\n<ul>\n<li>Fix: Notices are no longer lost for editors, authors, shop managers and other non-administrator roles. Their notices were being taken off the dashboard even though only administrators can open the vault, so those notices had nowhere left to be read. They now stay on the dashboard for anyone who cannot open the vault.<\/li>\n<li>Fix: A notice wrapped inside a container element is filed under its real type again. Previously the wrapper hid the type, so an error or update notice could be moved into the popup against your per-type rule.<\/li>\n<li>Fix: Promotional banners that plugins render above the dashboard \u2014 Elementor, WooCommerce, Yoast, Jetpack and others \u2014 are now captured too. The admin interface those plugins draw in the same place is left exactly where it is.<\/li>\n<li>Fix: A notice that brings its own dismiss button no longer starts with \"Dismiss this notice.\" in the admin bar preview. Existing notices are repaired on upgrade.<\/li>\n<li>Fix: The \"Clear all\" confirmation can be reached and dismissed with the keyboard, Escape closes it instead of the whole popup, and it no longer reappears when you next open the vault.<\/li>\n<li>Fix: A notice carrying both a modern and a legacy type class is filed under the modern one, so your Info rule now applies to notices that also carry the old \"updated\" class.<\/li>\n<li>Fix: Relative times read correctly \u2014 \"1 minute ago\" instead of \"1 minutes ago\" \u2014 and translate properly in languages with more than two plural forms.<\/li>\n<li>Fix: Sites added to a multisite network after the plugin was activated now receive the default per-type rules instead of quietly capturing nothing.<\/li>\n<li>Fix: An auto-expire window of zero days no longer makes captured notices vanish the moment they are stored.<\/li>\n<li>Security: Captured notice markup can no longer carry classes or ids that hook into Notice Vault's own controls.<\/li>\n<li>Change: Notice Vault always closes its output buffer, even when another plugin clears the notice hooks midway through a request.<\/li>\n<li>Dev: Minimum supported WordPress version corrected to 6.4 in the coding-standards config, and the documented build command brought back in line with what actually ships.<\/li>\n<\/ul>\n\n<h4>1.0.5 - 2026-07-20<\/h4>\n\n<ul>\n<li>Fix: Auto-expire now actually runs. The cleanup callback was only registered inside wp-admin, so the daily cron event fired with nothing listening and expired notices were never removed.<\/li>\n<li>Fix: WordPress core, plugin, and theme update and security nags now stay on the dashboard by default instead of being routed into the popup. Existing installs are corrected automatically on upgrade.<\/li>\n<li>Fix: A very large notice is no longer lost. Oversized notices failed to save and were also withheld from the dashboard, so they vanished from both places; storage now holds far larger notices and anything that still fails to save falls back to the dashboard.<\/li>\n<li>Fix: Notices are no longer misfiled. Classification read CSS classes from anywhere inside a notice, so an info notice containing an element marked \"error\" was filed as an error and your per-type rule was applied to the wrong bucket. Only the notice's own outer element is inspected now.<\/li>\n<li>Fix: Notices left on the dashboard are passed through untouched, so setup and consent notices from other plugins keep working. They were previously stripped of inline scripts and handlers, which silently broke their buttons while Notice Vault was active.<\/li>\n<li>Fix: Switching tab or filter while \"Load more\" is still loading no longer leaves the wrong notices on screen.<\/li>\n<li>Fix: Notice text containing special characters or emoji renders correctly instead of showing raw character codes. Existing notices are repaired on upgrade.<\/li>\n<li>Fix: Rapidly double-clicking mark-as-read, dismiss, or a bulk action no longer fires the request twice.<\/li>\n<li>Fix: A failed upgrade step can no longer roll back completed ones and undo a per-type rule you deliberately changed.<\/li>\n<li>Security: Form controls are no longer kept in stored notices, and links that open a new tab now carry <code>rel=\"noopener noreferrer\"<\/code>.<\/li>\n<li>Performance: Added database indexes for the popup's sort order and duplicate checks, and the toolbar no longer loads full notice markup on every admin page.<\/li>\n<li>Multisite: Network activation and deactivation now set up and clean up every site on the network instead of only the current one.<\/li>\n<li>Change: Duplicate notices are prevented at the database level, so two simultaneous admin requests can no longer store the same notice twice.<\/li>\n<li>Change: Upgrade steps that touch many notices now run in batches and resume until finished, instead of being skipped on large vaults.<\/li>\n<li>i18n: Translation template regenerated. Around 40 interface strings had never been made available to translators; the template now covers the whole interface and drops entries for features that no longer exist.<\/li>\n<\/ul>\n\n<h4>1.0.4 - 2026-06-29<\/h4>\n\n<ul>\n<li>New: GDPR personal-data exporter and eraser so captured notices are covered by WordPress's privacy export\/erase tools.<\/li>\n<li>Fix: Error notices are no longer hidden by default \u2014 error-type notices now stay on the dashboard instead of being routed into the popup. Warning notices default to the popup on a fresh install, and upgrades keep your existing warning rule untouched.<\/li>\n<li>Fix: A captured notice's own dismiss button is stripped from the popup so it can't break out of the vault layout.<\/li>\n<li>Fix: Restored the background blur behind the popup and clipped the popup to its rounded corners (no more square corners on the modal variant).<\/li>\n<li>Fix: Slide Panel variant no longer overlaps the mobile admin bar or leaves a bottom gap.<\/li>\n<li>Change: Renamed the \"Panel\" popup style to \"Slide from Right (Large)\" and widened the desktop Modal and Slide Panel layouts.<\/li>\n<li>Change: The popup and toolbar are now admin-only (<code>manage_options<\/code>).<\/li>\n<li>Change: Captured notices are de-duplicated on a normalized text signature, with timestamps stored in UTC.<\/li>\n<li>Performance: Settings page counts notices with <code>COUNT(*)<\/code> instead of loading every row; the transient sweep is skipped when a persistent object cache is active; the re-hash migration is bounded to avoid a long synchronous loop on large vaults.<\/li>\n<li>Security: Hardened bulk operations and AJAX capability checks, forced stored notices to the current user, and guarded against popping another plugin's output buffer during capture.<\/li>\n<li>Dev: Removed the bundled Select2 library and the disabled User Visibility code.<\/li>\n<\/ul>\n\n<h4>1.0.3 - 2026-06-08<\/h4>\n\n<ul>\n<li>New: Full UI\/UX redesign \u2014 card-based settings layout with brand logo hero, indigo accent, segmented controls for per-type rules, visual popup-style picker with mini previews, sticky save bar with dirty-form detection, side rail with stats + how-it-works.<\/li>\n<li>New: Popup refresh \u2014 slimmer header, state tabs (Unread\/All), wrap-style filter chips, redesigned notice cards with type-colored edge + hover lift, custom SVG empty-state, skeleton loading, toasts with colored stripe + progress bar, confirm modal with backdrop blur.<\/li>\n<li>Fix: Saving settings no longer renders the \"Settings saved.\" notice twice.<\/li>\n<li>Fix: Admin-bar count badge correctly hides on count = 0 (the previous <code>!important<\/code> chain defeated jQuery <code>.hide()<\/code>); badge inner text also resets to \"0\" for screen-reader parity.<\/li>\n<li>Fix: Filter chips in the popup wrap to multiple rows instead of horizontally overflowing the popup edge.<\/li>\n<li>Fix: Removed redundant jQuery <code>.focus()<\/code> shorthand that triggered a JQMIGRATE deprecation warning.<\/li>\n<li>Asset: Brand logo now sits beside \"Notice Vault\" in the settings hero (56\u00d756) and beside the \"Notices\" title in the popup header (22\u00d722), replacing the generic dashicon-bell.<\/li>\n<li>Author URI: Changed from GitHub profile to https:\/\/profiles.wordpress.org\/abduremon\/.<\/li>\n<li>i18n: POT regenerated to match the redesigned strings.<\/li>\n<\/ul>\n\n<h4>1.0.2 - 2026-05-24<\/h4>\n\n<ul>\n<li>Fix: Sync NOTICE_VAULT_VERSION constant with plugin version<\/li>\n<\/ul>\n\n<h4>1.0.1 - 2026-05-24<\/h4>\n\n<ul>\n<li>Fix: Updated minimum WordPress version requirement to 6.4<\/li>\n<\/ul>\n\n<h4>1.0.0 - 2026-05-22<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Notice capture system covering <code>admin_notices<\/code>, <code>network_admin_notices<\/code>, <code>user_admin_notices<\/code>, and <code>all_admin_notices<\/code>.<\/li>\n<li>Admin toolbar counter with quick-preview submenu.<\/li>\n<li>Popup interface with three display styles (Slide from Right, Modal, Slide Background Panel).<\/li>\n<li>Settings page with per-type rules and a configurable auto-expire window.<\/li>\n<li>\"Load more\" pagination in the popup for users with large notice lists.<\/li>\n<li>Captured notice content preserves clickable links and basic formatting through a strict server-side <code>wp_kses<\/code> allowlist (<code>&lt;a&gt;<\/code>, <code>&lt;strong&gt;<\/code>, <code>&lt;em&gt;<\/code>, <code>&lt;code&gt;<\/code>, lists, \u2026); scripts, iframes, and inline event handlers always stripped.<\/li>\n<li>System notices (<code>update-nag<\/code>, <code>update-message<\/code>, \u2026) are detected before generic <code>notice-*<\/code> severity classes so they reliably route to the System bucket.<\/li>\n<li>Filterable popup type dropdown \u2014 custom buckets registered via the <code>notice_vault_notice_types<\/code> filter appear here too.<\/li>\n<li>Multisite uninstall iterates every blog and drops its per-blog notices table.<\/li>\n<li>Daily cleanup cron sweeps per-user unread-count transients when anything actually expires, so the admin-bar badge can't show a stale count past expiry.<\/li>\n<li>Long URLs inside notice content wrap instead of overflowing the popup.<\/li>\n<li>Confirm modal is localized and specific to the clear-all action.<\/li>\n<li>AJAX errors (mark-as-read \/ dismiss \/ mark-all-read \/ clear-all) surface a toast on failure instead of silently doing nothing.<\/li>\n<\/ul>","raw_excerpt":"Hide admin notices in one clean popup. Notice Vault collects dashboard notifications so you can read, organize and dismiss notices on your own terms.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/zh-hk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/315081","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zh-hk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/zh-hk.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/zh-hk.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=315081"}],"author":[{"embeddable":true,"href":"https:\/\/zh-hk.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/abduremon"}],"wp:attachment":[{"href":"https:\/\/zh-hk.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=315081"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/zh-hk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=315081"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/zh-hk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=315081"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/zh-hk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=315081"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/zh-hk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=315081"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/zh-hk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=315081"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}