Tax Invoice Requests for WooCommerce
Tax Invoice Requests for WooCommerce

Tax Invoice Requests for WooCommerce

0/5 (0 ratings) — active installs Updated Nov 10, 2026
Tax invoice request action in My Account orders.

Tax invoice request action in My Account orders.

Product page | Documentation | Support

Tax Invoice Requests for WooCommerce adds a practical self-service invoice request workflow to WooCommerce stores. Customers can request a tax invoice directly from an eligible order, enter their company or tax details, receive a PDF invoice by email, and download the invoice again from their account.

This plugin is built for stores that need to collect VAT, GST, ABN, TRN, business tax ID, or other regional tax registration details after checkout without handling every invoice request manually through support tickets.

Instead of asking customers to email billing details to your team, the plugin adds a tax invoice request form to WooCommerce order pages. After a valid request is submitted, the plugin saves the invoice details to the order, generates a PDF tax invoice, attaches it to a WooCommerce email, and protects the PDF behind permission checks.

Why use this WooCommerce tax invoice plugin?

  • Reduce manual tax invoice requests from customers.
  • Let customers submit tax ID, VAT, GST, ABN, TRN, billing address, and invoice email details from the order page.
  • Generate PDF tax invoices from WooCommerce order data.
  • Keep invoice PDFs available for future download.
  • Give store managers invoice details and PDF actions inside the WooCommerce order admin screen.
  • Support both logged-in customers and guest customers with valid WooCommerce order keys.

Key features

  • Customer tax invoice request form on WooCommerce order details pages.
  • Support for guest invoice requests from the order received page when a valid order key is present.
  • Automatic invoice field prefill from billing details and previously saved customer invoice details.
  • Custom tax ID label field for VAT number, GST number, ABN, TRN, Tax ID, or local registration labels.
  • Automatic PDF tax invoice generation after a valid request.
  • Dedicated WooCommerce customer email with the generated PDF invoice attached.
  • Protected PDF invoice download links for customers, guests with a valid order key, and store managers.
  • WooCommerce order admin metabox showing invoice status, invoice number, tax ID, invoice email, billing address, and notes.
  • Admin actions to regenerate the PDF invoice and resend the invoice email.
  • Configurable seller legal name, seller tax ID label, seller tax ID number, seller address, and seller email.
  • Configurable invoice number prefix and next invoice number.
  • Safer invoice number reservation to reduce duplicate invoice numbers during concurrent requests.
  • Optional tax rate column in the generated PDF invoice.
  • Optional tax summary grouped by tax rate.
  • Custom footer or legal note for the PDF invoice.
  • Optional tax invoice request link in WooCommerce customer order emails.
  • Compatible with WooCommerce High-Performance Order Storage (HPOS) order screens.

Customer invoice workflow

  1. The customer opens an eligible WooCommerce order from My Account > Orders, or opens the order received page with a valid order key.
  2. The customer clicks Request tax invoice.
  3. A modal form opens with prefilled billing and invoice details when available.
  4. The customer enters the company or customer name, tax ID label, tax ID number, country or region, billing address, invoice email, and optional invoice note.
  5. The plugin validates the request with a WordPress nonce and WooCommerce order access checks.
  6. The invoice details are saved to the order.
  7. A PDF tax invoice is generated automatically.
  8. The plugin attempts to email the generated PDF invoice and reports if sending fails.
  9. The customer can download the PDF invoice again from the order page when permitted.

Store manager workflow

Store managers and administrators can review tax invoice requests from the WooCommerce order edit screen. The order metabox shows the invoice status, invoice number, company or customer name, tax ID, country or region, invoice email, billing address, invoice note, and a protected PDF download button when a valid PDF exists.

The same metabox includes admin actions to:

  • Regenerate the tax invoice PDF.
  • Resend the tax invoice email to the invoice recipient.

Both admin actions use nonce checks and WooCommerce order management capability checks.

PDF tax invoice details

