The "No active/completed notes found" notice was already dismissible
per-page-load (WP core's X button hides it), but pressing X only
cleared it for the current view — it returned on the next refresh.
The dismissal is now persisted to user_meta per-user-per-list-type,
so once closed it stays closed across page loads until the flag is
reset.
MECHANICS
- inc/wp-notes-display.php now checks get_user_meta(uid,
'wp_notes_dismissed_empty_<type>') before rendering and skips the
notice render entirely when set.
- New AJAX handler wp_ajax_wp_notes_dismiss_empty validates a nonce
and the edit_posts capability, then writes the flag via
update_user_meta(). type=active|completed; anything else 400s.
- An inline jQuery handler in wp_notes_add_inline_scripts() listens
for clicks on .wp-notes-empty .notice-dismiss (WP core's auto-
injected X button) and fires the AJAX call. The visual hide is
still WP core's job.
- The notice element carries data-wp-notes-empty-type and a fresh
per-render data-wp-notes-nonce for the round trip.
RESET
The flag is per-user-meta keyed wp_notes_dismissed_empty_active /
wp_notes_dismissed_empty_completed. wp_delete_user removes them
automatically. A UI button to reset dismissed notices is not built
yet — flagged in the changelog as a future enhancement.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The inline notice on the My Notes page rendered with class="notice
notice-info" but no is-dismissible modifier, so WordPress's core
common.js never attached an X close button. Users had no way to
clear the empty-state message for the current view.
Audited every notice the plugin emits while I was in there — the
migration notice and the settings_errors() calls were already
correctly dismissible AND only fired in their intended state. The
empty-state notice was the only laggard. All four notice paths now
share the same contract: dismissible by the user, AND only rendered
when the underlying state warrants it.
Dismissal is per-page-load (WP core's default behavior — clicking X
hides the element for the current view only). Cross-page-load
persistence would need user_meta or a transient and isn't built
yet; flagged in the changelog for a future enhancement.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Single-pass UX cleanup of the main WP Notes admin page. Functionality
unchanged; the page is shorter, has one H1, and stops contradicting
itself.
CHANGES
- Single H1 on the page (was five different H1s).
- Welcome/about content collapsed from THREE on-page surfaces (top
dismissible notice + nested toggle + Show/Close button row) to one
single description line linking to the dedicated About page where
the long copy already lives.
- Two duplicate "Toggle Welcome Section" buttons with the SAME label
but different targets — both removed.
- Embedded "What's New v3.0.0" changelog block deleted: it was
hard-coded to v3.0.0 while the plugin reports v3.0.2. The real
history is in CHANGELOG.md.
- "Buy me a coffee" button moved from page header to page footer —
promo shouldn't be the first thing under the page title.
- Invalid HTML cleaned up (li outside ul, p wrapping div/ul) by way
of removing the welcome blob that contained it.
- Dead bulk-action UI removed: per-row checkboxes and "Select all"
header in both wp_notes_display_notes() and wp_notes_list_table()
rendered but nothing acted on the selection. Removed with inline
comments marking the spot for when real bulk-actions land. Edit
form colspan adjusted to match the new column count.
- ~80 lines of inline style+script for the about-box dismissal
removed (localStorage tracking, show/hide handlers, two style
blocks). WordPress's notice notice-info is-dismissible + user-meta
is the right path if a banner needs to return.
- toggleSection() JS helper removed (no toggles remain).
- Small CSS additions to inc/wp-notes-styles.php for the header
banner and footer-support link.
ALSO FIXED
- PHP 8.2 deprecation: ${size}px → {$size}px in the dashboard
list-table render. ${var} interpolation is deprecated since 8.2
and will hard-error in 9.0.
NET DIFF: wp-notes.php -213 lines, total -111 lines across 4 files
(plus a new CHANGELOG entry). Storage model unchanged.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Imports the v3.0.2 line of A-WP-Notes as it existed on M5 at:
Local Sites/wordpress/public/wp-content/plugins/a-wp-notes/
This is a deliberately minimal parallel fork of the plugin, distinct
from the v1.2.0 line in ranger/a-wp-notes. It carries only the core
note-taking functionality:
wp-notes.php — plugin bootstrap + admin UI
inc/wp-notes-display.php — note rendering
inc/wp-notes-about.php — About page
inc/wp-notes-feedback.php — feedback module
inc/wp-notes-styles.php — style enqueues
inc/wp-notes-updater.php — self-hosted updater stub
inc/admin-bar.php — admin bar integration
js/wp-notes-feedback.js — feedback front-end
js/Chart.js — charting (bundled)
assets/wp-notes-banner.jpg — plugin banner
The AI ecosystem (chat, personalities, MCP), speed-test system, OS info
pages, and the bulk of the v1.2.0 / v2.0.x feature surface are
intentionally absent — this fork was created by copying the plugin to a
second WP install and trimming back to a lighter baseline.
Archived for comparison and parallel-line testing. No further development
is planned on this line; the active line continues at v1.2.0 in
ranger/a-wp-notes.