SoftGlaze PDF Invoices for WooCommerce - full changelog

== Changelog ==

= 2.28.3 =
* Compliance field packs (seller VAT / GST / Tax-ID display and the EU reverse-charge note) now live under Settings, in the Documents tab, so they work on manual invoices and in standalone mode - not only when WooCommerce is active.
* Fresh installs no longer attach a packing slip to the New Order email by default, so an invoice-first store gets one document per order instead of two. Existing stores keep their current setting.

= 2.28.2 =
Housekeeping — no functional changes.
* Pointed the in-plugin "Documentation" link to the plugin's own manual page.

= 2.28.1 =
Housekeeping — no functional changes.
* Shortened the changelog shown on WordPress.org to the most recent releases (the complete history now lives in changelog.txt), keeping it within the directory's display limit.

= 2.28.0 =
Release "CANVAS" — a freeform drag-and-drop / resize page builder.
* **Design freeform documents** — the template builder now has a **Canvas** mode alongside the classic **Flow** (stacked) mode. Drop blocks anywhere on the page, drag to move them, resize with corner and edge handles, nudge with the arrow keys, and layer them with bring-front / send-back. A logo top-right, an address bottom-left, a big status watermark across the middle, an items table sized to a region — however you want it.
* **What you lay out is what prints** — blocks are positioned by percentage of the page, the exact same coordinates the PDF engine uses, and the live preview shows the real document as you design. Nothing runs off the page.
* **Opt-in and safe** — every existing template stays in Flow mode and renders exactly as before; Canvas is a per-template choice you switch on. Built with a tiny in-house drag/resize (no third-party libraries) and, like the rest of the plugin, makes zero external requests.

= 2.27.0 =
Release "POLISH" (part 6) — multi-language & right-to-left documents.
* **Print documents in your customer's language** — pick a default document language under Settings → Documents → Language & direction, or set it per document (on the invoice editor and the WooCommerce order screen). The document labels — Invoice, Bill To, Subtotal, Tax, Total, and the rest — translate automatically. French, German, Spanish, Dutch, Italian, Portuguese and Hebrew are built in.
* **Right-to-left support** — Hebrew (and other RTL languages) render the whole document right-to-left, using the bundled font, so no setup or extra fonts are needed.
* **Off by default, admin stays English** — with no language chosen, documents render exactly as before. This affects the customer-facing PDF/print only; your admin screens are unchanged. Makes zero external requests, like everything else. (Arabic isn't offered yet — the bundled PDF engine can't join Arabic letters correctly.)

= 2.26.0 =
Release "POLISH" (part 5) — WhatsApp Cloud API (server-send).
* **Send documents on WhatsApp from your server** — an optional upgrade to the click-to-chat button. Connect your OWN Meta WhatsApp Business Cloud API and a green "Send on WhatsApp now" action appears on documents (Documents page and the order screen). One click delivers the document's secure share link straight to the customer — no need to open WhatsApp yourself.
* **Smart delivery** — inside WhatsApp's 24-hour customer-service window it sends your editable session message; outside it, it automatically falls back to your pre-approved message template. Every send is a manual click — nothing is ever sent automatically.
* **Opt-in, private, and off by default** — the free click-to-chat button still works with zero setup. Server-send stays completely inert until you enable it AND save your own credentials under Settings → Automations → WhatsApp Cloud API. Your access token is stored **encrypted** and never shown again; the only network request goes to your own Meta account (`graph.facebook.com`), and only when you click send. Existing sites are unaffected.

= 2.25.0 =
Release "POLISH" (part 4) — compliance field packs.
* **Seller tax IDs on documents** — add your VAT, GST/HST and a generic Tax ID in Settings → Company details, then switch them on per document type under Settings → Compliance field packs. They print in your company block alongside EIN / D-U-N-S. Off by default, so existing documents are unchanged.
* **EU reverse-charge note** — print a reverse-charge statement (editable; defaults to the Art. 196 wording) on documents. In automatic mode it appears only where reverse charge actually applies — intra-EU B2B: your EU VAT number plus a VAT-registered customer in another EU country — or you can set it to always print on the enabled document types.
* **Note only, never touches your totals** — the plugin states the compliance position; you stay in control of the VAT rate. Everything is opt-in per document type and makes zero external requests.

