RakeshDhiman Invoice Manager for WooCommerce

Description

RakeshDhiman Invoice Manager for WooCommerce generates clean, print-ready invoice documents for every WooCommerce order. Store owners can fully customise company details, invoice numbering, branding, Tax ID / GSTIN, HSN / SAC / SKU columns, bank details, notes, terms, and signatures directly from the WooCommerce admin.

The plugin works standalone out of the box. No account required, no nag screens, and no crippled trial — every free feature is fully functional.

Designed to work for WooCommerce stores in any country. The Tax ID field label (GSTIN, VAT Number, ABN, EIN, CRN) and product code column label (HSN, SKU, HS Code, Tariff Code) are fully configurable. Amount-in-words adapts automatically to Indian numbering (lakhs/crores) for INR, BDT, NPR, PKR, and LKR, and uses international numbering (millions/billions) for all other currencies.

Free Features

Invoice generation

  • Automatic invoice numbers with configurable prefix, start number, and zero-padding
  • Atomic invoice number assignment — prevents duplicate invoice numbers under concurrent orders
  • Invoice dates assigned automatically on order creation
  • Invoice view and print from the WooCommerce admin order screen
  • Invoice view and print from the customer My Account orders page
  • Guest invoice access via WooCommerce order key (no login required)
  • Invoice PDF download powered by Dompdf

Branding and company details

  • Company name, address, phone, email, and configurable Tax ID / VAT Number
  • Configurable Tax ID label — set it to GSTIN, VAT Number, ABN, EIN, CRN, or any custom text
  • Logo upload via WordPress media library (stored as attachment ID — survives domain changes)
  • Signature image and signature label
  • Accent colour for invoice headers

Product table

  • Optional product code column with fully configurable label (HSN, SAC, SKU, HS Code, Tariff Code, or any custom text)
  • Product-level code field on the WooCommerce product edit screen

Bank details

  • Bank account name, account number, IFSC / SWIFT / BIC code, and bank name
  • Bank details section shown on every invoice when filled in

Notes and terms

  • Editable notes and terms and conditions on every invoice

Admin settings

  • Card-based settings page with organised sections and live invoice preview
  • Live invoice preview panel — reflects unsaved changes before saving
  • Required-field validation before settings are saved
  • Data Management — optional data removal on uninstall

Compatibility

  • Compatible with WooCommerce High-Performance Order Storage (HPOS)
  • Compatible with WordPress Multisite

Pro Features

The RakeshDhiman Invoice Manager for WooCommerce Pro add-on extends this plugin with advanced features for businesses that need more:

Custom templates and PDF

  • Custom HTML/CSS invoice templates — full control over invoice design using your own markup and placeholders
  • Browser PDF engine — Chrome/Edge headless rendering for pixel-perfect PDFs from modern custom templates
  • Auto PDF mode — custom templates use the browser engine; the default layout uses Dompdf

Packing slips

  • Packing slip view and print from admin order screens
  • Packing slip PDF downloads
  • Packing slips show shipping details, product names, SKUs, quantities, and packed checkboxes — no prices

Email attachments

  • Automatically attach invoice PDFs to selected WooCommerce order emails
  • Choose which emails receive invoice PDFs — admin emails and customer emails shown separately
  • Attach packing slip PDFs to admin New Order email
  • Packing slips are never sent to customer emails regardless of settings

Bulk actions

  • Bulk print invoices from the WooCommerce orders list
  • Bulk download invoice PDFs as a single ZIP file
  • Bulk print packing slips

Pro requires the free plugin to be installed and active.

Invoice access rules

Invoices can be viewed by:

  • WooCommerce administrators and shop managers
  • The customer who placed the order
  • Anyone with a valid WooCommerce order key (for guest checkout links)

Live invoice preview

The invoice settings page includes a live preview panel that:

  • Updates while you edit settings, including before saving
  • Uses a nonce-protected AJAX request
  • Uses the latest WooCommerce order as sample data
  • Renders inside a sandboxed iframe
  • Is available only to users with WooCommerce management permissions

Preview changes are not applied to real invoices until you click Save Changes.

PDF generation (Free)

The free plugin uses Dompdf to generate invoice PDFs. Dompdf works well for the built-in default invoice layout.

The Pro add-on adds a browser-based PDF engine (Chrome/Edge headless) for custom HTML/CSS templates that use modern CSS such as flexbox, grid, and gradients.

Product code column

The product code column is optional and works for any country. Admins can:

  • Hide it completely
  • Rename it to any label — HSN, SAC, SKU, HS Code, Tariff Code, Product Code, or anything else

COD due amount behaviour

  • For Cash on Delivery orders, due amount follows WooCommerce paid status.
  • For non-COD orders, due amount shows as zero once payment is received.

Required settings

The following fields must be filled before settings can be saved:

  • Invoice Title
  • Company Name
  • Company Address
  • Company Phone
  • Company Email
  • Logo URL

Optional settings

