🔥WORDPRESS PLUGINS YOU WON'T FIND ANYWHERE ELSE!BloatSlayer🔍SEO Surgeon📦TrackShip🚀LaunchPad🎯CommandPost🔑VeriKeyProofFlow💬SiteChat🤖AltVault📢Announcement Bar🌙Dark Mode🖌️Login Logo🚫Disable Comments
Docs › NoteCraft

NoteCraft Documentation

Rich-text toolbar, inline editing, version history, full-text search, bulk apply, scheduled notes, file attachments, email notifications, CSV export, and customer timeline — the complete guide to NoteCraft.

Overview

NoteCraft enhances the order notes experience in WooCommerce. The core features — rich-text toolbar, inline editing, and edited audit trail — are free on every install. An active license unlocks the full Pro toolkit: note templates, version history, full-text search, bulk apply, scheduled notes, file attachments, email notifications, customer timeline, CSV export, and note visibility toggling.

Everything runs on top of WooCommerce's existing note system. Order notes are stored as WordPress comments — NoteCraft adds no new database tables and makes no breaking changes. All features require the edit_shop_orders capability. System notes added automatically by WooCommerce are never made editable.

Requirements

  • WordPress 6.0 or higher
  • WooCommerce 7.0 or higher
  • PHP 7.4 or higher
  • Compatible with both Classic order storage and HPOS (High-Performance Order Storage)

Installation

  1. Download notecraft.zip from your account dashboard.
  2. In WordPress admin go to Plugins → Add New → Upload Plugin.
  3. Upload the zip, click Install Now, then Activate Plugin.
  4. Open any order — the rich-text toolbar appears immediately above the Add Note textarea.
  5. Go to WooCommerce → Note Templates and enter your license key to unlock Pro features.
The toolbar and edit links work the moment the plugin is activated — no configuration needed. Enter a license key to enable templates and all other Pro features.

Rich-Text Toolbar

A formatting toolbar appears above the Add note textarea on every order edit screen. It converts the plain textarea into a rich contenteditable editor and mirrors the formatted HTML back so WooCommerce's own note-submission handler works unchanged.

Available Formatting

ButtonEffectKeyboard shortcut
BBoldCtrl/Cmd + B
IItalicCtrl/Cmd + I
UUnderlineCtrl/Cmd + U
• —Bulleted list
1.Numbered list
🔗Insert link
Clear all formatting

All output is sanitised through a strict DOM allowlist. Only <strong>, <em>, <u>, <br>, <p>, <ul>, <ol>, <li>, and <a href> (safe protocols only) are permitted. WooCommerce passes content through wp_kses_post() on save as a second layer of protection.

The toolbar editor clears automatically after a note is successfully added.

Editing Existing Notes

An Edit link appears in the meta line of every private order note. Clicking it opens a modal with a full rich-text editor pre-filled with the note's current content.

  1. Click Edit on any note.
  2. Edit the content in the modal editor.
  3. Click Save — or Cancel to discard.
  4. The updated note renders immediately without a page reload.

Edited Marker

After saving, a subtle · edited marker appears next to the note's timestamp. Hovering reveals a tooltip with the edit date, time, and the editor's display name. This is stored as comment meta and is never visible to customers.

System notes added automatically by WooCommerce are never shown an Edit link.

Note History Lite & above

Every time a note is edited, NoteCraft saves the previous version as a revision. Up to 10 revisions are stored per note as comment meta.

Viewing History

A History link appears in the note meta line of any note that has been edited. Clicking it opens a history modal showing all saved revisions, newest first — each with the rendered content, the editor's name, and the timestamp of that edit.

History revisions are stored automatically. No configuration needed — they start accumulating as soon as a note is first edited with an active license.

Note Visibility Toggle Pro only

Every order note shows a badge in its meta line indicating whether it is Internal (private to staff) or a Customer note (visible to the customer). You can toggle the type of an existing note at any time.

  • Click the Toggle type link next to the badge to flip a note between Internal and Customer.
  • The badge updates instantly. No duplicate note is created and no customer email is sent.
The Customer note type controls whether the note appears in the customer's "My Account → Orders" view. Toggling is a metadata change only — it does not re-send any WooCommerce notification email.

Note Templates Lite & above

Build a library of reusable note snippets at WooCommerce → Note Templates. Each template has a title (shown in the dropdown) and a body (inserted into the editor).

Using a Template

  1. Click the Templates ▾ dropdown button in the toolbar.
  2. Select a template from the list.
  3. The template body is inserted with all placeholders already resolved for the current order.
  4. Edit as needed, then add the note normally.

Templates are shared across all users with edit_shop_orders access. There is no limit on how many you can create.

Placeholders Lite & above