= 2.24.0 =
Release "POLISH" (part 3) — WhatsApp delivery (click-to-chat).
* **Send a document's link on WhatsApp** — each generated document gets a **WhatsApp** button, both on the WooCommerce order screen and on the Documents manager. Click it and WhatsApp opens (app or web) with the customer's number and a message containing the document's secure share link, ready to send.
* **Zero setup, zero external requests** — it uses WhatsApp's own `wa.me` click-to-chat, so there are no API keys, no configuration, and the plugin itself never contacts WhatsApp; your own WhatsApp does the sending. Nothing changes for existing sites until you click the button.
* **Smart phone handling** — the recipient's number is taken from the order's billing phone (or the customer record) and turned into international format using the billing/store country, so national-format numbers work; if a number can't be resolved, WhatsApp simply lets you pick the contact.

= 2.23.0 =
Release "POLISH" (part 2) — client acceptance ("e-sign").
* **"Accept" button on a document's share link** — turn it on per document type (typically a proforma or quote) under Settings → Client acceptance. Off by default, so nothing changes for existing sites until you opt a type in.
* **Records who accepted** — the client types their name, ticks an agreement box and accepts; their name, the date and time, and their IP address are recorded. It's a simple, honest online acceptance — clearly labelled as **not** a legally binding electronic signature.
* **Accepted stamp on the PDF** — once accepted, every invoice design (all 10 stock layouts and your custom templates) shows an "Accepted online by …" stamp. Two new template tags, `{accepted_by}` and `{accepted_on}`, are available in the builder.
* **Visible in the admin** — a WooCommerce order shows who accepted each document on the order screen and logs a private order note; the share viewer shows the recorded acceptance in place of the button.
* Still makes zero external requests: the whole flow is on your own site.

= 2.22.0 =
Release "POLISH" (part 1) — partial payments & deposits.
* **Record partial payments / deposits** against any document — each with a date, amount, method and note. On a manual invoice, a new Payments panel on the New / Edit invoice screen; on a WooCommerce order, a Payments box on the order screen (classic and HPOS), saved with the order.
* **Balance due on the PDF** — once a payment is recorded, every invoice design (all 10 stock layouts and your custom templates) prints an Amount paid and Balance due pair beneath the total. Two new template tags, {amount_paid} and {balance_due}, are available in the builder.
* **Dashboard shows what's really outstanding** — the "Unpaid outstanding" figure now counts the remaining balance (total minus payments received), not the gross total, so a half-paid invoice shows only what's still owed.
* **Respects the WooCommerce order status** — balance due shows only on orders still awaiting payment (Pending / On hold); Processing and Completed count as paid, and cancelled / failed / refunded orders show no balance.
* No behaviour changes for existing sites: a document with no recorded payment prints and counts exactly as before, and the feature still makes zero external requests.

= 2.21.1 =
Listing & documentation update — no functional code changes.
* Expanded the plugin description into a full, sectioned feature overview.
* Grew the screenshot gallery from 7 to 30 — the dashboard, Documents manager, WooCommerce order screen, the visual template builder, System Check, Italian FatturaPA, cloud backup, the public invoice-builder pages (builder, My Account tab, standalone dashboard, sign-in) and every settings tab and setup-wizard step.
* No change to code behaviour; existing sites are unaffected, and the plugin still makes zero external requests by default.