All other fields are optional. Empty optional fields are hidden cleanly in the default invoice layout.

Custom template placeholders (Pro)

Invoice and company

  • {{invoice_title}} {{invoice_number}} {{order_number}} {{invoice_date}}
  • {{payment_method}} {{order_status}} {{order_currency}}
  • {{company_name}} {{company_phone}} {{company_email}}
  • {{company_gstin}} {{company_gstin_label}}
  • {{signature_label}} {{accent_color}}
  • {{currency_code}} {{currency_symbol}}
  • {{hsn_label}} {{show_hsn_column}}

Totals

  • {{taxable_amount}} {{shipping_amount}} {{total_payable}}
  • {{received_amount}} {{due_amount}} {{total_words}}
  • {{total_quantity}} {{notes}} {{terms}}

Billing address — individual fields

  • {{billing_first_name}} {{billing_last_name}} {{billing_company}}
  • {{billing_email}} {{billing_phone}}
  • {{billing_address_1}} {{billing_address_2}}
  • {{billing_city}} {{billing_state}} {{billing_postcode}} {{billing_country}}

Shipping address — individual fields

  • {{shipping_first_name}} {{shipping_last_name}} {{shipping_company}}
  • {{shipping_address_1}} {{shipping_address_2}}
  • {{shipping_city}} {{shipping_state}} {{shipping_postcode}} {{shipping_country}}

HTML blocks (prebuilt)

  • {{logo_html}} {{signature_html}}
  • {{company_address_html}} {{billing_lines_html}}
  • {{products_rows_html}} {{products_table_html}}
  • {{tax_rows_html}}
  • {{bank_details_rows_html}} {{bank_details_table_html}}
  • {{notes_html}} {{terms_html}}

Note: {{products_rows_html}} returns only the inner <tr> rows. Wrap it in your own <table><tbody>...</tbody></table>. Use {{products_table_html}} for the complete table including headers.

Installation

  1. Upload the rakeshdhiman-invoice-manager-woocommerce folder to /wp-content/plugins/.
  2. Activate the plugin through the Plugins screen in WordPress.
  3. Make sure WooCommerce is active.
  4. Go to WooCommerce > Invoice Settings.
  5. Fill in the required company and branding fields.
  6. Upload a logo using the media library button next to the Logo URL field.
  7. Review the live invoice preview on the right-hand side.
  8. Click Save Changes.
  9. Open any WooCommerce order to see the invoice and PDF download buttons.

FAQ

Does this plugin generate PDF files?

Yes. Invoice PDFs are generated using Dompdf and can be downloaded directly from admin order screens and from the customer My Account page.

Does the free plugin support custom invoice templates?

No. Custom HTML/CSS invoice templates are available in the Pro add-on. The free plugin uses the built-in default invoice layout.

Does the free plugin include packing slips?

No. Packing slips are a Pro feature. The free plugin generates invoices only.

Can invoices be attached to WooCommerce emails?

Email PDF attachments are available in the Pro add-on. The free plugin does not attach PDFs to emails.

Can guests access their invoice without logging in?

Yes. Customers who checked out as guests can view and download their invoice using the order key link included in their WooCommerce order confirmation email.

Does the preview update before I save settings?

Yes. The preview reflects your current form values, including any unsaved changes. Click Save Changes to apply those values to real invoices.

Can I hide or rename the product code column?

Yes. Go to WooCommerce > Invoice Settings and disable the column entirely, or change the label to any text — HSN, SAC, SKU, HS Code, Product Code, or anything else.

Can I use my own Tax ID label instead of GSTIN?

Yes. The Tax ID Label field in Company Details lets you set any label — GSTIN, VAT Number, ABN, EIN, CRN, or any custom text. This label prints before the Tax ID value on every invoice.

Will the plugin data be deleted when I uninstall it?

Not by default. Enable Delete Data on Uninstall in the Data Management section of the settings before uninstalling if you want all plugin settings and stored invoice meta to be removed.

Is this plugin compatible with WooCommerce HPOS?

Yes. The plugin is fully compatible with WooCommerce High-Performance Order Storage (HPOS / custom order tables).

Does this plugin work with WooCommerce Blocks checkout?

Yes. The plugin hooks into WooCommerce order creation events and works regardless of whether orders are placed through the classic or block-based checkout.

Where do I report bugs or request features?

Please use the WordPress.org support forum to report bugs or request features.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“RakeshDhiman Invoice Manager for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

2.0.4

  • Removed additional non-runtime files bundled from dependencies (docs, examples, bin scripts, lint/CI configs) and hardened .distignore against them recurring.
  • Replaced remaining hardcoded style tags in the live preview with genuine wp_enqueue_style()/wp_add_inline_style() calls.
  • Rewrote the settings sanitizer to build an explicit field whitelist instead of merging raw input over defaults.
  • Added a defense-in-depth sanitization pass on live-preview input before it reaches the settings sanitizer.
  • Escaped custom-template output and custom CSS at the point of use instead of relying solely on save-time sanitization.