Template bodies (and bulk-apply notes) support five built-in placeholders, resolved from current order data:

PlaceholderResolves to
{customer_name}Full billing name (first + last)
{customer_first_name}Billing first name only
{order_number}Order number (e.g. #1234)
{order_total}Formatted order total with currency
{order_status}Current order status label
In templates, placeholders are resolved client-side when you insert the template — no extra requests. In bulk apply and scheduled notes, they are resolved server-side at the time the note is posted.

Go to WooCommerce → Note Search to search across every order note in your store.

Search Options

  • Keyword — searches note content. Leave blank to return all notes matching the other filters.
  • Note type — All, Internal only, or Customer only.
  • Date range — From / To date pickers to narrow results by when the note was written.

Results appear as a table showing order number (linked), customer name, note excerpt, type badge, and date. Up to 100 results are returned per search.

Bulk Template Apply Plus & Pro

Go to WooCommerce → Bulk Notes to apply a note template to multiple orders at once.

  1. Choose a template from the dropdown.
  2. Choose the note type: Internal or Customer note (customer note sends the WooCommerce email).
  3. Check the orders you want to apply it to. The table shows your 50 most recent orders.
  4. Click Apply to Selected Orders.

Placeholders are resolved individually for each order at the time of apply. A success message shows how many orders were updated.

Bulk apply adds a new note to each selected order. It does not edit or replace existing notes.

Scheduled Notes Plus & Pro

Write a note now and have it post automatically at a future date and time.

Creating a Scheduled Note

  1. On any order, click ⏰ Schedule for later below the note editor.
  2. A date and time picker appears. Choose a future date/time.
  3. Write your note in the editor and click Schedule Note.

NoteCraft saves the note as a pending WordPress comment and registers a wp_schedule_single_event to fire at the exact scheduled time. When the event fires, the note is posted to the order and the pending comment is deleted.

Viewing & Cancelling

A Scheduled Notes panel appears below the order notes list showing all pending notes for that order. Each entry shows the scheduled date, an excerpt, and a Cancel button that removes the pending note and unschedules the cron event.

Scheduled notes support all five placeholders — they are resolved server-side at the time the note is posted, so {order_status} reflects the status at firing time, not when the note was written.

Email Notifications Plus & Pro

Receive an email alert whenever a new note is added to any order. Configure notifications at WooCommerce → Note Templates → Note Notifications.

Settings

  • Enable notifications — master on/off toggle.
  • Email addresses — comma-separated list of addresses to notify. Leave blank to disable without turning off the toggle.
  • Note types — choose All notes, Internal notes only, or Customer notes only.

Notifications are sent via wp_mail() using your site's configured mail settings. The email includes the note content (plain text), the note type, the customer name, and a direct link to the order.

Notifications fire on the woocommerce_new_order_note action, which covers notes added via NoteCraft, WooCommerce's own interface, and any third-party integration that uses the standard WooCommerce API.

Customer Note Timeline Pro only

When you open a customer's user profile in WordPress admin (Users → All Users → Edit), NoteCraft appends an Order Note Timeline section showing every order note across all of that customer's orders, sorted newest first.

Each row shows the order number (linked), a type badge (Internal / Customer), the note content rendered as HTML, and the date. Up to 200 notes are shown.

The timeline is a read-only view — use it for quick customer history lookups without opening individual orders.

File Attachments Pro only

Attach files to any order note directly from the WordPress media library. Images display as inline thumbnails; PDFs and other documents appear as labelled file links. Attachments are stored as WordPress media and linked to the note via comment meta — the note list shows a read-only strip, while the edit modal lets you add and remove files.

Adding Attachments

Open the Edit modal on any note. An Attachments panel appears below the editor with two buttons:

  • Upload File — opens a file picker. The selected file is uploaded to the WordPress media library and immediately attached to the note.
  • Media Library — opens the standard WordPress media picker. Select one or more existing files to attach; images already in your library are not re-uploaded.
You need the upload_files capability (Editor role or higher) to upload new files directly. Any user with edit_shop_orders can attach existing media-library files via the Media Library button.

Removing Attachments

Inside the edit modal, each attachment shows a small × button. Clicking it detaches the file from the note. The media file itself is not deleted from the WordPress media library — it stays available for other uses.

Viewing Attachments

Attached files appear as a strip beneath the note content in the order notes list. Image files render as 60 × 60 px thumbnails (clickable to full size); all other file types render as a labelled link to the file URL.

File Attachments are a Pro feature. The Attachments panel is not shown in the edit modal unless an active license is detected.

CSV Export Pro only

Export order notes as a UTF-8 CSV file — useful for audits, staff handoffs, and CRM imports.

Export a Single Order

An Export Notes meta box appears in the sidebar of every order edit screen. Click ⬇ Download Notes CSV to download all notes for that order.

Export a Customer's Notes

On any customer's user profile edit page, an Export Order Notes section provides a download link for all notes across all of that customer's orders.

CSV Format

ColumnContents
Note IDWordPress comment ID
OrderOrder number (e.g. #1234)
Customer Note1 if customer-facing, 0 if internal
AuthorDisplay name of who added the note
DateDate and time in Y-m-d H:i:s format
ContentPlain-text note content (HTML stripped)

Custom Note Fields

Some WooCommerce themes and plugins add their own note-like textareas to the order screen. NoteCraft can attach the rich-text toolbar to those fields too.

Auto-Detect

Enabled by default. NoteCraft scans the page for textareas inside any meta box whose title contains the word "note" (case-insensitive) and attaches the toolbar automatically.

Only enable the toolbar on fields that store and display HTML. If a field shows content as plain text, rich formatting will appear as literal tags.

Manual Selectors

Go to WooCommerce → Note Templates → Formatting Toolbar and paste CSS selectors (one per line) into the Extra note fields box:

#my_custom_note_field
.my-theme-customer-note textarea

Settings

All NoteCraft settings live at WooCommerce → Note Templates. The page has three sections:

  • Formatting Toolbar — toggle auto-detect and add manual CSS selectors for extra note fields.
  • Note Notifications Pro — configure email alerts for new notes.
  • Note Templates Pro — add, edit, and delete reusable snippets.

The license key entry is also at the bottom of this page.

Troubleshooting

The toolbar doesn't appear

Check that WooCommerce is active and you're on an order edit screen (not the orders list). The toolbar requires the edit_shop_orders capability — confirm the logged-in user has Shop Manager or Administrator role.

Pro features don't appear

Go to WooCommerce → Note Templates and verify your license key is entered and shows Active. Pro features (Note Search, Bulk Notes, History, etc.) only initialise after license validation. If you recently activated a key, reload the page.

Rich formatting shows as plain text

The note field you're targeting likely stores content as plain text. Use NoteCraft's toolbar only on fields that display their content as HTML.

The Edit link doesn't appear on some notes

System notes added automatically by WooCommerce are intentionally excluded from editing.

Scheduled note didn't fire

WP Cron fires on the next page load after the scheduled time. If your site has very low traffic, the cron event may fire late. Ensure DISABLE_WP_CRON is not set to true in wp-config.php, or use a server-level cron to trigger wp-cron.php on a regular interval.

Templates dropdown is empty

Go to WooCommerce → Note Templates and create at least one template. Ensure you have an active license — templates are a Pro feature.

The Attachments panel doesn't appear in the edit modal

File Attachments require an active Pro license. Verify your license key is entered and shows Active at WooCommerce → Note Templates. Also confirm you are on a standard order note (system notes cannot be edited or have attachments).

The Media Library button opens a picker but nothing attaches

Check your browser console for AJAX errors. Ensure the user has at least the edit_shop_orders capability. If another plugin is outputting unexpected content before JSON, enable WordPress debug logging (WP_DEBUG_LOG) and inspect wp-content/debug.log for PHP notices or errors.

FAQ

Does editing a note change its timestamp?

No. The original note timestamp is preserved. The · edited marker records a separate edit timestamp in comment meta.

How many revisions does history keep?

Up to 10 revisions per note. Once the limit is reached, the oldest revision is dropped when a new one is added.

Can customers see edited notes or scheduled notes?

Private order notes are never shown to customers. Scheduled notes post as standard order notes when they fire — their visibility (Internal vs Customer) is whatever you set when scheduling.

Does visibility toggle send a customer email?

No. Toggling a note between Internal and Customer only changes the is_customer_note meta value. No WooCommerce notification email is sent.

Is the plugin compatible with WooCommerce HPOS?

Yes. NoteCraft declares HPOS compatibility and handles both Classic and High-Performance Order Storage modes correctly.

Which features are included in each plan?

Lite ($29, 1 site): toolbar, editing, templates, note history, and search. Plus ($49, 3 sites): everything in Lite plus bulk apply, scheduled notes, and email notifications. Pro ($79, unlimited sites): everything in Plus plus file attachments, CSV export, customer timeline, and visibility toggle.

Does removing an attachment delete the file?

No. Removing an attachment from a note only detaches the link between the note and the media file. The file remains in your WordPress media library and can still be used elsewhere.

Can I attach files when adding a new note (not editing)?

Not at this time. Attachments are managed through the Edit modal on existing notes. Add the note first, then open Edit to attach any files.

Support

Having trouble? Submit a support request and include your WordPress version, WooCommerce version, NoteCraft version, and a description of the issue.

BT
BT Assistant Ask me anything!