Releases
v2.0.0
Compare
Sorry, something went wrong.
No results found
Changed
Refactored plugin into OOP architecture with PSR-4 autoloading under TomMcFarlin\MMN namespace
Mute preference is now stored per-user in wp_usermeta instead of a single site-wide wp_options row
Notifications are now hidden server-side via inline CSS in admin_head, eliminating flicker on page load
Toggle button uses POST instead of GET for the AJAX request
Admin bar button now shows state-aware label ("Mute Notifications" / "Unmute Notifications") with dashicon
Hidden elements use display: none instead of visibility: hidden to eliminate layout gaps
JavaScript loads in the footer and is browser-cacheable with a static version string
Removed the on-page-load AJAX call; mute state is passed to JS via wp_localize_script
Added
Self-hosted updater via GitHub Releases using the update_plugins_github.com filter (WP 5.8+)
Per-user mute preference so each administrator has an independent toggle state
ARIA attributes, keyboard navigation, and screen reader support
Visual error feedback when AJAX toggle fails
Capability check (update_plugins) on AJAX handler and admin bar button
Nonce verification via check_ajax_referer()
uninstall.php for proper cleanup on plugin deletion
Unit tests with PHPUnit and Brain Monkey (31 tests, 40 assertions)
WPCS compliance
Removed
Deactivation hook (replaced by uninstall.php)
Second AJAX endpoint no longer needed
Dead URLSearchParams code in JavaScript
Security
All AJAX handlers now verify current_user_can( 'update_plugins' )
Admin bar toggle and assets only render for authorized users
You can’t perform that action at this time.