2.0.3

  • Renamed plugin to RakeshDhiman Invoice Manager for WooCommerce (previously Dynamic Invoice for WooCommerce) for directory naming compliance.
  • Removed all custom HTML/CSS invoice template code from the free plugin; this is now exclusively a Pro add-on feature with its own independent settings storage.
  • Removed the browser (headless Chrome/Edge) PDF engine from the free plugin; also exclusively a Pro add-on feature now.
  • Replaced hardcoded stylesheet tags with wp_enqueue_style()/wp_add_inline_style() throughout.
  • Removed unnecessary load_plugin_textdomain() call.
  • Removed unused development/test files from bundled dependencies.

2.0.2

  • Hardened invoice access control so the admin nonce path is exclusive and no longer falls through to the order-key path.
  • Capped bulk print, bulk packing-slip print, and bulk PDF download handlers to prevent denial-of-service through large order selections.
  • Fixed clear_cache() to remove orphaned browser profile directories, leftover HTML files, and the temp subdirectory while preserving .htaccess and index.php sentinels.
  • Replaced the manual “free plugin required” notice on the Pro add-on with a WordPress 6.5+ native dependency notice on older WordPress versions.
  • Removed dead code in the bulk download path and unused invoice sequence lock constants.
  • Removed development dependencies (wpcs, phpcodesniffer-composer-installer, php-scoper) from the production composer.json.
  • Bumped minimum PHP to 8.0 and minimum WordPress to 6.5.
  • Reformatted plugin source to follow WordPress Coding Standards.

2.0.1

  • Renamed plugin to Dynamic Invoice for WooCommerce.
  • Redesigned admin settings page with card-based sections, a purple gradient header banner, sticky save bar, and organised field groups.
  • Added Free vs Pro comparison table to the settings page when Pro is not active.
  • Added Pro feature gate — custom HTML/CSS templates and browser PDF engine are disabled automatically when the Pro add-on is not active, even if values were previously saved.
  • Added atomic MySQL invoice number assignment using SELECT FOR UPDATE — prevents duplicate invoice numbers under concurrent order processing.
  • Added activation integrity check — next invoice number is always set higher than the highest stored sequence on plugin activation/reactivation.
  • Added friendly PDF error page — replaces white screen / wp_die on PDF generation failure.
  • Added logo attachment ID storage — logo URL is re-resolved from WordPress media library on save, survives domain changes.
  • Added 22 individual billing, shipping, and order field placeholders for custom templates.
  • Added configurable Tax ID label (GSTIN, VAT Number, ABN, EIN, CRN, or custom text).
  • Added Tax ID / VAT Number field label and IFSC / SWIFT / BIC bank label — internationally neutral.
  • Added bulk action processing feedback — spinner notice shown while bulk print or ZIP download runs.
  • Added email admin/customer group separation — Admin emails and Customer emails shown as separate labelled groups in email settings.
  • Added packing slip hard gate — packing slip PDFs are never attached to customer emails regardless of settings.
  • Fixed invoice and packing slip print/PDF layout — removed forced min-height, added page-break controls and overflow fixes.
  • Improved live invoice preview sidebar to fill full viewport height.

2.0.0

  • Added invoice PDF downloads powered by Dompdf.
  • Added browser-based PDF rendering for modern custom HTML/CSS templates.
  • Added PDF engine setting with Auto, Browser, and Dompdf modes.
  • Added live invoice preview panel to the admin settings screen.
  • Added packing slip generation and packing slip PDF downloads.
  • Added optional WooCommerce email PDF attachments.
  • Added bulk invoice and packing slip actions.
  • Added HPOS (High-Performance Order Storage) compatibility.
  • Added guest invoice access via WooCommerce order key.
  • Improved settings sanitization and required-field validation.

1.0.6

  • Added a short-lived invoice sequence lock to reduce duplicate invoice number risk during concurrent order processing.
  • Localised media uploader strings used by the invoice settings page.

1.0.5

  • Fixed live preview AJAX requests returning 0 by excluding WordPress settings form control fields from the preview payload.

1.0.4

  • Improved live preview error handling so WordPress AJAX error messages are shown instead of a generic network error.

1.0.3

  • Fixed live preview updates for unsaved invoice settings such as Invoice Title.
  • Improved AJAX form data handling so preview values are parsed as WordPress settings fields.

1.0.2

  • Added AJAX-based live invoice preview to the invoice settings screen.
  • Added immediate preview refresh when Invoice Layout Mode changes.
  • Improved preview security with nonce validation, capability checks, and sandboxed iframe rendering.

1.0.1

  • Added required-field validation for invoice settings.
  • Added editable signature label support.
  • Added optional HSN column toggle and custom HSN label.
  • Improved COD due amount handling.
  • Added uninstall data-retention option.
  • Added WordPress.org readme and translation loading.

1.0.0

  • Initial release.