Files
ranger 35920fea07 feat: persist empty-state notice dismissal via user_meta
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>
2026-05-25 07:57:26 +01:00
..