= 2.21.0 =
Release "COMPLY" (part 3) — Italian electronic invoicing (FatturaPA XML).
* **FatturaPA export** — for Italian sellers, generate the official FatturaPA 1.2 XML (FPR12) for any invoice or credit note: a per-document "FatturaPA XML" button in the Documents table, plus a bulk "Export FatturaPA" that ZIPs every document matching your current filters.
* **Validated against the official schema** — every file is checked against the Agenzia delle Entrate XSD (bundled locally) *before* it is offered for download, so you never get a malformed file. A new **System Check → "FatturaPA XML validates"** row confirms the pipeline at a glance.
* **New "Italy" settings tab** — enter your Partita IVA, Codice Fiscale, Regime Fiscale, PEC, registered office (Sede) and transmitter details, plus a Natura code for zero-rated lines. Off by default; nothing Italian appears until you enable it.
* **Honest scope** — this produces a compliant XML file for you to download. It does **not** transmit to the Sistema di Interscambio (SDI) — send it via your intermediary or the AdE portal. Where a document cannot be mapped cleanly (a customer with no Partita IVA / Codice Fiscale, a 0% line with no Natura mapping, an unsupported document type), the export is refused with a clear message rather than guessing. For Italian stores — verify the output with your commercialista before first transmission.
* Still zero external requests: the schema is bundled and validated locally; the feature makes no network calls.

= 2.20.0 =
Release "INSIGHT" (part 3) — order fulfillment stages + document exports.
* **Fulfillment stages** — track where each order is with a simple, safe flow: *In packaging → Dispatched → In transit → Delivered*. Set the stage from a dropdown on the order screen (in the Shipment info box) or inline in the Documents table. It's a parallel status that never touches WooCommerce's own order statuses, so it stays out of the way of every other plugin and automation.
* **Live stage counters** — the dashboard shows how many orders sit in each stage right now ("In packaging: 5 · Dispatched: 3 · In transit: 2").
* **Optional stage emails** — turn on a customer email for any stage (Settings → Automations → "Fulfillment stage emails"). Each is off by default and uses the same tag system as reminders, including the new `{stage}` tag and the shipment/tracking tags — so the "Dispatched" email can carry the carrier and tracking link automatically.
* **On the paperwork** — the current stage is printed on packing slips, and every stage change is logged as a private note on the order for a clean history.
* **Document exports** — export the Documents list as **CSV or XML** for your accountant or bookkeeping tool; the export respects whatever filters (type, status, source, stage, date range, search) you have applied. Each document can also be exported as a single UBL-lite XML file (line items included). These are generic accounting exports and make no e-invoicing-compliance claim.
* **Expert option** — advanced users can switch stages to *real* custom WooCommerce order statuses instead of the safe parallel meta (Settings → Advanced). Off by default, with the trade-offs spelled out on the screen.
* No behaviour changes for existing sites: every new toggle is off by default, and the whole feature still makes zero external requests.

= 2.19.0 =
Release "INSIGHT" (part 2) — storefront analytics + guest builder.
* **Storefront visitor analytics (opt-in)** — a privacy-first, local-only view of product-page and builder-page traffic, top-viewed products, and a daily trend, right on the dashboard. Aggregate day counts only — no personal data, no IP, no cookies, and zero external requests. Off by default.
* **Guest invoice builder** — optionally let signed-out visitors use the public builder.

= 2.18.0 =
Release "INSIGHT" (part 1) — the Profit / Loss dashboard.
* **Profit / Loss at a glance** — a redesigned dashboard with Revenue, Item costs, **Gross profit** and **Margin %**, Tax collected, Refunds and Unpaid outstanding, a month/quarter/year/custom period switcher, inline charts, a monthly breakdown and top products — all exportable to CSV. Honestly labelled "Gross profit (revenue − item costs)": this is sales & margin at a glance, not double-entry accounting.
* **Product cost prices** — a "Cost price" field on the WooCommerce product screen feeds the margin maths (with a nudge for products still missing a cost).

