

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.
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:
Both admin actions use nonce checks and WooCommerce order management capability checks.
Generated PDF invoices can include:
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.
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.
The plugin is designed to keep invoice access controlled through WordPress and WooCommerce permissions.
Security-related behavior includes:
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.
Go to:
WooCommerce > Settings > Tax > Tax invoice
Settings are grouped into:
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.