19 Commits

Author SHA1 Message Date
ranger e51b087545 release: 3.3.2 → 3.3.3 — verification bump to test the "Check now" flow end-to-end
Pure version increment with no functional changes. Lets David's
Local install (currently on v3.3.2) hit the "Check now" button in
Settings → Updates and verify the panel correctly reports a real
version delta — should render "v3.3.3 available — Download .zip"
with a working download link to the source archive on Gitea.

After the test passes, `git pull` brings the local install to
v3.3.3 and the same panel should flip back to "You are up to date
(v3.3.3)".

VERSION
- wp-notes.php header 3.3.2 → 3.3.3
- WP_NOTES_VERSION constant 3.3.2 → 3.3.3
- About page version-history leads with v3.3.3 as latest (with a
  cheeky "if you can see this line, you successfully pulled the
  test release" note); v3.3.2 demoted to previous entry.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v3.3.3
2026-05-25 09:47:25 +01:00
ranger 1c93c82ef5 fix: update checker — fall back to /tags when no formal Gitea Release exists (v3.3.2)
The v3.3.0 update checker only queried Gitea's /releases/latest
endpoint, which requires a formal Release object (created via the
Gitea web UI with optional notes + zip assets attached). A plain
"git tag v3.3.x && git push --tags" from the terminal does NOT
create that Release object — so the checker kept returning "No
releases tagged on the Gitea repo yet" even when tags existed.

wp_notes_fetch_latest_release() now falls back to the
/tags?limit=1 endpoint when /releases/latest returns 404 (or any
non-200). It synthesises a release-like payload from the newest
tag — tag_name, html_url pointing at the tag view, tag message as
the body, empty assets[] so the existing download-URL logic falls
through to Gitea's source-archive URL pattern (/archive/<tag>.zip).

Net effect: the "Check now" button now finds the latest version
whether David creates formal Gitea Releases OR just pushes tags
with "git push --tags". No workflow change required.

Discovered while diagnosing why "Check now" wasn't seeing today's
v3.1.0/v3.2.0/v3.3.0/v3.3.1 tags (just pushed in this session)
— the tags were there, the formal Release objects were not.

KNOWN LIMITATION (not a bug — flagged)
The Gitea repo ranger/a-wp-notes-v3 is currently private. Anonymous
API requests get a 404 (Gitea's standard behaviour for private
repos). The updater code is correct but can't actually reach the
API on a private repo without authentication. Fix: change the
repo visibility to public on Gitea — appropriate anyway for a
GPL-licensed plugin headed for the WordPress.org marketplace.

VERSION BUMP
- wp-notes.php header 3.3.1 → 3.3.2
- WP_NOTES_VERSION constant 3.3.1 → 3.3.2
- About page version-history leads with v3.3.2; v3.3.1 demoted

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v3.3.2
2026-05-25 09:29:33 +01:00
ranger 3667b7a154 release: 3.3.0 → 3.3.1 — drop "WP" prefix, plugin is now just "Logbook"
David's call after a short discussion about WordPress.org marketplace
considerations. WP.org's trademark policy historically discourages
plugins implying official endorsement via a "WP" prefix and has been
known to request rename during submission review. Dropping it now
makes the name cleaner AND sidesteps that future hurdle if/when the
plugin lands on the marketplace.

CHANGES
All user-facing brand mentions: WP Logbook → Logbook across:
- Plugin header (Plugin Name + docblock)
- Admin menu top-level
- Admin sidebar submenu label still "My Log" (already prefix-free)
- Admin bar count menu
- Dashboard widget title
- Settings page H1
- Main page H1
- About page intro card + "What Logbook does" card heading
- Email feedback subject + body intro
- Legacy feedback.php subject lines
- error_log() prefix [WP Logbook] → [Logbook]
- Updater panel description text
- styles.php docblock

VERSION
- wp-notes.php header Version: 3.3.0 → 3.3.1
- WP_NOTES_VERSION constant: 3.3.0 → 3.3.1
- About page version-history card gets new top entry for v3.3.1
  with green "latest" pill; v3.3.0 demoted to previous entry
- CHANGELOG header line tracks the full naming lineage now:
  A-WP-Notes (≤v3.1.0) → WP Logbook (v3.2.0-v3.3.0) → Logbook
  (v3.3.1+)

NOTABLY NOT CHANGED
- Historical CHANGELOG entries for v3.2.0 still say "WP Logbook" —
  that was the correct name at the time, rewriting would be
  revisionist.
- Same zero-migration commitment: internal function names,
  constants, DB option keys, user_meta keys, file paths, plugin
  slug 'wp-notes', and text domain 'a-wp-notes' all unchanged.
- Pure user-facing string change. No data migration, no behaviour
  change. Existing installs see "Logbook" appear on next page
  refresh.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v3.3.1
2026-05-25 09:13:51 +01:00
ranger 5c8f1716a3 release: 3.2.0 → 3.3.0 — self-hosted update checker (Gitea API)
WP Logbook is hosted on the author's own Gitea instance
(git.davidtkeane.com), not on WordPress.org, so WP's built-in update
flow doesn't see new releases. This release adds a Settings →
Updates panel that polls Gitea's Releases API and reports whether
a newer version is available.

CHANGES
- inc/wp-notes-updater.php: full rewrite of the previous broken stub
  (it had a hard require on a non-existent vendor path and was never
  included from the main plugin file anyway).
- wp_notes_fetch_latest_release() hits
  /api/v1/repos/<owner>/<repo>/releases/latest, parses, normalises.
  Prefers a .zip asset attached to the release; falls back to
  Gitea's source-archive zip URL.
- wp_notes_update_status() compares against WP_NOTES_VERSION and
  returns 'available' | 'up-to-date' | 'unknown' (the last when no
  release has been tagged yet — graceful first-run UX since the
  repo currently has zero tags).
- New AJAX endpoint wp_notes_check_updates, capability-gated
  (manage_options) + nonce-protected. Force-refreshes the cache.
- Settings page now renders the Updates panel via
  wp_notes_render_updates_panel() — current status text, "Check
  now" button, View on Gitea / View all releases quick links,
  manual-install instructions, and a Download .zip button + View
  release notes link when an update is detected.
- wp-notes.php require_once chain now includes the updater file.

CACHING
- Successful fetches: 12h site transient.
- Negative responses (404 = no releases yet): 1h so a freshly-
  tagged release shows up quickly.

INSTALLATION FLOW (intentionally manual)
The panel does NOT auto-install. Manual path printed in the panel:
download .zip → deactivate → upload via Plugins → Add New → Upload
→ reactivate. Notes live in wp_options so they survive the upgrade.

ALSO IN 3.3.0
- Section heading rename carried from the previous unreleased
  block: "Add New Note" → "New Log Entry"; "Notes Todo List:" →
  "Log entries". Row-level "note" labels intentionally unchanged.

VERSION BUMP
- wp-notes.php header 3.2.0 → 3.3.0
- WP_NOTES_VERSION constant 3.2.0 → 3.3.0
- About page version history leads with v3.3.0 as latest, demotes
  v3.2.0 to previous entry

NOTES FOR FUTURE-CLAUDE
- Gitea repo currently has ZERO release tags. First run will show
  "No releases tagged on the Gitea repo yet." Tag v3.2.0 / v3.3.0
  on Gitea and the checker will start reporting versions.
- Repo coordinates live in three constants at the top of
  inc/wp-notes-updater.php (WP_NOTES_GITEA_HOST, _OWNER, _REPO).
  Override via define() in wp-config.php if the repo ever moves.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v3.3.0
2026-05-25 09:09:40 +01:00
ranger eeaf8a0f87 ux: rename section headings on My Log page to match the logbook framing
The H1 says "WP Logbook" and the sidebar says "My Log" since the
v3.2.0 rebrand, but two section headings on the My Log page still
read "Add New Note" and "Notes Todo List:" — slightly jarring next
to the new identity.

CHANGES
- "Add New Note" (create form postbox) → "New Log Entry"
- "Notes Todo List:" (above active + completed lists) → "Log entries"

NOT CHANGED — intentionally
Row-level labels stay as "note" because that's the unit-of-work term
in the existing data model and the per-row UI:
- "Add Note" submit button
- "Mark as Done"
- "No active/completed notes found" empty-state notices
- Email subjects ("WP Logbook feedback…" stays, doesn't say note)

The headings are brand-y; the row-level strings are functional.
Different rename scope on purpose — minimises churn while still
making the page read consistently with its new name.

No version bump — too small to justify another release, lives in
[Unreleased] until the next phase bundles with it.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 08:34:17 +01:00
ranger 0c20833fe5 release: 3.1.0 → 3.2.0 — rebrand A-WP-Notes → WP Logbook
The plugin's identity has shifted over the day's work — from a notes
pad to a work-logbook with time tracking, earnings, and a Wallet
tile on the v4 roadmap. "WP Notes" undersold what it had become and
collided semantically with WordPress's notes-as-memos connotation;
"WP Logbook" matches both the freelancer use case ("logbook for
clients") and the student use case ("logbook for teachers"), and
matches the exact word the plugin's own About-page intro had been
using all day.

USER-FACING CHANGES
- Plugin Name header: A-WP-Notes → WP Logbook
- Description header rewritten to reflect the work-logbook framing
- Admin menu top-level: WP Notes → WP Logbook
- Admin sidebar submenu: My Notes → My Log (matches new parent —
  reads cleanly as "WP Logbook → My Log")
- Admin bar count menu: WP Notes (N) → WP Logbook (N)
- Dashboard widget title: WP Notes → WP Logbook
- Settings page H1: WP Notes Settings → WP Logbook Settings
- Main page H1: WP Notes → WP Logbook
- About page: every brand mention updated; "Go to WP Notes →" CTA
  now reads "Go to My Log →" to match the new submenu
- About page version history now leads with v3.2.0 (this release)
  as latest, demotes v3.1.0 to the previous entry
- CPT menu_name label: WP Notes → WP Logbook (cosmetic only — CPT
  hidden from admin UI since the duplicate-form fix in v3.1.0)
- Migration notice text updated
- Email-feedback subject + body intro updated
- Legacy feedback.php subjects (WP Notes Feedback / Help Request)
  → WP Logbook variants
- error_log() prefix [WP Notes] → [WP Logbook]

ZERO-MIGRATION COMMITMENT — these stay unchanged
- All wp_notes_* function names
- All WP_NOTES_* constants
- All DB option keys (wp_notes, wp_done_notes, wp_notes_settings,
  wp_notes_migration_completed, wp_notes_version,
  wp_notes_dismissed_empty_active|completed)
- All user_meta keys
- Admin page slug 'wp-notes' (preserves bookmarks, admin-bar
  #new-note anchor, and the legacy ?page=wp-notes-create redirect)
- Plugin text domain 'a-wp-notes'
- File and directory names (wp-notes.php, inc/wp-notes-*.php,
  assets/wp-notes-banner.jpg)
- Gitea repo name (ranger/a-wp-notes-v3) — David can rename on the
  Gitea side separately if he wants

The rename is purely user-facing strings. Existing installs see the
new name appear after a plugin file refresh, with zero behaviour
change. No re-activation needed.

VERSION BUMP
- wp-notes.php header Version: 3.1.0 → 3.2.0
- WP_NOTES_VERSION constant: 3.1.0 → 3.2.0
- CHANGELOG: new [3.2.0] section that bundles the rename with the
  post-3.1.0 unreleased work (About-page rewrite, feedback form)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v3.2.0
2026-05-25 08:28:50 +01:00
ranger bc7d6986a8 feat: Leave Feedback form — multi-select checkboxes + actually-working submit
The right-column "Leave Feedback" form on the About page has been
expanded from two radio buttons (user picked one of two) to seven
checkboxes (user can pick any), plus an optional message textarea.
The submit button — which previously called toggleSection() on
element IDs that never existed and did nothing — now AJAX-posts
to a new server-side handler that emails the site admin via
wp_mail().

FORM OPTIONS (checkboxes — multi-select)
- I have ideas to improve this plugin
- I need help with this plugin
- I found a bug
- I'd like to request a new feature
- I'd like to share my use case
- Just saying thanks
- Other

SUBMISSION FLOW
- Client-side: at least one checkbox OR a message is required; an
  inline hint shows otherwise.
- AJAX POST wp_notes_submit_feedback with topics[] + message + nonce.
- Server handler (manage_options capability + nonce checked)
  sanitizes input, allow-lists the seven topic keys, builds a
  plain-text email body (sender + site URL + plugin version +
  checked topics with pretty labels + message), and ships it to
  get_option('admin_email') via wp_mail() with Reply-To set to the
  submitting user.
- Inline success message replaces the form on success; inline error
  lets the user retry on failure.

The toggleSection() helper that the old broken handler used is kept
defined for now — it's no longer referenced anywhere on the About
page, so it's flagged in the changelog for a future Tier-2 removal
pass.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 08:13:52 +01:00
ranger 184a124315 ux: rewrite About page — readable cards, accurate version history
The About page had been showing "Version 2.0.3 (Current)" while the
plugin reports v3.1.0 — the on-page version log was years behind
the actual changelog. Both the About and Version History sections
were also hidden behind onclick=toggleSection() buttons by default,
which is anti-UX for a page users specifically navigate to in order
to READ content.

Rewrote the left column as three plain cards using the same visual
rhythm as the side-by-side intro row that landed earlier today:

1. What WP Notes does — two paragraphs of prose
2. Who it's for — clean bulleted list (dropped the "Teachers ←
   Email Notifications" entry since that feature isn't implemented
   in v3.x; the claim was misleading)
3. Version history — compact, accurate, latest-first summary:
   v3.1.0 (latest, with "latest" pill) → v3.0.2 → v2.x → v2.0.0.
   Plus a "View the full CHANGELOG.md →" link to the canonical
   history on Gitea so the on-page summary stays small.

Also fixed:
- Removed redundant duplicate paragraphs ("WP Notes is a versatile
  plugin that caters to a wide range of users" appeared twice in
  two consecutive lines).
- Removed invalid HTML (bare <li> outside <ul>, <p> wrapping <li>).
- Removed a buried banner image + buried Buy-Me-A-Coffee that
  were inside the hidden-by-default Version History toggle —
  visible to no-one. Both already exist in better positions on
  the page.

Added CSS classes for the new cards (.wp-notes-about-card,
.wp-notes-about-card--versions) including a green "latest" pill
on the current version and monospaced version labels in the
plugin's blue.

Right-column feedback box unchanged. toggleSection() helper kept
(still referenced by the feedback form's submit handler — its
broken behaviour is a separate Tier 2 problem).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 08:04:07 +01:00
ranger 99475e80f2 release: 3.0.2 → 3.1.0
A single-day UX polish + bug-fix release. Nine prior commits worth
of work culminating today:

- Hidden phantom wp_note CPT submenus that misrouted Add New Note
  to the standard WP post editor (commit 05d8ad5).
- Tier 1 page-callback cleanup: single H1, collapsed triple
  about/welcome surfaces, removed duplicate Toggle Welcome buttons,
  deleted lying v3.0.0 embedded changelog, moved Buy-Me-A-Coffee
  header → footer, removed dead bulk-action checkboxes,
  PHP 8.2 ${size}px → {$size}px deprecation (commit 930e605).
- Banner moved from My Notes page top to About page as a 320px-wide
  side-by-side intro row (commit 868911d).
- Menu rename: "Create WP Note" → "My Notes",
  "About WP Notes" → "About"; About page H1 trimmed to match Tier 1
  style (commit b34d2d8).
- Removed the duplicate smiley-face button beside the emoji input
  (commit 3f881b0).
- Made the "No notes found" empty-state notice dismissible
  (commit 71df974).
- Fixed the duplicate "Create a New WP Note" form rendering at the
  bottom of the My Notes page — root cause was WP firing both
  parent and submenu callbacks for the shared menu_slug
  (commit c773a21).
- Added persistent per-user dismissal of the empty-state notice via
  user_meta + AJAX, so closing it stays closed across page reloads
  (commit 35920fe).
- Removed the Tools → My Notes shortcut and added a backward-
  compatible redirect for stale ?page=wp-notes-create bookmarks
  (commit 3801cc2).

Bump:
- wp-notes.php header Version: 3.0.2 → 3.1.0
- WP_NOTES_VERSION constant 3.0.2 → 3.1.0
- CHANGELOG [Unreleased] block moved under [3.1.0] - 2026-05-25

No data migration required. Storage model unchanged (wp_options).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v3.1.0
2026-05-25 08:00:41 +01:00
ranger 3801cc283b refactor: remove Tools → My Notes shortcut, redirect legacy URL to main page
The "Tools → My Notes" admin menu shortcut routed to a separate
bare-bones create form at ?page=wp-notes-create with no notes list,
no styling, no parity with the main My Notes page. It was a third
route to "create a note" duplicating the two that already work
better: the proper WP Notes → My Notes sidebar entry, and the admin-
bar "New Note" quick-jump that lands on the same page's form.

CHANGES
- Removed the wp_notes_add_tools_menu() registration (add_management_page
  + its admin_menu hook).
- Deleted the wp_notes_create_page() function in full — the bare-bones
  renderer, no longer referenced anywhere.
- Added wp_notes_redirect_legacy_create_page() on admin_init: anyone
  hitting the legacy ?page=wp-notes-create URL (stale bookmark, old
  email link, etc.) is wp_safe_redirect()-ed to ?page=wp-notes. No
  404 / no "insufficient permissions" page for old links.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 07:59:01 +01:00
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
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
ranger 71df974a93 ux: make the "No notes found" empty-state notice dismissible
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>
2026-05-25 07:51:39 +01:00
ranger 3f881b01ca ux: remove 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 for users who
expected one or the other to be the trigger.

The button is gone. Clicking the input itself still opens the
picker (the existing JS already wired both .emoji-picker-button and
.emoji-input to the same click handler — the click handler now just
targets .emoji-input). Keyboard navigation (Enter/Space to toggle,
Escape to close) refocuses the input instead of the removed button.

Orphaned .emoji-picker-button CSS rule deleted.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 07:49:09 +01:00
ranger b34d2d8f70 ux: rename "Create WP Note" → "My Notes" and "About WP Notes" → "About"
The "Create WP Note" submenu was misleadingly narrow — that page is
the central dashboard (create form + active list + completed list +
edit + restore). Renamed to "My Notes" to match the WP-native
"Posts → All Posts" pattern and reflect that users land there for
everything, not just creation.

"About WP Notes" → "About": the WP Notes brand is already carried by
the parent menu, so the submenu can be plain-spoken.

CHANGES
- wp-notes.php: WP Notes submenu "Create WP Note" → "My Notes"
- wp-notes.php: Tools menu shortcut "Create WP Note" → "My Notes"
  (same target page)
- wp-notes.php: WP Notes submenu "About WP Notes" → "About"
- wp-notes.php: callback docblock updated to reflect new name
- inc/wp-notes-about.php: page H1 trimmed to match the Tier-1 style
  on the main page (h1 "About" + version chip + wp-header-end hr),
  replacing the previous "Welcome to WP Notes About Page v3.0.2"
- inc/wp-notes-about.php: removed a redundant nested
  <div id="header"> with display:none that was dead markup leftover
  from an older layout

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 07:44:04 +01:00
ranger 868911dfa6 ux: move banner from Create-Note page to About page (side-by-side intro)
The banner image was the first thing under the page title on the
Create-Note page — taking significant vertical space before the user
saw the textarea. The Create-Note page is for *doing*, not for
*reading-about*.

CHANGES
- Banner removed from wp_notes_page_callback() — Create-Note page
  now opens straight into the form.
- Banner added to the top of the About page in a new side-by-side
  row: 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.
- The side-by-side block lives in its own .wp-notes-about-intro
  container so it doesn't tangle with the rest of the About page's
  pre-existing nested toggles (those are still on the Tier 2 list).
- .wp-notes-header-banner / .wp-notes-banner-img CSS removed from
  wp-notes-styles.php — no longer referenced anywhere.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 07:41:09 +01:00
ranger 930e605b2d ux: Tier 1 cleanup of wp_notes_page_callback — single H1, collapse triple welcome surfaces, footer support link
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>
2026-05-25 07:37:07 +01:00
ranger 05d8ad52ad fix: hide unused wp_note CPT from admin UI to stop "Add New Note" misroute
The plugin registered a wp_note CPT 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 WP
post editor — but the live plugin stores notes in wp_options
(get_option('wp_notes')), not as CPT posts. Anyone clicking that
submenu ended up writing to the wrong storage and their note never
appeared in the WP Notes list.

Fix: show_ui and show_in_menu set to false on the wp_note CPT, and
show_ui / show_admin_column / show_in_rest set to false on the
wp_note_category taxonomy. The CPT/taxonomy remain registered so the
wp_notes_migrate_to_cpt() helper can still call wp_insert_post() —
just no admin UI side-effects until the migration is completed and
the live storage swaps over.

Also adds CHANGELOG.md in Keep-a-Changelog format with the
[Unreleased] entry for this fix and a 3.0.2 baseline note for the
"trimmed from v1.1.5 feature-creep" lineage.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 07:26:04 +01:00
ranger 433de27d9b chore: archive A-WP-Notes v3.0.2 — minimalist parallel fork
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.
2026-05-22 16:43:03 +01:00