= 2.17.0 =
Release "FRONTEND" (part 2) — a polished, mobile-first experience for the public builder.
* **Mobile-first everywhere** — the builder, the invoices list, and the login/register screens are fully responsive; on a phone the invoices table folds into tidy labelled cards with full-width, easy-to-tap actions.
* **A friendlier "My invoices"** — search with clear, distinct empty states (nothing yet vs. no matches), a "+ New invoice" button, colour-coded status badges, a one-tap **Copy** button for share links, and confirmation before a delete.
* **Live preview, refined** — the builder's preview shows an "Updating…" status while it renders and a friendly placeholder on first paint, and quietly recovers from the occasional hiccup.
* **Toasts** — short, unobtrusive on-screen confirmations (for example "Share link copied") that never get in the way, layered on top of the existing after-submit messages.
* **Self-contained accounts** — a single, clean card with a Log in / Create account toggle where new users pick their own password and are signed straight in, plus an on-site "Forgot your password?" flow that emails a reset link and lets people choose a new password without ever seeing a WordPress login screen.
* **Your details, remembered** — the builder now also saves your website, bank name and IBAN/account number alongside your company details and logo, and fills them all in automatically the next time you create a document.
* **One dashboard for your customers** — a new `[sgci_dashboard]` shortcode puts a user's invoices and a "Create invoice" builder together on one page as simple tabs, with a clean sign-out. Any logged-in user can create documents and sees only their own.
* **Merges into WooCommerce → My Account** — when WooCommerce is active, an "Invoices" tab appears in My Account with the same view-and-create dashboard. A new setting (SoftGlaze Invoices → Settings → Frontend → "User dashboard") lets you choose where it lives: both the standalone page and the My Account tab (default), the My Account tab only, or the standalone page only. Without WooCommerce, the standalone page is always used.
* **Cross-linked pages** — point the builder at your invoices page and vice-versa with simple shortcode attributes (`[sgci_invoice_builder my_invoices="/my-invoices/"]` and `[sgci_my_invoices builder="/create-invoice/"]`), so the "New invoice" button and the empty-state call-to-action just work.
* The readme now walks you through assembling a complete standalone invoice-builder website from the shortcodes. No behaviour changes for existing sites — the frontend stays off until you switch it on, and the whole feature still makes zero external requests.

