Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0c20833fe5 | |||
| bc7d6986a8 | |||
| 184a124315 |
+156
-1
@@ -1,6 +1,6 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
All notable changes to **A-WP-Notes** are documented here.
|
All notable changes to **WP Logbook** (formerly **A-WP-Notes** through v3.1.0) are documented here.
|
||||||
Format: [Keep a Changelog 1.1.0](https://keepachangelog.com/en/1.1.0/) — versioning: [SemVer](https://semver.org/).
|
Format: [Keep a Changelog 1.1.0](https://keepachangelog.com/en/1.1.0/) — versioning: [SemVer](https://semver.org/).
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -9,6 +9,161 @@ Format: [Keep a Changelog 1.1.0](https://keepachangelog.com/en/1.1.0/) — versi
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## [3.2.0] — 2026-05-25
|
||||||
|
|
||||||
|
**Plugin rebrand: `A-WP-Notes` → `WP Logbook`.** Bundles the rename
|
||||||
|
with the About-page rewrite and the working Leave-Feedback form that
|
||||||
|
were sitting in the post-3.1.0 unreleased block.
|
||||||
|
|
||||||
|
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-proof-of-work use case
|
||||||
|
("logbook for clients") and the student-evidence-of-work use case
|
||||||
|
("logbook for teachers"), and matches the exact word the plugin's
|
||||||
|
own About-page intro had been using all day.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- **Plugin Name** header: `A-WP-Notes` → `WP Logbook`.
|
||||||
|
- **Description** header rewritten from "A plugin to add your notes
|
||||||
|
to the WordPress dashboard with import/export functionality" to
|
||||||
|
*"A lightweight task & logbook plugin for WordPress. Log your
|
||||||
|
daily work, mark tasks done, and keep a tidy record inside the
|
||||||
|
dashboard. Perfect for freelancers showing clients what's been
|
||||||
|
delivered and students proving work to teachers."*
|
||||||
|
- **Version bumped** v3.1.0 → v3.2.0 (header + `WP_NOTES_VERSION`
|
||||||
|
constant).
|
||||||
|
- **Admin menu top-level** `WP Notes` → `WP Logbook`.
|
||||||
|
- **Admin sidebar submenu** `My Notes` → `My Log` (matches the
|
||||||
|
new parent name; 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 (intro card, "What WP
|
||||||
|
Logbook does" heading, "Go to My Log →" CTA on the side-by-side
|
||||||
|
intro that used to say "Go to WP Notes →").
|
||||||
|
- **About page version history** now leads with v3.2.0 (this
|
||||||
|
release) as `latest` and demotes v3.1.0 to the previous entry.
|
||||||
|
- **CPT `menu_name` label** `WP Notes` → `WP Logbook` (cosmetic
|
||||||
|
only; CPT is hidden from admin UI since the duplicate-form fix in
|
||||||
|
v3.1.0).
|
||||||
|
- **Migration notice text** "WP Notes needs to migrate…" → "WP
|
||||||
|
Logbook needs to migrate…".
|
||||||
|
- **Email-feedback subject** `[Site] WP Notes feedback from X` →
|
||||||
|
`[Site] WP Logbook feedback from X`. Body intro line same change.
|
||||||
|
- **Legacy feedback.php subjects** (`WP Notes Feedback` /
|
||||||
|
`WP Notes Help Request`) → `WP Logbook Feedback` /
|
||||||
|
`WP Logbook Help Request`. These render only if the unused legacy
|
||||||
|
feedback file is ever required-in; brought along for hygiene.
|
||||||
|
- **`error_log()` prefix** `[WP Notes]` → `[WP Logbook]`.
|
||||||
|
|
||||||
|
### Notably NOT changed (zero-migration commitment)
|
||||||
|
- **All internal function names** keep `wp_notes_*` prefix.
|
||||||
|
- **All constants** keep `WP_NOTES_*` names.
|
||||||
|
- **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`)
|
||||||
|
stay as-is. **No data migration runs on upgrade.**
|
||||||
|
- **All `user_meta` keys** stay as-is.
|
||||||
|
- **Admin page slug** `wp-notes` stays — preserves bookmarks, the
|
||||||
|
admin-bar `#new-note` anchor, and the legacy
|
||||||
|
`?page=wp-notes-create` → `?page=wp-notes` redirect added in
|
||||||
|
v3.1.0.
|
||||||
|
- **Plugin text domain** `a-wp-notes` stays — would otherwise
|
||||||
|
invalidate any future translation files.
|
||||||
|
- **File and directory names** unchanged (`wp-notes.php`,
|
||||||
|
`inc/wp-notes-*.php`, `assets/wp-notes-banner.jpg`). The Gitea
|
||||||
|
repo `ranger/a-wp-notes-v3` is unchanged too — David can rename
|
||||||
|
it 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.
|
||||||
|
|
||||||
|
### Changed — Leave Feedback form (more options, multi-select, wired to email)
|
||||||
|
The right-column "Leave Feedback" form on the About page has been
|
||||||
|
expanded from two radio buttons to **seven checkboxes** (users can
|
||||||
|
pick more than one), a new optional message textarea, and a submit
|
||||||
|
button that **actually does something** — it AJAX-posts to a new
|
||||||
|
WP 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:**
|
||||||
|
1. Client-side: at least one checkbox OR a message is required;
|
||||||
|
otherwise an inline hint shows.
|
||||||
|
2. AJAX POST `wp_notes_submit_feedback` with topics[] + message +
|
||||||
|
nonce.
|
||||||
|
3. Server-side handler (`manage_options` capability + nonce checked)
|
||||||
|
sanitizes input, allow-lists the topic keys, then builds a plain-
|
||||||
|
text email and ships it to `get_option('admin_email')` via
|
||||||
|
`wp_mail()`. Reply-To is set to the submitting user's email so
|
||||||
|
the admin can reply directly.
|
||||||
|
4. Email body includes: sender (display name + email + WP login),
|
||||||
|
site URL, plugin version, the checked topics (pretty-labelled),
|
||||||
|
and the message.
|
||||||
|
5. Inline success message replaces the form on success; inline
|
||||||
|
error message lets the user retry on failure.
|
||||||
|
|
||||||
|
The old radio-button + broken `toggleSection('feedback-form-...')`
|
||||||
|
logic that pointed at non-existent IDs has been replaced entirely.
|
||||||
|
The `toggleSection()` helper is kept defined but is now genuinely
|
||||||
|
unused on the About page — flagged for removal in a future Tier-2
|
||||||
|
pass.
|
||||||
|
|
||||||
|
### Changed — About page rewritten (content + layout)
|
||||||
|
The About page (`Settings → WP Notes → About`) has been rewritten
|
||||||
|
from "wall of nested toggle boxes with outdated content" to
|
||||||
|
"readable cards with accurate content". The left column is now
|
||||||
|
three plain cards: **What WP Notes does**, **Who it's for**, and a
|
||||||
|
**Version history** that actually matches the current plugin
|
||||||
|
version.
|
||||||
|
|
||||||
|
What changed:
|
||||||
|
- **Removed two `<button>onclick=toggleSection()</button>` wrappers**
|
||||||
|
around the About and Version History sections. Users came to the
|
||||||
|
About page to read content — hiding it behind a toggle was
|
||||||
|
anti-UX.
|
||||||
|
- **"Version 2.0.3 (Current)"** entry was lying — the plugin is now
|
||||||
|
v3.1.0. Replaced the whole version section with a compact
|
||||||
|
accurate summary (v3.1.0 → v3.0.2 → v2.x → v2.0.0) plus a
|
||||||
|
prominent **"View the full CHANGELOG.md →"** link to the canonical
|
||||||
|
history on Gitea so the on-page summary doesn't have to be
|
||||||
|
exhaustive.
|
||||||
|
- **Removed redundant duplicate paragraphs** ("WP Notes is a
|
||||||
|
versatile plugin that caters to a wide range of users" appeared
|
||||||
|
twice in two lines).
|
||||||
|
- **Removed invalid HTML** — bare `<li>` outside `<ul>`, `<p>`
|
||||||
|
wrapping `<li>`.
|
||||||
|
- **Removed buried banner image + Buy-Me-A-Coffee** that were
|
||||||
|
inside the (hidden-by-default) Version History toggle, never
|
||||||
|
seen by anyone. The banner already lives at the top of the page
|
||||||
|
in the side-by-side intro row; the support link already lives in
|
||||||
|
the right-column feedback card.
|
||||||
|
- **Dropped the "Teachers want progress with Email Notifications"
|
||||||
|
use-case** — email notifications aren't implemented in v3.x so
|
||||||
|
the claim was misleading.
|
||||||
|
- **Added three CSS card classes** (`.wp-notes-about-card`,
|
||||||
|
`.wp-notes-about-card--versions`) for visual rhythm with the
|
||||||
|
intro row above, plus styling for the version entries (latest
|
||||||
|
pill, monospace version labels).
|
||||||
|
|
||||||
|
The right-column feedback box is unchanged. `toggleSection()` is
|
||||||
|
also unchanged — still defined (no harm, used by the feedback
|
||||||
|
form's broken-since-forever submit handler which is its own
|
||||||
|
Tier 2 problem).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## [3.1.0] — 2026-05-25
|
## [3.1.0] — 2026-05-25
|
||||||
|
|
||||||
A single-day UX polish + bug-fix release. Nine commits worth of
|
A single-day UX polish + bug-fix release. Nine commits worth of
|
||||||
|
|||||||
+2
-2
@@ -40,10 +40,10 @@ function wp_notes_admin_bar_menu($wp_admin_bar) {
|
|||||||
$notes = get_option('wp_notes', array());
|
$notes = get_option('wp_notes', array());
|
||||||
$count = count($notes);
|
$count = count($notes);
|
||||||
|
|
||||||
// Main WP Notes menu item
|
// Main WP Logbook menu item
|
||||||
$wp_admin_bar->add_node(array(
|
$wp_admin_bar->add_node(array(
|
||||||
'id' => 'wp-notes',
|
'id' => 'wp-notes',
|
||||||
'title' => sprintf('WP Notes <span class="count">%d</span>', $count),
|
'title' => sprintf('WP Logbook <span class="count">%d</span>', $count),
|
||||||
'href' => admin_url('admin.php?page=wp-notes'),
|
'href' => admin_url('admin.php?page=wp-notes'),
|
||||||
));
|
));
|
||||||
|
|
||||||
|
|||||||
+143
-140
@@ -2,7 +2,7 @@
|
|||||||
// wp-notes-about.php
|
// wp-notes-about.php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function to display the "About" page for WP Notes plugin.
|
* Function to display the "About" page for WP Logbook plugin.
|
||||||
*/
|
*/
|
||||||
function wp_notes_about_page() {
|
function wp_notes_about_page() {
|
||||||
?>
|
?>
|
||||||
@@ -53,150 +53,99 @@ function wp_notes_about_page() {
|
|||||||
<div class="wp-notes-about-intro">
|
<div class="wp-notes-about-intro">
|
||||||
<div class="wp-notes-about-intro__img">
|
<div class="wp-notes-about-intro__img">
|
||||||
<img src="<?php echo esc_url(WP_NOTES_URL); ?>assets/wp-notes-banner.jpg"
|
<img src="<?php echo esc_url(WP_NOTES_URL); ?>assets/wp-notes-banner.jpg"
|
||||||
alt="WP Notes banner">
|
alt="WP Logbook banner">
|
||||||
</div>
|
</div>
|
||||||
<div class="wp-notes-about-intro__body">
|
<div class="wp-notes-about-intro__body">
|
||||||
<h2>WP Notes <span style="color:#646970; font-weight:400;">v<?php echo esc_html(WP_NOTES_VERSION); ?></span></h2>
|
<h2>WP Logbook <span style="color:#646970; font-weight:400;">v<?php echo esc_html(WP_NOTES_VERSION); ?></span></h2>
|
||||||
<p>WP Notes is a lightweight task & logbook plugin for WordPress. Log your daily work, mark tasks as done, and keep a tidy history right inside the dashboard — perfect for freelancers showing clients what's been delivered.</p>
|
<p>WP Logbook is a lightweight task & logbook plugin for WordPress. Log your daily work, mark tasks as done, and keep a tidy record right inside the dashboard — perfect for freelancers showing clients what's been delivered.</p>
|
||||||
<p style="margin-bottom:0;">
|
<p style="margin-bottom:0;">
|
||||||
<a href="<?php echo esc_url(admin_url('admin.php?page=wp-notes')); ?>" class="button button-primary">Go to WP Notes →</a>
|
<a href="<?php echo esc_url(admin_url('admin.php?page=wp-notes')); ?>" class="button button-primary">Go to My Log →</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
/* Hide most plugin notices on the About page — they push the
|
/* Hide most plugin notices on the About page — they push
|
||||||
long-form content down and the user came here to read, not
|
the long-form content down and the user came here to
|
||||||
to dismiss admin chatter. Scoped to the About page only by
|
read, not to dismiss admin chatter. */
|
||||||
virtue of living in this file. */
|
.notice, .updated, .error { display: none !important; }
|
||||||
.notice, .updated, .error {
|
|
||||||
display: none !important;
|
/* About-page content cards — same visual rhythm as the
|
||||||
|
intro row above. */
|
||||||
|
.wp-notes-about-card {
|
||||||
|
background: #fff;
|
||||||
|
border: 1px solid #ccd0d4;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 20px 24px;
|
||||||
|
margin: 0 0 22px;
|
||||||
|
}
|
||||||
|
.wp-notes-about-card h2 {
|
||||||
|
margin: 0 0 10px;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
.wp-notes-about-card p:last-child { margin-bottom: 0; }
|
||||||
|
.wp-notes-about-card ul {
|
||||||
|
margin: 8px 0 0 18px;
|
||||||
|
list-style: disc;
|
||||||
|
}
|
||||||
|
.wp-notes-about-card ul li { margin-bottom: 4px; }
|
||||||
|
.wp-notes-about-card--versions ul { list-style: none; margin-left: 0; }
|
||||||
|
.wp-notes-about-card--versions li { margin-bottom: 12px; }
|
||||||
|
.wp-notes-about-card--versions .ver { font-weight: 600; color: #2271b1; }
|
||||||
|
.wp-notes-about-card--versions .latest { display: inline-block; margin-left: 6px; padding: 1px 7px; background: #00a32a; color: #fff; border-radius: 9px; font-size: 11px; font-weight: 600; }
|
||||||
|
.wp-notes-about-changelog-link {
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: 6px;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #646970;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<!-- About and Versions Section -->
|
<!-- What WP Logbook does -->
|
||||||
<h1>About WP Notes v <?php echo esc_html(WP_NOTES_VERSION); ?></h1>
|
<div class="wp-notes-about-card">
|
||||||
<div class="wp-notes-welcome" style="background: #fff; padding: 20px; margin: 20px 0; border: 1px solid #ccc;">
|
<h2>What WP Logbook does</h2>
|
||||||
<button onclick="toggleSection('about-section')" style="background: #0073aa; color: #fff; border: none; padding: 8px 12px; cursor: pointer;">
|
<p>WP Logbook is a lightweight task & logbook plugin that lives entirely inside the WordPress admin. Type a note, format it with colour / size / font / emoji, mark it done when the work is finished, restore it later if you need to revisit. Everything is stored in the site's own database — nothing leaves your server.</p>
|
||||||
Toggle About Section
|
<p>I built it for my own client work as a transparent “here's what I did this week” logbook, so customers can see clearly what they're paying for. It turned out to be just as useful for any small team or single user who wants notes attached to the WordPress dashboard rather than a separate app.</p>
|
||||||
</button>
|
|
||||||
|
|
||||||
<div id="about-section" style="margin-top: 10px; display: none;">
|
|
||||||
<!-- Content for About and Versions -->
|
|
||||||
<h2>About WP Notes</h2>
|
|
||||||
<p>
|
|
||||||
Thank you for using WP Notes! This plugin helps you manage your WordPress tasks and notes efficiently.
|
|
||||||
Keep track of your todo's, mark them as complete, and export your data for safekeeping. I made this
|
|
||||||
plugin for my website to log my daily tasks and notes as a logbook for my clients, so they can see the work
|
|
||||||
done by me or you and so PAY, as every task is important and the customers need to know what I've done.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>Log all your tasks and jobs so prove work is being done.</li>
|
|
||||||
<li>As you can see, this plugin is very flexible and can be used for a wide range of WordPress users.</li>
|
|
||||||
<li>I hope you find it useful too.</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h1>What WP Notes Offers</h1>
|
|
||||||
<p>WP Notes is a versatile plugin that caters to a wide range of users:</p>
|
|
||||||
<p>We're excited to offer our plugin to our customers.</p>
|
|
||||||
<p>WP Notes is a versatile plugin that caters to a wide range of users:</p>
|
|
||||||
<p>We have several features for you to choose from:</p>
|
|
||||||
<ul>
|
|
||||||
<li><strong>Freelancers and site developers</strong> tracking work done on client sites.</li>
|
|
||||||
<li><strong>Teams</strong> wanting to document changes or keep a changelog in the dashboard.</li>
|
|
||||||
<li><strong>WordPress power users</strong> wanting a straightforward dashboard notes system.</li>
|
|
||||||
<li><strong>Small businesses</strong> needing a simple task management solution for WordPress.</li>
|
|
||||||
<li><strong>Students</strong> wanting to keep track of their daily tasks to prove work is being done.</li>
|
|
||||||
<li><strong>Teachers</strong> wanting to keep track of their students' progress with Email Notifications.</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<li><strong>If you have any questions or feedback</strong>, feel free to reach out to us. Enjoy your note-taking experience!</li>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<li><strong>Join our community</strong> and unlock the full potential of WP Notes.</li>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<!-- Who it's for -->
|
||||||
<!-- About and Versions Section -->
|
<div class="wp-notes-about-card">
|
||||||
<h1>Version History v <?php echo esc_html(WP_NOTES_VERSION); ?></h1>
|
<h2>Who it's for</h2>
|
||||||
<div class="wp-notes-versions" style="background: #fff; padding: 20px; margin: 20px 0; border: 1px solid #ccc;">
|
<ul>
|
||||||
<button onclick="toggleSection('version-section')" style="background: #0073aa; color: #fff; border: none; padding: 8px 12px; cursor: pointer;">
|
<li><strong>Freelancers & site developers</strong> tracking work done on client sites.</li>
|
||||||
Toggle Version Section
|
<li><strong>Small teams</strong> documenting changes or keeping a project changelog inside the dashboard.</li>
|
||||||
</button>
|
<li><strong>WordPress power users</strong> who'd rather not jump out to a separate notes app.</li>
|
||||||
|
<li><strong>Small businesses</strong> needing a simple task list tied to their website.</li>
|
||||||
|
<li><strong>Students & teachers</strong> logging daily progress.</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div id="version-section" style="margin-top: 10px; display: none;">
|
<!-- Version history (compact, accurate) -->
|
||||||
<h3>Version 2.0.3 (Current)</h3>
|
<div class="wp-notes-about-card wp-notes-about-card--versions">
|
||||||
<ul>
|
<h2>Version history</h2>
|
||||||
<li>Added Error Logging: Introduced a comprehensive error logging system to capture plugin-related errors. The logs are now viewable within the admin bar for easy troubleshooting.</li>
|
<ul>
|
||||||
<li>Added Welcome Section and Version history</li>
|
<li>
|
||||||
<li>Added Image to main menu</li>
|
<span class="ver">v3.2.0</span> — 25 May 2026 <span class="latest">latest</span><br>
|
||||||
<li>Edit Function is now working</li>
|
Renamed to <strong>WP Logbook</strong> to match what the plugin is actually becoming — a work logbook for freelancers and students, not just a notes pad. Menu submenu renamed <em>My Notes</em> → <em>My Log</em>. Internal storage and slugs unchanged, no data migration.
|
||||||
<li>Popup notification with "Saved" status added</li>
|
</li>
|
||||||
<li>Error controls incorporated into code for stability</li>
|
<li>
|
||||||
<li>Enhanced `wp-config.php` for error capturing</li>
|
<span class="ver">v3.1.0</span> — 25 May 2026<br>
|
||||||
<li>Ability to restore older notes</li>
|
UX polish + bug-fix pass. Single-H1 cleanup, banner moved to this About page, menu renamed to <em>My Notes</em>, duplicate forms removed, empty-state notice now persistently dismissible per-user via <code>user_meta</code>, Tools shortcut retired with a backward-compatible redirect.
|
||||||
<li>Displays "Created by," "Modified by," and "Edited by" fields</li>
|
</li>
|
||||||
<li>Improved task-tracking feature with a dashboard interface</li>
|
<li>
|
||||||
<li>Added color, font, and size customization for notes</li>
|
<span class="ver">v3.0.2</span> — 10 May 2025<br>
|
||||||
<li>Added edit and mark-as-done functions</li>
|
The “without all the crap” trim-back from the v1.1.5 feature-creep era (AI chat, tamagotchi, journal, speedtest… gone). Baseline of what the plugin is today: notes, admin bar, settings, import/export, about, updater.
|
||||||
<li>AJAX-based updates for smoother note editing</li>
|
</li>
|
||||||
<li>Added Create WP Note into Tools in admin bar</li>
|
<li>
|
||||||
<li>Added Create WP Note into Wp-Notes in admin bar</li>
|
<span class="ver">v2.x</span> — 2024<br>
|
||||||
<li>Added Activity Chart for activity tracking in admin bar Still needs Work</li>
|
Editor improvements, AJAX edits, mark-as-done / restore, color & font / size customisation, JSON + CSV import/export, user-attribution & timestamps, dashboard widget.
|
||||||
</ul>
|
</li>
|
||||||
<div class="wp-notes-header" style="margin-bottom: 30px;">
|
<li>
|
||||||
<img src="<?php echo esc_url(WP_NOTES_URL); ?>assets/wp-notes-banner.jpg"
|
<span class="ver">v2.0.0</span> — initial release<br>
|
||||||
style="max-width: 1200px; width: 100%; height: auto; margin-bottom: 20px;"
|
Basic note functionality with the dashboard widget and styling options.
|
||||||
alt="WP Notes Banner">
|
</li>
|
||||||
</div>
|
</ul>
|
||||||
<p>
|
<a class="wp-notes-about-changelog-link" href="https://git.davidtkeane.com/ranger/a-wp-notes-v3/src/branch/main/CHANGELOG.md" target="_blank" rel="noopener">View the full CHANGELOG.md →</a>
|
||||||
<h3>Version 2.0.4 (New) Additions</h3>
|
|
||||||
<ul>
|
|
||||||
<li>Ability to Export and Import Notes from a JSON file or a CSV file</li>
|
|
||||||
<li>Email notification when a note is marked as complete</li>
|
|
||||||
<li>Email the Notes Owner when a note is marked as complete</li>
|
|
||||||
<li>Email the current user's email when a note is created</li>
|
|
||||||
<li>Email notification when a note is edited</li>
|
|
||||||
<li>Enhanced `wp-config.php` for error capturing</li>
|
|
||||||
<li>Ability to close sections such as What's New, Version 2.0.3, and the Welcome Section</li>
|
|
||||||
<li>Welcome popup message to greet users</li>
|
|
||||||
<li>A page for ChatGPT API support, including other options like Claude-API</li>
|
|
||||||
<li>Add Emoji Support and icons</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h3>Version 2.0.2</h3>
|
|
||||||
<ul>
|
|
||||||
<li>Added user attribution for notes</li>
|
|
||||||
<li>Enhanced timestamp functionality</li>
|
|
||||||
<li>Added email export option</li>
|
|
||||||
<li>Improved dashboard widget synchronization</li>
|
|
||||||
<li>Added welcome section and version history</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h3>Version 2.0.1</h3>
|
|
||||||
<ul>
|
|
||||||
<li>Enhanced admin bar integration</li>
|
|
||||||
<li>Added timestamp to notes</li>
|
|
||||||
<li>Improved data preservation</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h3>Version 2.0.0</h3>
|
|
||||||
<ul>
|
|
||||||
<li>Initial release with basic note functionality</li>
|
|
||||||
<li>Dashboard widget integration</li>
|
|
||||||
<li>Note styling options</li>
|
|
||||||
</ul>
|
|
||||||
<br>
|
|
||||||
<!-- Buy Me a Coffee Button -->
|
|
||||||
<a href="https://www.buymeacoffee.com/davidkeanek" target="_blank">
|
|
||||||
<img src="https://img.buymeacoffee.com/button-api/?text=Buy me a coffee&emoji=&slug=davidkeanek&button_colour=FFDD00&font_colour=000000&font_family=Cookie&outline_colour=000000&coffee_colour=ffffff" alt="Buy me a coffee">
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -219,9 +168,24 @@ function wp_notes_about_page() {
|
|||||||
</a>
|
</a>
|
||||||
<!-- Feedback Options -->
|
<!-- Feedback Options -->
|
||||||
<form id="wp-notes-feedback-options" style="margin-top: 20px;">
|
<form id="wp-notes-feedback-options" style="margin-top: 20px;">
|
||||||
<label><input type="radio" name="feedback" value="improve"> I have ideas to improve this plugin</label><br>
|
<p style="margin: 0 0 8px; font-weight: 600;">What's on your mind? <span style="font-weight: 400; color: #646970;">(pick any)</span></p>
|
||||||
<label><input type="radio" name="feedback" value="help"> I need help with this plugin</label><br>
|
<label style="display:block; margin-bottom:6px;"><input type="checkbox" name="feedback_topics[]" value="improve"> I have ideas to improve this plugin</label>
|
||||||
<input type="submit" value="Submit Feedback" style="background: #0073aa; color: #fff; border: none; padding: 8px 12px; cursor: pointer; margin-top: 10px;">
|
<label style="display:block; margin-bottom:6px;"><input type="checkbox" name="feedback_topics[]" value="help"> I need help with this plugin</label>
|
||||||
|
<label style="display:block; margin-bottom:6px;"><input type="checkbox" name="feedback_topics[]" value="bug"> I found a bug</label>
|
||||||
|
<label style="display:block; margin-bottom:6px;"><input type="checkbox" name="feedback_topics[]" value="feature"> I'd like to request a new feature</label>
|
||||||
|
<label style="display:block; margin-bottom:6px;"><input type="checkbox" name="feedback_topics[]" value="use-case"> I'd like to share my use case</label>
|
||||||
|
<label style="display:block; margin-bottom:6px;"><input type="checkbox" name="feedback_topics[]" value="thanks"> Just saying thanks 🍀</label>
|
||||||
|
<label style="display:block; margin-bottom:10px;"><input type="checkbox" name="feedback_topics[]" value="other"> Other</label>
|
||||||
|
|
||||||
|
<p style="margin: 12px 0 4px; font-weight: 600;">Anything to add? <span style="font-weight: 400; color: #646970;">(optional)</span></p>
|
||||||
|
<textarea name="feedback_message" rows="4" style="width: 100%; box-sizing: border-box;" placeholder="A few sentences with more detail…"></textarea>
|
||||||
|
|
||||||
|
<?php wp_nonce_field('wp_notes_feedback_submit', 'wp_notes_feedback_nonce'); ?>
|
||||||
|
|
||||||
|
<p style="margin-top: 12px; margin-bottom: 0;">
|
||||||
|
<input type="submit" id="wp-notes-feedback-submit" value="Submit Feedback" class="button button-primary">
|
||||||
|
</p>
|
||||||
|
<p id="wp-notes-feedback-status" role="status" style="margin: 10px 0 0; min-height: 1.4em;"></p>
|
||||||
</form>
|
</form>
|
||||||
<br>
|
<br>
|
||||||
<!-- Buy Me a Coffee Button -->
|
<!-- Buy Me a Coffee Button -->
|
||||||
@@ -251,15 +215,54 @@ function wp_notes_about_page() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// JavaScript to handle feedback form toggling
|
// Submit the feedback form → AJAX → wp_mail() to the site admin.
|
||||||
|
// No toggleSection() shuffle anymore (the old code targeted IDs
|
||||||
|
// that never existed). Validates that at least one topic is
|
||||||
|
// checked, otherwise the submit is a no-op with a hint.
|
||||||
document.getElementById('wp-notes-feedback-options').addEventListener('submit', function(e) {
|
document.getElementById('wp-notes-feedback-options').addEventListener('submit', function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
var feedbackType = document.querySelector('input[name="feedback"]:checked').value;
|
var form = e.target;
|
||||||
if (feedbackType === 'improve') {
|
var btn = document.getElementById('wp-notes-feedback-submit');
|
||||||
toggleSection('feedback-form-improve');
|
var statusEl = document.getElementById('wp-notes-feedback-status');
|
||||||
} else if (feedbackType === 'help') {
|
var topics = Array.from(form.querySelectorAll('input[name="feedback_topics[]"]:checked')).map(function (i) { return i.value; });
|
||||||
toggleSection('feedback-form-help');
|
var message = (form.querySelector('textarea[name="feedback_message"]').value || '').trim();
|
||||||
|
var nonce = (form.querySelector('input[name="wp_notes_feedback_nonce"]').value || '');
|
||||||
|
|
||||||
|
if (topics.length === 0 && message === '') {
|
||||||
|
statusEl.textContent = 'Pick at least one option (or write a message) before submitting.';
|
||||||
|
statusEl.style.color = '#8a2424';
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
btn.disabled = true;
|
||||||
|
btn.value = 'Sending…';
|
||||||
|
statusEl.textContent = '';
|
||||||
|
statusEl.style.color = '';
|
||||||
|
|
||||||
|
var fd = new FormData();
|
||||||
|
fd.append('action', 'wp_notes_submit_feedback');
|
||||||
|
fd.append('nonce', nonce);
|
||||||
|
topics.forEach(function (t) { fd.append('topics[]', t); });
|
||||||
|
fd.append('message', message);
|
||||||
|
|
||||||
|
fetch(ajaxurl, { method: 'POST', credentials: 'same-origin', body: fd })
|
||||||
|
.then(function (r) { return r.json(); })
|
||||||
|
.then(function (res) {
|
||||||
|
if (res && res.success) {
|
||||||
|
form.innerHTML = '<p style="color:#1e6e40; font-weight:600; margin:0;">Thanks — your feedback has been sent. 🍀</p>';
|
||||||
|
} else {
|
||||||
|
statusEl.textContent = (res && res.data) ? String(res.data) : 'Sorry, something went wrong. Please try again.';
|
||||||
|
statusEl.style.color = '#8a2424';
|
||||||
|
btn.disabled = false;
|
||||||
|
btn.value = 'Submit Feedback';
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(function () {
|
||||||
|
statusEl.textContent = 'Network error — please try again in a moment.';
|
||||||
|
statusEl.style.color = '#8a2424';
|
||||||
|
btn.disabled = false;
|
||||||
|
btn.value = 'Submit Feedback';
|
||||||
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<?php
|
<?php
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Feedback Form for WP Notes Plugin
|
* Feedback Form for WP Logbook Plugin
|
||||||
*
|
*
|
||||||
* This file contains the HTML and AJAX handling for the feedback form.
|
* This file contains the HTML and AJAX handling for the feedback form.
|
||||||
*/
|
*/
|
||||||
@@ -95,7 +95,7 @@ function wp_notes_submit_feedback() {
|
|||||||
|
|
||||||
// Example: Send feedback via email
|
// Example: Send feedback via email
|
||||||
$to = 'david@icanhelp.ie';
|
$to = 'david@icanhelp.ie';
|
||||||
$subject = 'WP Notes Feedback';
|
$subject = 'WP Logbook Feedback';
|
||||||
$body = "Name: $name\nEmail: $email\nMessage: $message";
|
$body = "Name: $name\nEmail: $email\nMessage: $message";
|
||||||
$headers = array('Content-Type: text/plain; charset=UTF-8');
|
$headers = array('Content-Type: text/plain; charset=UTF-8');
|
||||||
|
|
||||||
@@ -148,7 +148,7 @@ function wp_notes_submit_help() {
|
|||||||
|
|
||||||
// Example: Send help request via email
|
// Example: Send help request via email
|
||||||
$to = 'david@icanhelp.ie';
|
$to = 'david@icanhelp.ie';
|
||||||
$subject = 'WP Notes Help Request';
|
$subject = 'WP Logbook Help Request';
|
||||||
$body = "Name: $name\nEmail: $email\nMessage: $message";
|
$body = "Name: $name\nEmail: $email\nMessage: $message";
|
||||||
$headers = array('Content-Type: text/plain; charset=UTF-8');
|
$headers = array('Content-Type: text/plain; charset=UTF-8');
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ if (!defined('ABSPATH')) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add required styles for WP Notes
|
* Add required styles for WP Logbook
|
||||||
*/
|
*/
|
||||||
function wp_notes_admin_styles() {
|
function wp_notes_admin_styles() {
|
||||||
?>
|
?>
|
||||||
|
|||||||
+88
-20
@@ -1,11 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* A-WP-Notes - WordPress Task Management Plugin
|
* WP Logbook — WordPress work-logbook plugin
|
||||||
*
|
*
|
||||||
* Plugin Name: A-WP-Notes
|
* Plugin Name: WP Logbook
|
||||||
* Plugin URI: https://icanhelp.ie/wp-notes
|
* Plugin URI: https://icanhelp.ie/wp-notes
|
||||||
* Description: A plugin to add your notes to the WordPress dashboard with import/export functionality
|
* Description: A lightweight task & logbook plugin for WordPress. Log your daily work, mark tasks done, and keep a tidy record inside the dashboard. Perfect for freelancers showing clients what's been delivered and students proving work to teachers.
|
||||||
* Version: 3.1.0
|
* Version: 3.2.0
|
||||||
* Requires at least: 5.0
|
* Requires at least: 5.0
|
||||||
* Requires PHP: 7.2
|
* Requires PHP: 7.2
|
||||||
* Author: IR240474
|
* Author: IR240474
|
||||||
@@ -33,7 +33,7 @@ if (!isset($wp_notes_init)) {
|
|||||||
$wp_notes_init = true;
|
$wp_notes_init = true;
|
||||||
|
|
||||||
// Plugin Constants
|
// Plugin Constants
|
||||||
if (!defined('WP_NOTES_VERSION')) define('WP_NOTES_VERSION', '3.1.0');
|
if (!defined('WP_NOTES_VERSION')) define('WP_NOTES_VERSION', '3.2.0');
|
||||||
if (!defined('WP_NOTES_FILE')) define('WP_NOTES_FILE', __FILE__);
|
if (!defined('WP_NOTES_FILE')) define('WP_NOTES_FILE', __FILE__);
|
||||||
if (!defined('WP_NOTES_PATH')) define('WP_NOTES_PATH', plugin_dir_path(__FILE__));
|
if (!defined('WP_NOTES_PATH')) define('WP_NOTES_PATH', plugin_dir_path(__FILE__));
|
||||||
if (!defined('WP_NOTES_URL')) define('WP_NOTES_URL', plugin_dir_url(__FILE__));
|
if (!defined('WP_NOTES_URL')) define('WP_NOTES_URL', plugin_dir_url(__FILE__));
|
||||||
@@ -44,7 +44,7 @@ if (!isset($wp_notes_init)) {
|
|||||||
if (!function_exists('wp_notes_log_error')) {
|
if (!function_exists('wp_notes_log_error')) {
|
||||||
function wp_notes_log_error($message) {
|
function wp_notes_log_error($message) {
|
||||||
if (defined('WP_DEBUG') && WP_DEBUG === true) {
|
if (defined('WP_DEBUG') && WP_DEBUG === true) {
|
||||||
error_log('[WP Notes] ' . $message);
|
error_log('[WP Logbook] ' . $message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -168,8 +168,8 @@ if (defined('WP_NOTES_PATH')) {
|
|||||||
// Admin Menu
|
// Admin Menu
|
||||||
function wp_notes_admin_menu() {
|
function wp_notes_admin_menu() {
|
||||||
add_menu_page(
|
add_menu_page(
|
||||||
'WP Notes',
|
'WP Logbook',
|
||||||
'WP Notes',
|
'WP Logbook',
|
||||||
'manage_options',
|
'manage_options',
|
||||||
'wp-notes',
|
'wp-notes',
|
||||||
'wp_notes_page_callback',
|
'wp_notes_page_callback',
|
||||||
@@ -177,8 +177,8 @@ function wp_notes_admin_menu() {
|
|||||||
3
|
3
|
||||||
);
|
);
|
||||||
|
|
||||||
// "My Notes" — the main landing submenu. Same slug as the parent
|
// "My Log" — the main landing submenu. Same slug as the parent
|
||||||
// menu so clicking either WP Notes or My Notes lands on the same
|
// menu so clicking either WP Logbook or My Log lands on the same
|
||||||
// central dashboard (the parent's wp_notes_page_callback already
|
// central dashboard (the parent's wp_notes_page_callback already
|
||||||
// renders form + active list + completed list).
|
// renders form + active list + completed list).
|
||||||
//
|
//
|
||||||
@@ -190,8 +190,8 @@ function wp_notes_admin_menu() {
|
|||||||
// content. Empty callback means only the parent's renderer fires.
|
// content. Empty callback means only the parent's renderer fires.
|
||||||
add_submenu_page(
|
add_submenu_page(
|
||||||
'wp-notes', // Parent slug
|
'wp-notes', // Parent slug
|
||||||
'My Notes', // Page title (browser tab)
|
'My Log', // Page title (browser tab)
|
||||||
'My Notes', // Menu label (sidebar)
|
'My Log', // Menu label (sidebar)
|
||||||
'manage_options', // Capability
|
'manage_options', // Capability
|
||||||
'wp-notes', // Menu slug (matches parent → same page)
|
'wp-notes', // Menu slug (matches parent → same page)
|
||||||
'' // Empty callback — see comment above
|
'' // Empty callback — see comment above
|
||||||
@@ -217,7 +217,7 @@ function wp_notes_admin_menu() {
|
|||||||
'wp_notes_import_export_page'
|
'wp_notes_import_export_page'
|
||||||
);
|
);
|
||||||
|
|
||||||
// About submenu — the WP Notes brand is already carried by the
|
// About submenu — the WP Logbook brand is already carried by the
|
||||||
// parent menu, so the submenu can be plain-spoken.
|
// parent menu, so the submenu can be plain-spoken.
|
||||||
add_submenu_page(
|
add_submenu_page(
|
||||||
'wp-notes',
|
'wp-notes',
|
||||||
@@ -290,7 +290,7 @@ function wp_notes_settings_page() {
|
|||||||
settings_errors('wp_notes_settings');
|
settings_errors('wp_notes_settings');
|
||||||
?>
|
?>
|
||||||
<div class="wrap">
|
<div class="wrap">
|
||||||
<h1>WP Notes Settings</h1>
|
<h1>WP Logbook Settings</h1>
|
||||||
<form method="post" action="options.php">
|
<form method="post" action="options.php">
|
||||||
<?php
|
<?php
|
||||||
settings_fields('wp_notes_settings');
|
settings_fields('wp_notes_settings');
|
||||||
@@ -304,7 +304,7 @@ function wp_notes_settings_page() {
|
|||||||
|
|
||||||
// Settings section callback
|
// Settings section callback
|
||||||
function wp_notes_section_callback() {
|
function wp_notes_section_callback() {
|
||||||
echo '<p>Configure default settings for WP Notes.</p>';
|
echo '<p>Configure default settings for WP Logbook.</p>';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Font setting callback
|
// Font setting callback
|
||||||
@@ -657,6 +657,74 @@ function wp_notes_add_inline_scripts() {
|
|||||||
</script>";
|
</script>";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Receive the "Leave Feedback" form from the About page and forward
|
||||||
|
// it to the site admin via wp_mail(). Topics is an array of short
|
||||||
|
// keys (improve / help / bug / feature / use-case / thanks / other);
|
||||||
|
// message is an optional free-text textarea. Sender info is taken
|
||||||
|
// from wp_get_current_user() so we never trust client-supplied
|
||||||
|
// identity. Capability-gated to manage_options because the About
|
||||||
|
// page is admin-only.
|
||||||
|
add_action('wp_ajax_wp_notes_submit_feedback', 'wp_notes_ajax_submit_feedback');
|
||||||
|
function wp_notes_ajax_submit_feedback() {
|
||||||
|
if (!current_user_can('manage_options')) {
|
||||||
|
wp_send_json_error('Insufficient permissions.', 403);
|
||||||
|
}
|
||||||
|
check_ajax_referer('wp_notes_feedback_submit', 'nonce');
|
||||||
|
|
||||||
|
$allowed_topics = ['improve', 'help', 'bug', 'feature', 'use-case', 'thanks', 'other'];
|
||||||
|
$raw_topics = isset($_POST['topics']) && is_array($_POST['topics']) ? wp_unslash($_POST['topics']) : [];
|
||||||
|
$topics = array_values(array_intersect($allowed_topics, array_map('sanitize_key', $raw_topics)));
|
||||||
|
|
||||||
|
$message = isset($_POST['message']) ? sanitize_textarea_field(wp_unslash($_POST['message'])) : '';
|
||||||
|
|
||||||
|
if (empty($topics) && $message === '') {
|
||||||
|
wp_send_json_error('Pick at least one topic or write a message.', 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
$user = wp_get_current_user();
|
||||||
|
$site = get_bloginfo('name');
|
||||||
|
$to = get_option('admin_email');
|
||||||
|
|
||||||
|
$topic_labels = [
|
||||||
|
'improve' => 'Ideas to improve the plugin',
|
||||||
|
'help' => 'Needs help with the plugin',
|
||||||
|
'bug' => 'Reporting a bug',
|
||||||
|
'feature' => 'New feature request',
|
||||||
|
'use-case' => 'Sharing a use case',
|
||||||
|
'thanks' => 'Saying thanks',
|
||||||
|
'other' => 'Other',
|
||||||
|
];
|
||||||
|
$topics_pretty = array_map(function ($t) use ($topic_labels) { return $topic_labels[$t] ?? $t; }, $topics);
|
||||||
|
|
||||||
|
$subject = sprintf('[%s] WP Logbook feedback from %s', $site, $user->display_name ?: $user->user_login);
|
||||||
|
$body = "Feedback received via WP Logbook → About page\n";
|
||||||
|
$body .= str_repeat('-', 48) . "\n\n";
|
||||||
|
$body .= 'From: ' . ($user->display_name ?: $user->user_login) . ' <' . $user->user_email . ">\n";
|
||||||
|
$body .= 'Site: ' . home_url() . "\n";
|
||||||
|
$body .= 'Plugin: v' . WP_NOTES_VERSION . "\n\n";
|
||||||
|
$body .= "Topics:\n";
|
||||||
|
if (!empty($topics_pretty)) {
|
||||||
|
foreach ($topics_pretty as $label) { $body .= ' - ' . $label . "\n"; }
|
||||||
|
} else {
|
||||||
|
$body .= " (none selected)\n";
|
||||||
|
}
|
||||||
|
$body .= "\nMessage:\n";
|
||||||
|
$body .= $message !== '' ? $message . "\n" : "(no message provided)\n";
|
||||||
|
|
||||||
|
$headers = [
|
||||||
|
'Content-Type: text/plain; charset=UTF-8',
|
||||||
|
'Reply-To: ' . sanitize_email($user->user_email),
|
||||||
|
];
|
||||||
|
|
||||||
|
$sent = wp_mail($to, $subject, $body, $headers);
|
||||||
|
|
||||||
|
if (!$sent) {
|
||||||
|
wp_send_json_error('Email could not be sent. Check the site mail configuration.', 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
wp_send_json_success(['delivered_to' => $to]);
|
||||||
|
}
|
||||||
|
|
||||||
// Persist a user's dismissal of the "No active/completed notes found"
|
// Persist a user's dismissal of the "No active/completed notes found"
|
||||||
// empty-state notice so it doesn't reappear on the next page load.
|
// empty-state notice so it doesn't reappear on the next page load.
|
||||||
// Triggered by inline JS in wp_notes_add_inline_scripts() when the
|
// Triggered by inline JS in wp_notes_add_inline_scripts() when the
|
||||||
@@ -743,7 +811,7 @@ function wp_notes_save_edit() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Main WP Notes Page - Central hub for note management
|
* Main WP Logbook page — central hub for note management
|
||||||
*/
|
*/
|
||||||
function wp_notes_page_callback() {
|
function wp_notes_page_callback() {
|
||||||
if (!current_user_can('edit_posts')) {
|
if (!current_user_can('edit_posts')) {
|
||||||
@@ -763,7 +831,7 @@ function wp_notes_page_callback() {
|
|||||||
?>
|
?>
|
||||||
<div class="wrap">
|
<div class="wrap">
|
||||||
<!-- Header Section with WordPress Admin Styling -->
|
<!-- Header Section with WordPress Admin Styling -->
|
||||||
<h1 class="wp-heading-inline">WP Notes</h1>
|
<h1 class="wp-heading-inline">WP Logbook</h1>
|
||||||
<span class="page-title-action">v<?php echo esc_html(WP_NOTES_VERSION); ?></span>
|
<span class="page-title-action">v<?php echo esc_html(WP_NOTES_VERSION); ?></span>
|
||||||
<hr class="wp-header-end">
|
<hr class="wp-header-end">
|
||||||
|
|
||||||
@@ -1319,7 +1387,7 @@ function wp_notes_dashboard_widget() {
|
|||||||
function wp_notes_add_dashboard_widgets() {
|
function wp_notes_add_dashboard_widgets() {
|
||||||
wp_add_dashboard_widget(
|
wp_add_dashboard_widget(
|
||||||
'wp_notes_dashboard_widget',
|
'wp_notes_dashboard_widget',
|
||||||
'WP Notes',
|
'WP Logbook',
|
||||||
'wp_notes_dashboard_widget'
|
'wp_notes_dashboard_widget'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -1330,7 +1398,7 @@ function wp_notes_register_cpt() {
|
|||||||
$labels = array(
|
$labels = array(
|
||||||
'name' => __('Notes', 'a-wp-notes'),
|
'name' => __('Notes', 'a-wp-notes'),
|
||||||
'singular_name' => __('Note', 'a-wp-notes'),
|
'singular_name' => __('Note', 'a-wp-notes'),
|
||||||
'menu_name' => __('WP Notes', 'a-wp-notes'),
|
'menu_name' => __('WP Logbook', 'a-wp-notes'),
|
||||||
'add_new' => __('Add New', 'a-wp-notes'),
|
'add_new' => __('Add New', 'a-wp-notes'),
|
||||||
'add_new_item' => __('Add New Note', 'a-wp-notes'),
|
'add_new_item' => __('Add New Note', 'a-wp-notes'),
|
||||||
'edit_item' => __('Edit Note', 'a-wp-notes'),
|
'edit_item' => __('Edit Note', 'a-wp-notes'),
|
||||||
@@ -1563,7 +1631,7 @@ function wp_notes_migration_notice() {
|
|||||||
?>
|
?>
|
||||||
<div class="notice notice-info is-dismissible">
|
<div class="notice notice-info is-dismissible">
|
||||||
<p>
|
<p>
|
||||||
<?php _e('WP Notes needs to migrate your existing notes to the new storage system.', 'a-wp-notes'); ?>
|
<?php _e('WP Logbook needs to migrate your existing notes to the new storage system.', 'a-wp-notes'); ?>
|
||||||
<a href="<?php echo esc_url(admin_url('admin.php?page=wp-notes-settings&action=migrate')); ?>" class="button button-primary">
|
<a href="<?php echo esc_url(admin_url('admin.php?page=wp-notes-settings&action=migrate')); ?>" class="button button-primary">
|
||||||
<?php _e('Start Migration', 'a-wp-notes'); ?>
|
<?php _e('Start Migration', 'a-wp-notes'); ?>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
Reference in New Issue
Block a user