{"id":235504,"date":"2025-05-30T07:39:28","date_gmt":"2025-05-30T07:39:28","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/pdf-invoicex-pdf-invoice-for-woocommerce\/"},"modified":"2026-06-19T10:22:49","modified_gmt":"2026-06-19T10:22:49","slug":"pdf-invoicex","status":"publish","type":"plugin","link":"https:\/\/cn.wordpress.org\/plugins\/pdf-invoicex\/","author":15921283,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.0","stable_tag":"2.0.0","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"PDF InvoiceX","header_author":"Vishwas R","header_description":"Professional PDF invoice generator for WooCommerce with email attachments, admin\/frontend downloads, and customizable templates.","assets_banners_color":"f5f5f5","last_updated":"2026-06-19 10:22:49","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":5,"author_block_rating":0,"active_installs":50,"downloads":768,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"vishwasr","date":"2025-06-26 08:26:50"},"2.0.0":{"tag":"2.0.0","author":"vishwasr","date":"2026-06-19 10:22:49"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3303403,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-16x16.png":{"filename":"icon-16x16.png","revision":3303403,"resolution":"16x16","location":"assets","locale":"","width":16,"height":16},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3303403,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon-32x32.png":{"filename":"icon-32x32.png","revision":3303403,"resolution":"32x32","location":"assets","locale":"","width":32,"height":32},"icon-64x64.png":{"filename":"icon-64x64.png","revision":3303403,"resolution":"64x64","location":"assets","locale":"","width":64,"height":64}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3303408,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3303408,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","2.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3303403,"resolution":"1","location":"assets","locale":"","width":1920,"height":1080},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3303403,"resolution":"2","location":"assets","locale":"","width":1920,"height":1080},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3303403,"resolution":"3","location":"assets","locale":"","width":1920,"height":1080},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3303403,"resolution":"4","location":"assets","locale":"","width":1920,"height":1080},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3303403,"resolution":"5","location":"assets","locale":"","width":1919,"height":1079},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3303403,"resolution":"6","location":"assets","locale":"","width":1920,"height":1080},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3303403,"resolution":"7","location":"assets","locale":"","width":1920,"height":1080}},"screenshots":{"1":"<strong>General Settings<\/strong> \u2014 Upload your logo, set store address, and configure invoice number prefix\/suffix.","2":"<strong>Template Selection<\/strong> \u2014 Choose from four built-in templates with a live preview modal.","3":"<strong>Email Settings<\/strong> \u2014 Select which WooCommerce emails should include the PDF invoice attachment.","4":"<strong>Advanced Settings<\/strong> \u2014 Configure VAT\/GST, paper size, automation triggers, credit notes, and packing slips.","5":"<strong>Order Edit Screen<\/strong> \u2014 Download, view, send, or regenerate the invoice; download credit note and packing slip.","6":"<strong>Orders List<\/strong> \u2014 Invoice status column with invoice number; bulk generate PDF invoices.","7":"<strong>My Account<\/strong> \u2014 Customers can download or view their invoice, and download the packing slip.","8":"<strong>Thank You Page<\/strong> \u2014 Download or view invoice immediately after checkout."}},"plugin_section":[],"plugin_tags":[15149,12480,51080,1764,286],"plugin_category":[45,50],"plugin_contributors":[238701],"plugin_business_model":[],"class_list":["post-235504","plugin","type-plugin","status-publish","hentry","plugin_tags-billing","plugin_tags-invoice","plugin_tags-packing-slip","plugin_tags-pdf","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-media","plugin_contributors-vishwasr","plugin_committers-vishwasr"],"banners":{"banner":"https:\/\/ps.w.org\/pdf-invoicex\/assets\/banner-772x250.png?rev=3303408","banner_2x":"https:\/\/ps.w.org\/pdf-invoicex\/assets\/banner-1544x500.png?rev=3303408","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/pdf-invoicex\/assets\/icon-128x128.png?rev=3303403","icon_2x":"https:\/\/ps.w.org\/pdf-invoicex\/assets\/icon-256x256.png?rev=3303403","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/pdf-invoicex\/assets\/screenshot-1.png?rev=3303403","caption":"<strong>General Settings<\/strong> \u2014 Upload your logo, set store address, and configure invoice number prefix\/suffix."},{"src":"https:\/\/ps.w.org\/pdf-invoicex\/assets\/screenshot-2.png?rev=3303403","caption":"<strong>Template Selection<\/strong> \u2014 Choose from four built-in templates with a live preview modal."},{"src":"https:\/\/ps.w.org\/pdf-invoicex\/assets\/screenshot-3.png?rev=3303403","caption":"<strong>Email Settings<\/strong> \u2014 Select which WooCommerce emails should include the PDF invoice attachment."},{"src":"https:\/\/ps.w.org\/pdf-invoicex\/assets\/screenshot-4.png?rev=3303403","caption":"<strong>Advanced Settings<\/strong> \u2014 Configure VAT\/GST, paper size, automation triggers, credit notes, and packing slips."},{"src":"https:\/\/ps.w.org\/pdf-invoicex\/assets\/screenshot-5.jpg?rev=3303403","caption":"<strong>Order Edit Screen<\/strong> \u2014 Download, view, send, or regenerate the invoice; download credit note and packing slip."},{"src":"https:\/\/ps.w.org\/pdf-invoicex\/assets\/screenshot-6.png?rev=3303403","caption":"<strong>Orders List<\/strong> \u2014 Invoice status column with invoice number; bulk generate PDF invoices."},{"src":"https:\/\/ps.w.org\/pdf-invoicex\/assets\/screenshot-7.png?rev=3303403","caption":"<strong>My Account<\/strong> \u2014 Customers can download or view their invoice, and download the packing slip."}],"raw_content":"<!--section=description-->\n<p><strong>PDF InvoiceX<\/strong> is a free WooCommerce PDF invoice plugin that automates your entire billing workflow. Generate, send, and manage PDF invoices, credit notes, and packing slips \u2014 all from within WooCommerce, with no monthly fees.<\/p>\n\n<p>Whether you run a small shop or a high-volume store, PDF InvoiceX handles invoice numbering, VAT\/GST compliance, bulk exports, and customer-facing downloads out of the box.<\/p>\n\n\n\n<h3>\ud83d\udcc4 PDF Invoices<\/h3>\n\n<ul>\n<li><strong>Auto-generate<\/strong> invoices when orders reach any configured status (e.g. Processing, Completed).<\/li>\n<li><strong>Sequential invoice numbering<\/strong> with prefix, suffix, and optional yearly counter reset (e.g. 2025-000001).<\/li>\n<li><strong>Download or view<\/strong> invoices from the WooCommerce admin, My Account page, and the Thank You \/ order-received page.<\/li>\n<li><strong>Inline PDF preview<\/strong> \u2014 opens in a new tab without leaving the page.<\/li>\n<li><strong>Regenerate<\/strong> any invoice on demand, bypassing the cache.<\/li>\n<li><strong>Send Invoice to Customer<\/strong> directly from the order edit screen \u2014 no duplicate email sends.<\/li>\n<\/ul>\n\n<h3>\ud83d\udccb Credit Notes<\/h3>\n\n<ul>\n<li>Auto-generated when an order is refunded (configurable in Advanced settings).<\/li>\n<li>Per-refund breakdown: items refunded, quantities, refund reasons, and totals.<\/li>\n<li>Available for download from the order edit screen.<\/li>\n<\/ul>\n\n<h3>\ud83d\udce6 Packing Slips<\/h3>\n\n<ul>\n<li>Pricing-free shipping document for warehouse use \u2014 shows product name, SKU, variant options, and quantity.<\/li>\n<li>Ship-from and ship-to address blocks included.<\/li>\n<li>Enable via Advanced settings; appears on order edit screen and customer My Account.<\/li>\n<\/ul>\n\n<h3>\ud83c\udfa8 Invoice Templates<\/h3>\n\n<ul>\n<li><strong>4 built-in templates<\/strong>: Default, Modern, Classic, Colorful.<\/li>\n<li><strong>Live preview<\/strong> in the settings panel before applying.<\/li>\n<li><strong>Override-safe<\/strong>: template variables are injected at render time \u2014 no class coupling, easy to extend with custom templates via the <code>pdfinvx_templates<\/code> filter.<\/li>\n<\/ul>\n\n<h3>\ud83d\udce7 Email Attachments<\/h3>\n\n<ul>\n<li>Attach PDF invoices to any WooCommerce transactional email \u2014 fully configurable per email type.<\/li>\n<li>Dedicated <strong>Send Invoice to Customer<\/strong> button on the order edit screen.<\/li>\n<\/ul>\n\n<h3>\u26a1 Bulk Invoice Generation<\/h3>\n\n<ul>\n<li>Select multiple orders \u2192 <em>Generate PDF Invoices<\/em> \u2192 download as a ZIP.<\/li>\n<li><strong>Background processing via Action Scheduler<\/strong> \u2014 handles large order volumes without PHP timeouts.<\/li>\n<li>Synchronous fallback for sites without Action Scheduler.<\/li>\n<\/ul>\n\n<h3>\ud83e\uddfe VAT \/ GST &amp; Compliance<\/h3>\n\n<ul>\n<li>Display your <strong>store VAT or GST registration number<\/strong> on every invoice.<\/li>\n<li>Optional <strong>customer VAT \/ GST field<\/strong> at checkout, stored to order meta and printed on the invoice.<\/li>\n<li><strong>Paper size<\/strong> selector: A4, Letter, or Legal.<\/li>\n<li><strong>WooCommerce HPOS<\/strong> (High-Performance Order Storage) compatible.<\/li>\n<li><strong>Fully translatable<\/strong> \u2014 includes a complete <code>.pot<\/code> file with 100+ strings.<\/li>\n<\/ul>\n\n\n\n<h3>Why PDF InvoiceX?<\/h3>\n\n<p>Most WooCommerce invoice plugins charge $49\u2013$99\/year for features like credit notes, packing slips, VAT fields, or bulk exports. PDF InvoiceX provides all of these for free, with clean code that follows WordPress and WooCommerce coding standards.<\/p>\n\n<ul>\n<li>\u2705 No subscription or licence fee<\/li>\n<li>\u2705 HPOS compatible<\/li>\n<li>\u2705 Works with WooCommerce Subscriptions<\/li>\n<li>\u2705 Action Scheduler integration for large stores<\/li>\n<li>\u2705 Plugin Check (PCP) compliant<\/li>\n<\/ul>\n\n\n\n<h3>License<\/h3>\n\n<p>This plugin is licensed under the GPLv2 or later. See the <code>LICENSE<\/code> file for details.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin ZIP via <strong>Plugins &gt; Add New &gt; Upload Plugin<\/strong>.<\/li>\n<li>Click <strong>Activate Plugin<\/strong>.<\/li>\n<li>Navigate to <strong>WooCommerce &gt; PDF InvoiceX<\/strong> to configure General, Template, Email, and Advanced settings.<\/li>\n<li>Ensure <code>wp-content\/uploads\/pdf-invoicex\/<\/code> is writable by the web server.<\/li>\n<\/ol>\n\n<p><strong>Requires<\/strong>: WooCommerce 6.0+, PHP 7.4+.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"why%20am%20i%20seeing%20%22failed%20to%20generate%20pdf%22%3F\"><h3>Why am I seeing \"Failed to generate PDF\"?<\/h3><\/dt>\n<dd><p>Check the following:\n- The <code>wp-content\/uploads\/pdf-invoicex\/<\/code> directory must be writable by the web server.\n- PHP memory limit should be at least 128 MB (mPDF recommendation).\n- Enable <code>WP_DEBUG<\/code> and check <code>wp-content\/debug.log<\/code> for a detailed error message.<\/p><\/dd>\n<dt id=\"how%20do%20i%20create%20a%20custom%20invoice%20template%3F\"><h3>How do I create a custom invoice template?<\/h3><\/dt>\n<dd><p>Copy any built-in template from the plugin's <code>templates\/<\/code> folder to your theme folder, then register it:<\/p>\n\n<pre><code>`php\n<\/code><\/pre>\n\n<p>add_filter( 'pdfinvx_templates', function( $templates ) {\n    $templates['my-template'] = array(\n        'name'        =&gt; __( 'My Template', 'pdf-invoicex' ),\n        'image'       =&gt; get_theme_file_uri( 'pdf-invoicex\/my-template.jpg' ),\n        'description' =&gt; __( 'Custom invoice template.', 'pdf-invoicex' ),\n    );\n    return $templates;\n} );\n    `<\/p>\n\n<p>Then select it under <strong>WooCommerce &gt; PDF InvoiceX &gt; Template<\/strong>.<\/p><\/dd>\n<dt id=\"can%20i%20attach%20invoices%20to%20specific%20woocommerce%20emails%3F\"><h3>Can I attach invoices to specific WooCommerce emails?<\/h3><\/dt>\n<dd><p>Yes. Go to <strong>WooCommerce &gt; PDF InvoiceX &gt; Emails<\/strong> and tick the emails you want the PDF attached to (e.g. Completed Order, Processing Order).<\/p><\/dd>\n<dt id=\"does%20it%20support%20hpos%20%28high-performance%20order%20storage%29%3F\"><h3>Does it support HPOS (High-Performance Order Storage)?<\/h3><\/dt>\n<dd><p>Yes. The plugin is fully compatible with WooCommerce HPOS (custom order tables).<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%20subscriptions%3F\"><h3>Does it work with WooCommerce Subscriptions?<\/h3><\/dt>\n<dd><p>Yes. Invoices are automatically generated for subscription renewal orders.<\/p><\/dd>\n<dt id=\"how%20do%20i%20generate%20invoices%20in%20bulk%3F\"><h3>How do I generate invoices in bulk?<\/h3><\/dt>\n<dd><p>In <strong>WooCommerce &gt; Orders<\/strong>, select the orders, choose <strong>Generate PDF Invoices<\/strong> from the Bulk Actions dropdown, and click Apply. A ZIP file will be downloaded (or queued in the background for large batches).<\/p><\/dd>\n<dt id=\"how%20do%20i%20reset%20the%20invoice%20counter%3F\"><h3>How do I reset the invoice counter?<\/h3><\/dt>\n<dd><p>Go to <strong>WooCommerce &gt; PDF InvoiceX &gt; Advanced<\/strong>, scroll to <strong>Invoice Numbering<\/strong>, enter the value in <strong>Reset Counter To<\/strong>, and click <strong>Apply Reset<\/strong>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>New: Credit note document type \u2014 auto-generated on refund, with per-refund item breakdown.<\/li>\n<li>New: Packing slip document type \u2014 warehouse-friendly, no pricing, with ship-from\/to address blocks.<\/li>\n<li>New: Advanced settings tab \u2014 VAT\/GST number, paper size (A4\/Letter\/Legal), document type toggles, automation triggers, and yearly counter reset.<\/li>\n<li>New: Store VAT \/ GST registration number displayed on all invoices.<\/li>\n<li>New: Optional customer VAT \/ GST field at WooCommerce checkout.<\/li>\n<li>New: Automatic invoice generation on configurable order status change.<\/li>\n<li>New: \"Send Invoice to Customer\" button on order edit screen (prevents duplicate sends).<\/li>\n<li>New: \"Regenerate Invoice\" button on order edit screen (bypasses cache).<\/li>\n<li>New: Invoice status column on orders list \u2014 shows invoice number or a generate shortcut (classic WP_Query + HPOS).<\/li>\n<li>New: Inline PDF viewer \u2014 \"View Invoice\" opens in a new tab from admin, My Account, and Thank You page.<\/li>\n<li>New: Thank You \/ order-received page shows Download and View Invoice buttons.<\/li>\n<li>New: Packing slip and credit note download buttons on My Account order detail.<\/li>\n<li>New: Background bulk generation via Action Scheduler \u2014 no PHP timeouts on large stores.<\/li>\n<li>New: Synchronous ZIP fallback when Action Scheduler is unavailable.<\/li>\n<li>New: File-based PDF cache in <code>uploads\/pdf-invoicex\/<\/code> with cache invalidation on order update.<\/li>\n<li>New: WooCommerce Subscriptions support \u2014 invoice generated for renewal orders.<\/li>\n<li>New: Yearly invoice counter reset with year-prefixed numbering (e.g. 2025-000001).<\/li>\n<li>New: One-time next-invoice-number override (clears after first use).<\/li>\n<li>New: Complete <code>.pot<\/code> translation catalog (100+ strings).<\/li>\n<li>Fix: Double email attachment caused by duplicate hook registration.<\/li>\n<li>Fix: Multi-item orders clipped at page break \u2014 mPDF autoPageBreak now enabled.<\/li>\n<li>Fix: Templates coupled to class via <code>$this-&gt;<\/code> \u2014 now use injected variables, safe to override.<\/li>\n<li>Fix: Temporary PDF files leaked after email attachment.<\/li>\n<li>Fix: <code>getimagesize()<\/code> fatal on remote logo URLs \u2014 replaced with HTML onerror fallback.<\/li>\n<li>Fix: Invoice date used current time instead of actual payment\/completion date.<\/li>\n<li>Fix: Generic <code>order_id<\/code> query variable conflicted with other plugins \u2014 renamed to <code>pdfinvx_order_id<\/code>.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: PDF invoice generation, admin and frontend downloads, email attachments, bulk ZIP, and template settings.<\/li>\n<\/ul>","raw_excerpt":"WooCommerce PDF invoice plugin \u2014 auto-generate invoices, credit notes &amp; packing slips. Email attachments, bulk download, VAT\/GST support. Free.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/235504","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=235504"}],"author":[{"embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/vishwasr"}],"wp:attachment":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=235504"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=235504"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=235504"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=235504"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=235504"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=235504"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}