Generated PDF invoices can include:

  • Invoice title.
  • Invoice number and invoice date.
  • WooCommerce order number and order date.
  • Currency and payment method.
  • Seller legal business details.
  • Customer invoice details.
  • Order items, quantities, subtotals, tax amounts, and totals.
  • Optional tax rate column for line items.
  • Optional tax summary grouped by tax rate.
  • Customer invoice note.
  • Store-configured footer or legal note.

Email behavior

Yes. The first valid request is recorded before PDF generation and the automatic email attempt. Replaying the request does not overwrite invoice details or generate/send another invoice. If PDF generation or email fails, contact the store: an administrator can regenerate the PDF or resend the existing invoice from the order editor. Email acceptance by the mail transport does not confirm inbox delivery. The dedicated WooCommerce email includes the order number and invoice number when available.

Store managers can also enable a tax invoice request link in supported customer order emails. When enabled, the email includes a Request tax invoice button that sends customers to the order page and opens the request form.

Invoice numbering

Invoices use the configured invoice number prefix and the next invoice number setting. The default format is:

PREFIX-YEAR-000001

Example:

TAX-2026-000001

Existing invoice numbers are preserved when invoice settings change or when an invoice PDF is regenerated.

Security and access control

The plugin is designed to keep invoice access controlled through WordPress and WooCommerce permissions.

Security-related behavior includes:

  • WordPress nonce validation for customer invoice requests.
  • WooCommerce order ownership checks for logged-in customers.
  • Valid order key checks for guest customers.
  • WooCommerce order management capability checks for store managers.
  • Protected download handler for PDF invoices.
  • Randomized PDF file names to make direct guessing impractical.
  • Stricter invoice file path validation for downloads, email attachments, and admin cleanup.
  • Private PDF storage outside the web document root, without relying on .htaccess.
  • Dompdf remote fetching disabled by default for generated invoice PDFs.

Private PDF storage

PDFs are stored in a dedicated private directory outside the web document root, rather than in uploads. By default, the directory is created beside the document root and is unique to this installation/site. The PHP process must be able to create and write this directory. All PHP workers serving the installation must share this directory on a filesystem that supports flock; invoice operations hold a per-order file lock there, including across database reconnects. Lock files are retained to preserve lock identity. No Apache or Nginx deny rule is needed for this storage location. If the default location is unavailable, define YOOHW_TIR_PRIVATE_DIR in wp-config.php as an absolute path to a dedicated writable directory outside all publicly served directories. Existing parent directories must already exist. The plugin rejects paths inside the known document root, WordPress directory or uploads, and does not fall back to public storage.

Existing PDFs in uploads/yoohw-tax-invoices are moved to private storage when the plugin loads, preserving their bytes and filenames. Existing order metadata remains readable without rewriting order records. If a move fails, an admin error is displayed and new PDF generation is blocked. Any files still in uploads can remain accessible directly until they are moved; resolve that error before continuing. Include the private directory in backups and preserve its location when restoring the site. Do not expose it through a web-server alias or a public symlink. After rolling back to a version that stores PDFs in uploads, direct-access protection is again the server administrator’s responsibility.

CLI jobs must supply the actual DOCUMENT_ROOT (for example via $_SERVER['DOCUMENT_ROOT'] before bootstrapping WordPress), or use an explicitly configured YOOHW_TIR_PRIVATE_DIR. Without either, private PDF operations fail with an actionable storage error.

Plugin settings

Go to:

WooCommerce > Settings > Tax > Tax invoice

Settings are grouped into:

  • General
  • Seller details
  • Invoice numbering
  • PDF display
  • Customer emails

Legal and accounting scope

This plugin generates PDFs from WooCommerce order records and the information submitted by the customer. It does not replace accounting software, tax advice, fiscal authorization, e-invoicing clearance, or country-specific compliance services. Store owners must confirm that their settings and invoice output meet applicable legal, tax, and record-keeping requirements.