Files
rangerhq-logbook/CHANGELOG.md
T
ranger c773a21c25 fix: stop the duplicate "Create a New WP Note" form rendering at the bottom of My Notes
WordPress registers BOTH the parent menu's callback AND a submenu's
callback against the same page hook when they share a menu_slug, and
runs both in registration order. The My Notes submenu was passing
wp_notes_create_page as its callback (a separate bare-form renderer
used by the Tools-menu shortcut), so its output was being appended
below the main page content — appearing as a duplicate "Create a
New WP Note" form at the bottom of the My Notes page.

The submenu now passes an empty string as the callback — the
standard WP pattern when a submenu just relabels the parent (same
slug, same target page). Only the parent's wp_notes_page_callback
renders now.

The wp_notes_create_page function is unchanged and still serves
the Tools → My Notes shortcut at ?page=wp-notes-create.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 07:54:54 +01:00

10 KiB

Changelog

All notable changes to A-WP-Notes are documented here. Format: Keep a Changelog 1.1.0 — versioning: SemVer.


[Unreleased]

Fixed — Duplicate "Create a New WP Note" form at the bottom of My Notes

A second, bare-bones "Create a New WP Note" form was being rendered at the bottom of the My Notes page, below the active and completed lists. The form at the top (the proper Add New Note postbox with color/size/font/emoji controls) is the intended one — the bottom one was a duplicate, redundant from a UX standpoint.

Root cause: WordPress registers BOTH the parent menu's callback AND a submenu's callback against the same page hook when the two share a menu_slug. When ?page=wp-notes is requested, both fire in registration order. The submenu was passing wp_notes_create_page as its callback (a separate bare-form renderer used by the Tools-menu shortcut), so its output was getting appended below the main page.

Fix: the My Notes submenu now passes an empty string as the callback — the standard WP pattern when a submenu just relabels the parent (same slug, same target page). Only the parent's wp_notes_page_callback renders now. The wp_notes_create_page function is unchanged and still serves the Tools → My Notes shortcut at ?page=wp-notes-create.

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 Posts pattern.
  • "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. Same wp-heading-inline + page-title-action + wp-header-end recipe.
  • Removed a redundant nested <div id="header"> with display: none on 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-intro block so it doesn't interact with the rest of the About page's nested toggles.
  • .wp-notes-header-banner / .wp-notes-banner-img CSS removed from wp-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: just WP Notes with 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.md now.
  • "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() and wp_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 (64) 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 own notice notice-info is-dismissible and 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}px in 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 renders wp_notes_about_page() from inc/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_options under wp_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_note custom post type with show_ui => true and show_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 to post-new.php?post_type=wp_note — the standard WordPress post editor — but the live plugin stores notes in wp_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_ui and show_in_menu to false on the wp_note CPT, and show_ui / show_admin_column / show_in_rest to false on the wp_note_category taxonomy. The CPT and taxonomy remain registered so wp_notes_migrate_to_cpt() can still use wp_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 (key wp_notes, with completed notes in wp_done_notes). The CPT + meta storage is the target of an unfinished migration; the helper wp_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.