Fix: Yearly invoice counter reset could race under concurrent Jan 1 requests, causing two invoices to receive the same number. The reset now runs inside the advisory lock alongside the counter increment.
Fix: When no prefix or suffix was configured, the literal text “prefix” or “suffix” appeared verbatim on invoices. These now fall back to an empty string.
Fix: When PDF generation failed, the upload directory itself could be added as an email attachment. The attachment is now skipped unless the document was saved successfully and has a valid file path.
Fix: Admin success and warning notices could be triggered by a crafted URL with no authentication check. Notices are now verified with a nonce before being displayed.
Fix: An unexpected error during auto-generation left an internal reentrancy guard permanently set, silently suppressing all further auto-generation for the rest of that request. The guard is now always reset even if an error occurs.
Fix: Viewing or emailing a PDF was vulnerable to directory traversal via a tampered file path stored in order meta; bulk-action result notices now require a nonce before rendering; PDF generation error messages are sanitised before being stored in admin notices.
Fix: Invoice table no longer crashes on orders with zero-quantity line items; shipping and fee rows now include the SKU column cell when SKU display is enabled; shipping tax is summed as a float rather than an integer; the Subtotal row shows product lines only and no longer double-counts fees and shipping; zero-cost shipping lines are suppressed; empty product SKUs fall back to “-“.
Fix: The HTML preview endpoint always resets its document global after rendering, even if an error occurs mid-template; bulk generation count now reflects only orders where the PDF was actually saved; PDF open/download behaviour is now resolved per document type; payment due date field description clarifies it is calculated from order creation date; logo URL field is no longer read-only.
1.8.0 – 14/06/2026
New: Added a payment due date to invoices – configure the offset in days from General Settings.
New: Added an HTML preview button in the order metabox – check the invoice or packing slip layout without generating a PDF.
Fix: Downloaded PDFs no longer include stray HTML content after the file data, which could corrupt the download on some browsers.
Fix: Creating an invoice or packing slip from a draft or incomplete order no longer causes a fatal error.
Fix: When generating multiple PDFs in bulk or via email attachments, templates no longer bleed into each other from leftover hooks of a previous generation.
Fix: If PDF generation fails partway through, the invoice number is now held in reserve and reused on the next attempt – no more gaps in your invoice sequence from a failed save.
Fix: Accessing invoice details on an order that could not be loaded no longer causes a fatal error.
1.7.0 – 07/06/2026
New: Added an option to show the customer’s note (entered at checkout) on the invoice.
New: Added an option to control tax display in invoice totals – show each tax class as a separate line, or collapse them into a single tax total.
New: Added a Documentation page accessible directly from the Plugins list.
Improvement: Auto-generate status and email attachment settings now use checkboxes instead of a multi-select list – much easier to pick and toggle options.
Fix: When a PDF fails to generate, an admin notice now appears so you always know something went wrong.
1.6.0 – 30/05/2026
New: Live invoice preview panel – see exactly how your invoice looks while you’re adjusting settings, without saving first.
New: Smarter invoice numbering – use simple tokens like {number}, {year}, and {month} to build your own format (e.g. INV-{number}/{year}{month}). Existing formats are upgraded automatically.
Fix: PDFs no longer crash on orders that were created without a date (e.g. via import or migration tools).
Fix: Company logo is now properly sized and right-aligned on both invoice and packing slip templates.
Fix: Long addresses and notes no longer cause unwanted scrollbars inside the invoice preview.
Improvement: The invoice preview panel stays hidden until you need it, keeping the settings page clean.
Compatibility: Tested and confirmed working with WooCommerce 10.8.1.
1.5.1 – 22/05/2026
Compatibility: Tested and confirmed working with WordPress 7.0.
Improved plugin description for clarity.
Dev: Renamed all internal hooks, filters, and constants from wpwing_wcpi_ to wpwing_wcpdf_ for better long-term naming. Existing data is migrated automatically — no action needed.
1.5.0 – 18/05/2026
New: Auto-generate invoice and packing slip on configurable order status change.
New: Attach invoice and packing slip PDF to any WooCommerce transactional email.
New: Bulk generate invoices and packing slips from the WooCommerce orders list.
New: Invoice and packing slip status column on the orders list.
New: Structured company information fields — address, city, ZIP, country, phone, email, and VAT/tax ID.
New: Paper size selection (A4 or Letter).
New: Option to show shipping address on invoice.
New: Option to show product SKU column on invoice.
New: Yearly invoice number reset option.
New: Option to skip invoice generation for free (zero-total) orders.
New: Multiple template selection — Default and Modern templates included.
New: Live invoice and packing slip preview in Template settings.
New: High-Performance Order Storage (HPOS) compatibility.
Security: All document actions (create, view, cancel) are now CSRF-protected with nonces.
Update: My Account invoice button uses WooCommerce native action — no longer breaks flex layout.
Update: Cancel invoice/packing slip now shows a confirmation dialog before proceeding.
Update: Admin notices confirm success or failure after every document action.
Compatibility check with WordPress v6.9 and WooCommerce v10.7.0.
Few minor improvements.
1.4.3 – 22/04/2024
Compatibility check with WordPress v6.5 and WooCommerce v8.8.
Few minor improvements.
1.4.2 – 17/02/2024
Compatibility check with WC’s latest version.
Few minor improvements.
1.4.1 – 20/01/2024
Update: DOM PDF version 2.0.4
Compatibility check with WP’s latest version.
Compatibility check with WC’s latest version.
Few minor improvements.
1.4.0 – 17/06/2023
Update: Remove WPWing prefix from the plugin name
Update: Invoice and Packing slip open in new tab
Few minor improvements.
1.3.4 – 17/04/2023
Fix: Refactor and update the DOMPDF library.
1.3.3 – 12/07/2022
Fix: Refactor and update code.
1.3.2 – 17/06/2022
Fix: Deactive if the dependent WooCommerce plugin is not activated.