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>
8.9 KiB
Changelog
All notable changes to A-WP-Notes are documented here. Format: Keep a Changelog 1.1.0 — versioning: SemVer.
[Unreleased]
Fixed — Empty-state notice ("No notes found") now dismissible
The "No active notes found" / "No completed notes found" 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 to it. Users couldn't clear the
message for the current view. Adding is-dismissible is the only
change — WP core handles the X button render + click-to-hide
automatically. Dismissal is per-page-load (the message reappears on
next refresh if the list is still empty); persistence across
reloads would need user_meta tracking and isn't built yet.
Notice inventory after this fix — every notice the plugin emits is now both dismissible AND only fires in its intended state:
| Notice | Class | Fires when |
|---|---|---|
| "No active/completed notes found" | notice notice-info is-dismissible |
List is empty |
| Migration prompt | notice notice-info is-dismissible |
wp_notes_migration_completed option is unset |
| Settings save / import errors / import success | rendered by core settings_errors() (auto-dismissible since WP 4.2) |
Only on form submission events |
Changed — Removed duplicate smiley-face button on the emoji picker
The "Add emoji" formatting option rendered two clickable elements
stacked: the "Click to add emoji" text input AND a separate button
beside it with a smiley-face dashicon. Both opened the same dropdown
picker — visually duplicated and slightly confusing. The standalone
button has been removed; clicking the input itself still opens the
picker (the JS already wired both targets to the same handler).
Keyboard navigation (Enter/Space to toggle, Escape to close)
follows focus to the input instead of the now-gone button.
Orphaned .emoji-picker-button CSS rule deleted.
Changed — Menu labels: "Create WP Note" → "My Notes", "About WP Notes" → "About"
- "Create WP Note" submenu renamed to "My Notes" (both in the WP
Notes parent menu and the Tools → quick-access shortcut). The page
is the central dashboard — create form + active list + completed
list + edit + restore — so "Create" was misleadingly narrow.
"My Notes" matches the WP-native
Posts → All Postspattern. - "About WP Notes" submenu renamed to just "About". The WP Notes brand is already carried by the parent menu, so the submenu can be plain-spoken.
- About page H1 trimmed to match the Tier-1 style on the main
page:
<h1>About</h1>+ version chip instead of the old "Welcome to WP Notes About Page v3.0.2" mouthful. Samewp-heading-inline+page-title-action+wp-header-endrecipe. - Removed a redundant nested
<div id="header">withdisplay: noneon the About page — it was dead markup leftover from an older layout.
Changed — Banner moved to About page (side-by-side intro)
- Banner image removed from the Create-Note page. It was the first thing under the page title and took up significant vertical space before the user even saw the textarea. The Create-Note page is for doing, not for reading-about.
- Banner added to the top of the About page in a new
side-by-side row: banner image on the left (capped at 320px wide,
not full-bleed), and a short intro paragraph + "Go to WP Notes →"
CTA on the right. Stacks vertically on narrow screens via
flex-wrap. Lives inside its own.wp-notes-about-introblock so it doesn't interact with the rest of the About page's nested toggles. .wp-notes-header-banner/.wp-notes-banner-imgCSS removed fromwp-notes-styles.php— no longer used.
Changed — Tier 1 UX cleanup
Single pass through wp_notes_page_callback() to remove the layout
debt that had built up over previous releases. Functionality is
unchanged; the page is shorter, has one H1, and stops contradicting
itself.
- Single H1 on the page — was five (
Welcome to WP Notes,Welcome to WP Notes v3.0.2,About WP Notes,What WP Notes Offers,What's New in WP Notes v3.0.2). Now: justWP Noteswith the version chip alongside. Accessibility + SEO. - "Welcome / About" content collapsed from THREE on-page surfaces (a dismissible top notice + a nested toggle + a manual "Show Welcome Message" button) down to a single one-line description that links to the dedicated About page where the long copy already lives.
- Duplicate "Toggle Welcome Section" buttons removed. Both outer and inner toggle buttons had the same label but different targets — genuinely confusing. Both gone.
- "What's New v3.0.0" embedded changelog block removed. It was
hard-coded to v3.0.0 while the plugin reports v3.0.2 — the embed
was lying. The real history lives in
CHANGELOG.mdnow. - "Buy me a coffee" button moved from page header to page footer — promo content should not be the first thing under the page title. Now sits at the bottom of the notes lists, centred, where footer items belong.
- Invalid HTML cleaned up —
<li>tags outside<ul>,<p>tags wrapping<div>/<ul>. Was in the deleted welcome blob, so resolved by removal. - Dead bulk-action UI removed — both the per-row checkboxes and
the "Select all" header column in
wp_notes_display_notes()andwp_notes_list_table()were rendered but nothing acted on the selection. Removed both, with an inline comment marking the spot for when real bulk-actions get wired up. Edit-form colspan adjusted (6→4) to match the new column count. - Inline
<style>and<script>blocks for the dismissed about-box (~80 lines of localStorage-based dismiss tracking and show/hide logic) deleted along with the about-box itself — WordPress's ownnotice notice-info is-dismissibleand the user-meta dismissal API are the correct path if a banner needs to return. toggleSection()JS helper removed — no toggles remain on the page after the welcome-blob deletion.
Fixed (PHP 8.2 deprecation)
${size}px→{$size}pxin the dashboard list-table render.${var}string interpolation is deprecated in PHP 8.2 and will hard-error in PHP 9.
Notes
- The dedicated About page (
Settings → WP Notes → About WP Notes) is unchanged and still renderswp_notes_about_page()frominc/wp-notes-about.php. All the long welcome/about copy lives there — exactly where it belongs. - Banner image still renders, in its own bordered container at the top of the page. Moved out of the deleted nested toggle so it actually shows.
- Storage model is unchanged — notes still live in
wp_optionsunderwp_notes/wp_done_notes. The UX cleanup is purely presentational.
Fixed
-
"Add New Note" sidebar submenu opening the WordPress post editor. The plugin registered a
wp_notecustom post type withshow_ui => trueandshow_in_menu => 'wp-notes', which caused WordPress to auto-inject "All Notes" and "Add New" submenus under the WP Notes admin menu. The "Add New" submenu routed topost-new.php?post_type=wp_note— the standard WordPress post editor — but the live plugin stores notes inwp_options(get_option('wp_notes')), not as CPT posts. Saving in the post editor wrote to the wrong storage and the new note never appeared in the WP Notes list. Discovered 2026-05-25.Fixed by setting
show_uiandshow_in_menutofalseon thewp_noteCPT, andshow_ui/show_admin_column/show_in_resttofalseon thewp_note_categorytaxonomy. The CPT and taxonomy remain registered sowp_notes_migrate_to_cpt()can still usewp_insert_post()if/when the migration is run. The form on the actual WP Notes page (the one that POSTs to the same admin page) continues to work unchanged.
Notes
- The plugin currently uses two storage models: the active one is
wp_options(keywp_notes, with completed notes inwp_done_notes). The CPT + meta storage is the target of an unfinished migration; the helperwp_notes_migrate_to_cpt()is defined but unused by the live UI. Until that migration is completed, hiding the CPT from the admin UI prevents users from accidentally writing to the wrong store.
[3.0.2] — 2025-05-10 (last released version, baseline)
The v3 "without all the crap" release. Trimmed from the v1.1.5 feature-creep era which had bolted on:
- AI chat (multiple variants)
- AI personalities
- Journal mode
- Speedtest
- Tamagotchi (yes, really)
- Backup
- And more
v3 strips back to the essentials:
- Notes list (in
wp_options) - Create note form (color, size, font, emoji)
- Admin bar quick-access menu
- Settings page
- Import / Export
- About page
- Update checker
This baseline entry exists for historical context; future releases should keep adding entries above and remove this note once a real changelog history accrues.