= 2.16.0 =
Release "FRONTEND" — a public invoice-builder site your visitors can use.
* **Four new shortcodes** — `[sgci_invoice_builder]` (a full builder: your company details saved per user, client, line items, currency, design picker, a live preview, and Generate → PDF + share link), `[sgci_my_invoices]` (each user's own documents: search, download, duplicate, share, delete), and `[sgci_register]` / `[sgci_login]` (thin wrappers over WordPress accounts). Put one shortcode per page and you have a complete freeinvoicebuilder.com-style site — any membership plugin works alongside it.
* **Private by design** — every document a visitor creates is owned by that visitor. One user can never see, download, or touch another user's invoices, and a direct link to someone else's document returns "not found".
* **A new "Frontend" settings tab** — one master on/off switch (a kill-switch that instantly hides every frontend page), which of your saved templates the builder may offer (un-ticked templates stay private), a documents-per-user-per-day limit (default 20), a preview-render rate limit, the default currency, and default terms text.
* **Safe by default on update** — the builder is **off** on existing sites after updating (so no public surface appears unbidden) and on for brand-new installs. Every form is nonce- and honeypot-protected and rate-limited; uploaded logos go through WordPress media handling (images only, size-capped); and the whole feature makes zero external requests, like the rest of the plugin.

= 2.15.1 =
* **Custom (block) builder restored — now in the Templates tab.** Choose "Custom (block builder)" as a document type's base design and click "Open builder" to drag blocks onto the page or write your own HTML, with the same live preview as before. (This is the builder that used to live under Settings; it now sits in the consolidated Templates screen.)

= 2.15.0 =
One place to design documents — the two overlapping design screens are now one.
* **Document design lives only in the Templates tab now.** The per-document-type base layout + paper picker moved into the Templates tab's assignment table, so you choose a base design and (optionally) assign a full custom template for each document type in a single screen — with the live preview and exact-PDF that were already there.
* **Settings decluttered.** The old "Document design" section under Settings → Documents is gone (it duplicated the Templates tab); Settings now points you to Templates. The per-type share-link QR toggle moved to its own "Share QR codes" section (works with or without WooCommerce).
* Update-safe: your existing per-type designs are untouched and keep rendering exactly as before — only where you edit them moved.

= 2.14.1 =
* **CSV product export** — export the selected products as a spreadsheet-ready CSV (UTF-8), from the catalog builder and the Products table's bulk actions. XML export stays available alongside it.

= 2.14.0 =
Refinements to the CORE tools — a Products table, smarter catalog selection, XML export.
* **Products screen** — a new **Products** tab with your synced WooCommerce catalogue in a searchable, sortable, paginated table (thumbnail, name, SKU, price, cost, stock), bulk selection, a one-click **Sync products**, and per-row **View** through to the product. Select rows to export them as a catalog PDF or XML.
* **Catalog: pick exactly what you want** — the catalog builder now lists products for the chosen category (or a search) as a checklist with **Select all**, and generates **only the products you tick**. Leaving everything unticked still includes the whole category.
* **More catalog layouts** — Table, List (one per row), Cards, and Image grid.
* **XML export** — export the selected products as a well-formed XML feed (from the catalog builder or the Products table's bulk action).
* **UI fixes** — import/sync progress bars now clear themselves the moment the job finishes (no refresh needed), and checkbox rows sit on one line.

= 2.13.0 =
Release "CORE" (complete) — WooCommerce backfill, product catalogs, and a unified dashboard.
* **Import from WooCommerce** — a new **Tools** screen backfills your existing orders into the unified Documents list: pick order statuses and an optional date range, and it mirrors each order's documents and de-duplicates its customer, batched with a progress bar and resumable. An optional "also generate missing invoices" switch (default off) creates any invoices that were never generated — with a clear warning that historical documents get their number from the current counter (run the numbering-continuity import first if you're migrating from another plugin).
* **Product catalog PDFs** — generate a branded catalog: pick products by category or by name, choose which fields print (image, SKU, price, sale price, stock, short description, attributes, cost, and custom meta keys), a table or cards layout, and a template skin. Images are embedded locally (no external requests), capped at 200 products per PDF.
* **Cost price field** — a private "Cost price (SoftGlaze)" field on the product edit screen, used for catalog PDFs and upcoming profit reporting. Never shown to customers.
* **Unified dashboard** — the dashboard now counts every document from the all-in-one index, so manually created invoices and WooCommerce order documents are reflected together.
* Update-safe: new features are additive, everything defaults to current behaviour, and standalone (no-WooCommerce) sites simply don't see the WooCommerce-only Tools.

= 2.12.0 =
Release "CORE" (continued) — create invoices by hand, with or without WooCommerce.
* **Manual invoices** — a rebuilt **New invoice** screen: pick a saved client (or add one inline — clients are de-duplicated by email), add as many line items as you need (name, description, decimal quantity, unit price, cost price and tax rate), choose the currency, date, template and status (draft, sent, paid, void), and save. A race-safe invoice number is assigned automatically, the PDF is generated into protected storage, and a share link is ready — all of it works even when WooCommerce is switched off.
* **One unified Documents list** — the Documents screen now lists documents from **both** sources — invoices you create by hand and documents generated from WooCommerce orders — with a **Source** column and source/type filters. WooCommerce documents stay read-only here (edit and delete are hidden — manage them from the order); manual invoices are fully editable.
* **Numbering** — manual invoices share your store-wide number sequence by default, so numbering stays continuous across orders and manual invoices. A new setting can give manual invoices their own separate sequence instead.
* Your earlier hand-made invoices are carried into the unified list automatically (in the background, the first time an admin opens the plugin after updating), keeping their numbers and any active share links. Update-safe: existing documents and settings are unchanged, and the separate-manual-numbering option defaults off.

= 2.11.0 =
Release "CORE" (foundation) — standalone mode and the groundwork for manual invoices.
* **Works without WooCommerce** — the plugin no longer sits idle when WooCommerce is inactive. Core, the template builder, share links and the dashboard all load; a friendly "Connect WooCommerce to automate" panel replaces the old plain notice. Everything is unchanged on stores that do have WooCommerce.
* **All-in-one document index** — four new tables (documents, clients, items, product mirror) give every document — from an order or entered by hand — one home. Your existing order documents are migrated into the index automatically, in the background, the first time an admin opens the dashboard after updating.
* **One rendering engine for both worlds** — orders and manual invoices now flow through the same document data contract and the same PDF engine, so both look identical.
* Under the hood: documents built from WooCommerce orders stay read-only in our screens (WooCommerce remains their source of truth) and are kept in sync automatically as orders change, are refunded, or products are edited. Update-safe: nothing about your existing documents changes.

= 2.10.0 =
Release "BUILDER" — a full visual template builder for your documents.
* **Template builder** — a new **Templates** screen where you design reusable, named document templates. Drag sections into the order you want (header, bill-to, meta, items, totals, payment, terms, signature, plus text, dividers, spacers and a sanitised custom-HTML block), toggle what each section shows, and choose which columns the items table prints.
* **Design tokens** — override colours, pick a bundled dompdf-safe font, set base size, heading case, corner radius, paper size, header and totals style, logo position, and upload your company logo straight from the WordPress media library. Anything you leave alone inherits from the stock preset the template is based on.
* **Live preview + exact PDF** — a side-by-side preview renders through the real engine as you edit (so a saved, assigned template prints exactly like the preview), and a "Exact PDF" button opens the true dompdf output in a new tab.
* **Dynamic tags** — click any `{tag}` to insert it into the field you're editing.
* **Start from a stock design** — "Duplicate & edit" any of the 10 built-in presets, shipped as editable JSON mirrors. Duplicate, export and import templates as JSON to move them between sites.
* **Assign per document type** — each document type uses either its preset design (from Settings) or a custom template you built; the assigned template wins wherever that document is generated.
* Update-safe: no document changes until you build a template and assign it — existing installs render exactly as before. Custom HTML is stripped of scripts, event handlers and remote references both on save and on every preview.

= 2.9.1 =
Release "VAULT" (part 2) — shipment tracking in your documents.
* **Shipment info** — a new box on every order lets you record the carrier, tracking code, tracking link, shipping date and expected-delivery date.
* **Delivery Notes** — turn the section on per document type under **Settings → Documents → Delivery notes on documents**, and those details print on the invoice and/or packing slip. Off by default, so existing documents are unchanged until you opt in.
* **Auto-import** — if you already run **Advanced Shipment Tracking** or **WooCommerce Shipment Tracking**, their tracking is picked up automatically and fills any field you leave blank. No premium add-on is required — the built-in fields work on their own. Developers can add sources via the `sgci_tracking_sources` filter.
* On a shared document link the tracking code is a clickable link to the carrier; on the PDF it prints as plain text with the URL beside it.
* New template tags — `{carrier}`, `{tracking_code}`, `{tracking_url}`, `{shipping_date}`, `{delivery_date}` — usable in the custom document builder and in send templates.
* Still zero external requests by default: tracking is read from your own store and printed locally.

= 2.9.0 =
Release "VAULT" (part 1) — optional cloud backup to your own Dropbox / Google Drive.
* **Cloud backup** — connect Dropbox and/or Google Drive under **Settings → Backup** and every generated document is copied to your own account, mirroring the local folder layout (`/SoftGlaze Invoices/{Year}/{Month}/`). You use your own app credentials via a standard OAuth flow — no SoftGlaze server is ever in the middle.
* Uploads run on a background schedule with automatic retry/backoff; failures are recorded in the System Check log and a new "Backup destination reachable" row turns red so you notice. A "Backup everything now" action backfills existing documents with live progress.
* Per-destination enable, a connection test, and a disconnect that revokes and deletes the stored tokens. Choose which document types are backed up.
* Uploads go through plain WordPress HTTP calls against the documented Dropbox and Google Drive APIs — no bundled SDKs. Refresh tokens are stored encrypted at rest (libsodium or OpenSSL, keyed from your site's secret keys).
* Honesty first: the default install still makes **zero** external requests. Nothing is uploaded until you connect a destination, and no backup task is even scheduled until then. This is disclosed here and in a notice on the Backup settings screen.
* Update-safe: both destinations are OFF by default — an existing store is completely unchanged until you opt in.

= 2.8.0 =
Release "COMPLY" (part 1) — VAT / fiscal-code checkout fields and the invoice-or-receipt choice.
* Collect a **VAT number** and/or a **fiscal code / SSN** at checkout — on both the classic and the block-based checkout. Each field is independently optional or required, and can be scoped to all countries, the EU only, or a country list you choose.
* Server-side validation on submit: a per-country VAT format table (with the Italian Partita IVA checksum), the Italian **Codice Fiscale** checksum, and a generic fallback elsewhere, mirrored by live hints on the classic checkout. An optional **VIES** online check (EU service) can be switched on — it is off by default and is the only checkout feature that makes an external request.
* **Invoice or receipt at checkout** — an optional "Receipt (default) / Invoice" choice. Receipt orders generate a Receipt document (its own template and optional number sequence) and are excluded from invoice auto-generation; choosing Invoice reveals and can require the tax-id fields. You can flip an order's choice on its order screen and regenerate.
* Tax ids print in a **Tax IDs** line on documents (toggle per document type), and are editable on the order screen. Customers can save their VAT / fiscal code to their account for next-time prefill.
* Update-safe: every new field and the receipt choice are OFF by default — an existing store's checkout, documents and emails are unchanged until you opt in.

= 2.7.0 =
Release "SHARE" — public share links, and everything about sending documents.
* Public share links for any document — a tokenised, no-login viewer page with a single-PDF download, per-document expiry (7 / 30 / 90 days or never), regenerate and revoke. Optionally print the link as a QR code in the corner of the PDF, per document type.
* Send documents by email from the order screen and the Documents manager: a compose window with an editable recipient (pre-filled with the billing email), subject and message, dynamic `{tags}` that fill in on send, and checkboxes to choose which documents to attach. Every send is logged with its time and recipient and shown as a short history.
* Unpaid payment reminders — automatically email customers whose invoice is past its due date, at the day-offsets you choose (e.g. 3, 7, 14 days after due), with your own subject and message template. One reminder per offset, at most one per order per day, and it stops the moment an order is paid.
* Accountant monthly export — on a chosen day each month, email your accountant a ZIP of last month's invoice PDFs plus a CSV index (number, date, client, net, tax, total, status). A "Send now" button runs it on demand for testing.
* A global kill-switch pauses every automated email at once; manual "Send" actions are never affected.
* Update-safe: reminders and the accountant export are OFF by default, and no existing document or email changes until you opt in.

= 2.6.0 =
Release "SKINS" — document templates, WooCommerce menu integration, and switch-over tools.
* 10 document templates per type (Classic, Minimal, Bold Navy, Elegant, Compact, Modern, Business, Professional, Letterhead, Receipt) with per-type selection, an inline live preview, and colour / logo-position / font overrides.
* Custom template builder — arrange blocks visually or write your own HTML, per document type.
* "Invoices" entry under the WooCommerce menu with a one-time "New" badge (optionally a live count of unpaid documents instead).
* Switching from another invoice plugin? Detect existing YITH / WebToffee (and other) invoice numbers, continue your sequence from the highest, and optionally copy the old numbers onto historical orders. Extend the detected keys with the `sgci_import_number_meta_keys` filter.
* Numbering source choice: sequential counter, WooCommerce order number, or the raw order ID.
* Per-document-type invoice date source: order date, order completed date, or generation date.
* Optional separate, race-safe number sequences for credit notes and proforma invoices (each with its own start / prefix / suffix / padding / yearly reset).
* Credit notes: optional "show amounts as positive" display toggle (stored totals stay negative).
* Packing slips now label the customer block "Ship To" and omit the payment-terms block.
* Configurable storage folder name — renaming affects new documents only; existing downloads keep working.
* Update-safe: every new option defaults to your current behaviour, so existing installs render and number exactly as before until you opt in.

= 2.5.0 =
* wp.org hardening: PDF engine is now 100% local (no external requests at render time); logo and contact icons embed from local/bundled assets.
* Added an optional signature image setting and a "Remove data on uninstall" setting (default off).
* Added `uninstall.php` (options, batched order-meta cleanup; records/PDFs removed only on opt-in).
* Full input/output security sweep, i18n pass, and a leaner bundled vendor tree.
