{"id":341320,"date":"2026-07-23T06:40:44","date_gmt":"2026-07-23T06:40:44","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/dynamic-invoice-for-woocommerce\/"},"modified":"2026-07-24T08:33:32","modified_gmt":"2026-07-24T08:33:32","slug":"rakeshdhiman-invoice-manager-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/rakeshdhiman-invoice-manager-woocommerce\/","author":23496566,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.4","stable_tag":"2.0.4","tested":"7.0.2","requires":"6.5","requires_php":"8.0","requires_plugins":null,"header_name":"RakeshDhiman Invoice Manager for WooCommerce","header_author":"Rakesh Kumar","header_description":"Generates WooCommerce invoices with automatic numbering, company branding, product table, and bank details. View and print from admin and customer My Account pages, with PDF download powered by Dompdf. Supports HPOS and WordPress Multisite.","assets_banners_color":"836ebc","last_updated":"2026-07-24 08:33:32","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/github.com\/rakeshdhiman644","rating":0,"author_block_rating":0,"active_installs":0,"downloads":57,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.0.4":{"tag":"2.0.4","author":"rakeshdhiman","date":"2026-07-24 08:33:32"}},"upgrade_notice":{"2.0.3":"<p>Plugin renamed to RakeshDhiman Invoice Manager for WooCommerce. Custom templates and the browser PDF engine moved to the Pro add-on only. Recommended update.<\/p>","2.0.2":"<p>Security hardening: tightened invoice access control and added limits on bulk actions. Recommended update for all sites.<\/p>","2.0.1":"<p>Redesigned settings page and Pro add-on architecture. If you previously used custom templates or the browser PDF engine as part of the all-in-one plugin, install the Pro add-on to restore those features. No data is lost \u2014 your saved template content is preserved.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3619486,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3619486,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3619486,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3619486,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.0.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3620874,"resolution":"1","location":"assets","locale":"","width":1045,"height":919},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3620874,"resolution":"2","location":"assets","locale":"","width":883,"height":814},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3620874,"resolution":"3","location":"assets","locale":"","width":1047,"height":798},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3620874,"resolution":"4","location":"assets","locale":"","width":1046,"height":909},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3620874,"resolution":"5","location":"assets","locale":"","width":1044,"height":919},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3620874,"resolution":"6","location":"assets","locale":"","width":1051,"height":910},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3620874,"resolution":"7","location":"assets","locale":"","width":1895,"height":917}},"screenshots":{"1":"Invoice Settings page with branding options and company information.","2":"Branding settings for invoice title, accent color, logo, and signature.","3":"Company details including business information and Tax ID configuration.","4":"Product table settings with optional HSN column and bank account details.","5":"Notes &amp; Terms section with automatic invoice numbering.","6":"Invoice numbering and plugin data management settings.","7":"Live invoice preview that updates as you customize invoice settings."}},"plugin_section":[],"plugin_tags":[247580,273122,273123,57399,62469],"plugin_category":[45],"plugin_contributors":[272923],"plugin_business_model":[],"class_list":["post-341320","plugin","type-plugin","status-publish","hentry","plugin_tags-gst-invoice","plugin_tags-gstin","plugin_tags-hsn","plugin_tags-pdf-invoice","plugin_tags-woocommerce-invoice","plugin_category-ecommerce","plugin_contributors-rakeshdhiman","plugin_committers-rakeshdhiman"],"banners":{"banner":"https:\/\/ps.w.org\/rakeshdhiman-invoice-manager-woocommerce\/assets\/banner-772x250.png?rev=3619486","banner_2x":"https:\/\/ps.w.org\/rakeshdhiman-invoice-manager-woocommerce\/assets\/banner-1544x500.png?rev=3619486","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/rakeshdhiman-invoice-manager-woocommerce\/assets\/icon-128x128.png?rev=3619486","icon_2x":"https:\/\/ps.w.org\/rakeshdhiman-invoice-manager-woocommerce\/assets\/icon-256x256.png?rev=3619486","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/rakeshdhiman-invoice-manager-woocommerce\/assets\/screenshot-1.png?rev=3620874","caption":"Invoice Settings page with branding options and company information."},{"src":"https:\/\/ps.w.org\/rakeshdhiman-invoice-manager-woocommerce\/assets\/screenshot-2.png?rev=3620874","caption":"Branding settings for invoice title, accent color, logo, and signature."},{"src":"https:\/\/ps.w.org\/rakeshdhiman-invoice-manager-woocommerce\/assets\/screenshot-3.png?rev=3620874","caption":"Company details including business information and Tax ID configuration."},{"src":"https:\/\/ps.w.org\/rakeshdhiman-invoice-manager-woocommerce\/assets\/screenshot-4.png?rev=3620874","caption":"Product table settings with optional HSN column and bank account details."},{"src":"https:\/\/ps.w.org\/rakeshdhiman-invoice-manager-woocommerce\/assets\/screenshot-5.png?rev=3620874","caption":"Notes &amp; Terms section with automatic invoice numbering."},{"src":"https:\/\/ps.w.org\/rakeshdhiman-invoice-manager-woocommerce\/assets\/screenshot-6.png?rev=3620874","caption":"Invoice numbering and plugin data management settings."},{"src":"https:\/\/ps.w.org\/rakeshdhiman-invoice-manager-woocommerce\/assets\/screenshot-7.png?rev=3620874","caption":"Live invoice preview that updates as you customize invoice settings."}],"raw_content":"<!--section=description-->\n<p>RakeshDhiman Invoice Manager for WooCommerce generates clean, print-ready GST invoices for every WooCommerce order \u2014 with GSTIN, HSN\/SAC columns, and Indian number formatting (amount in words as lakhs\/crores) built in from day one. Store owners in India can invoice correctly out of the box, while stores in any other country can just as easily relabel the same field to VAT, ABN, EIN, or CRN and switch to millions\/billions formatting automatically.<\/p>\n\n<p>Store owners can fully customise company details, invoice numbering, branding, Tax ID, HSN\/SAC\/SKU columns, bank details, notes, terms, and signatures directly from the WooCommerce admin.<\/p>\n\n<p>The plugin works standalone out of the box. No account required, no nag screens, and no crippled trial \u2014 every free feature is fully functional.<\/p>\n\n<p>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.<\/p>\n\n<h4>Free Features<\/h4>\n\n<p><strong>Invoice generation<\/strong><\/p>\n\n<ul>\n<li>Automatic invoice numbers with configurable prefix, start number, and zero-padding<\/li>\n<li>Atomic invoice number assignment \u2014 prevents duplicate invoice numbers under concurrent orders<\/li>\n<li>Invoice dates assigned automatically on order creation<\/li>\n<li>Invoice view and print from the WooCommerce admin order screen<\/li>\n<li>Invoice view and print from the customer My Account orders page<\/li>\n<li>Guest invoice access via WooCommerce order key (no login required)<\/li>\n<li>Invoice PDF download powered by Dompdf<\/li>\n<\/ul>\n\n<p><strong>Branding and company details<\/strong><\/p>\n\n<ul>\n<li>Company name, address, phone, email, and configurable Tax ID \/ VAT Number<\/li>\n<li>Configurable Tax ID label \u2014 set it to GSTIN, VAT Number, ABN, EIN, CRN, or any custom text<\/li>\n<li>Logo upload via WordPress media library (stored as attachment ID \u2014 survives domain changes)<\/li>\n<li>Signature image and signature label<\/li>\n<li>Accent colour for invoice headers<\/li>\n<\/ul>\n\n<p><strong>Product table<\/strong><\/p>\n\n<ul>\n<li>Optional product code column with fully configurable label (HSN, SAC, SKU, HS Code, Tariff Code, or any custom text)<\/li>\n<li>Product-level code field on the WooCommerce product edit screen<\/li>\n<\/ul>\n\n<p><strong>Bank details<\/strong><\/p>\n\n<ul>\n<li>Bank account name, account number, IFSC \/ SWIFT \/ BIC code, and bank name<\/li>\n<li>Bank details section shown on every invoice when filled in<\/li>\n<\/ul>\n\n<p><strong>Notes and terms<\/strong><\/p>\n\n<ul>\n<li>Editable notes and terms and conditions on every invoice<\/li>\n<\/ul>\n\n<p><strong>Admin settings<\/strong><\/p>\n\n<ul>\n<li>Card-based settings page with organised sections and live invoice preview<\/li>\n<li>Live invoice preview panel \u2014 reflects unsaved changes before saving<\/li>\n<li>Required-field validation before settings are saved<\/li>\n<li>Data Management \u2014 optional data removal on uninstall<\/li>\n<\/ul>\n\n<p><strong>Compatibility<\/strong><\/p>\n\n<ul>\n<li>Compatible with WooCommerce High-Performance Order Storage (HPOS)<\/li>\n<li>Compatible with WordPress Multisite<\/li>\n<\/ul>\n\n<h4>Pro Features<\/h4>\n\n<p>The <a href=\"https:\/\/payhip.com\/b\/xkn6B\">RakeshDhiman Invoice Manager for WooCommerce Pro<\/a> add-on extends this plugin with advanced features for businesses that need more:<\/p>\n\n<p><strong>Custom templates and PDF<\/strong><\/p>\n\n<ul>\n<li>Custom HTML\/CSS invoice templates \u2014 full control over invoice design using your own markup and placeholders<\/li>\n<li>Browser PDF engine \u2014 Chrome\/Edge headless rendering for pixel-perfect PDFs from modern custom templates<\/li>\n<li>Auto PDF mode \u2014 custom templates use the browser engine; the default layout uses Dompdf<\/li>\n<\/ul>\n\n<p><strong>Packing slips<\/strong><\/p>\n\n<ul>\n<li>Packing slip view and print from admin order screens<\/li>\n<li>Packing slip PDF downloads<\/li>\n<li>Packing slips show shipping details, product names, SKUs, quantities, and packed checkboxes \u2014 no prices<\/li>\n<\/ul>\n\n<p><strong>Email attachments<\/strong><\/p>\n\n<ul>\n<li>Automatically attach invoice PDFs to selected WooCommerce order emails<\/li>\n<li>Choose which emails receive invoice PDFs \u2014 admin emails and customer emails shown separately<\/li>\n<li>Attach packing slip PDFs to admin New Order email<\/li>\n<li>Packing slips are never sent to customer emails regardless of settings<\/li>\n<\/ul>\n\n<p><strong>Bulk actions<\/strong><\/p>\n\n<ul>\n<li>Bulk print invoices from the WooCommerce orders list<\/li>\n<li>Bulk download invoice PDFs as a single ZIP file<\/li>\n<li>Bulk print packing slips<\/li>\n<\/ul>\n\n<p>Pro requires the free plugin to be installed and active.<\/p>\n\n<h4>Invoice access rules<\/h4>\n\n<p>Invoices can be viewed by:<\/p>\n\n<ul>\n<li>WooCommerce administrators and shop managers<\/li>\n<li>The customer who placed the order<\/li>\n<li>Anyone with a valid WooCommerce order key (for guest checkout links)<\/li>\n<\/ul>\n\n<h4>Live invoice preview<\/h4>\n\n<p>The invoice settings page includes a live preview panel that:<\/p>\n\n<ul>\n<li>Updates while you edit settings, including before saving<\/li>\n<li>Uses a nonce-protected AJAX request<\/li>\n<li>Uses the latest WooCommerce order as sample data<\/li>\n<li>Renders inside a sandboxed iframe<\/li>\n<li>Is available only to users with WooCommerce management permissions<\/li>\n<\/ul>\n\n<p>Preview changes are not applied to real invoices until you click Save Changes.<\/p>\n\n<h4>PDF generation (Free)<\/h4>\n\n<p>The free plugin uses Dompdf to generate invoice PDFs. Dompdf works well for the built-in default invoice layout.<\/p>\n\n<p>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.<\/p>\n\n<h4>Product code column<\/h4>\n\n<p>The product code column is optional and works for any country. Admins can:<\/p>\n\n<ul>\n<li>Hide it completely<\/li>\n<li>Rename it to any label \u2014 HSN, SAC, SKU, HS Code, Tariff Code, Product Code, or anything else<\/li>\n<\/ul>\n\n<h4>COD due amount behaviour<\/h4>\n\n<ul>\n<li>For Cash on Delivery orders, due amount follows WooCommerce paid status.<\/li>\n<li>For non-COD orders, due amount shows as zero once payment is received.<\/li>\n<\/ul>\n\n<h4>Required settings<\/h4>\n\n<p>The following fields must be filled before settings can be saved:<\/p>\n\n<ul>\n<li>Invoice Title<\/li>\n<li>Company Name<\/li>\n<li>Company Address<\/li>\n<li>Company Phone<\/li>\n<li>Company Email<\/li>\n<li>Logo URL<\/li>\n<\/ul>\n\n<h4>Optional settings<\/h4>\n\n<p>All other fields are optional. Empty optional fields are hidden cleanly in the default invoice layout.<\/p>\n\n<h4>Custom template placeholders (Pro)<\/h4>\n\n<p><strong>Invoice and company<\/strong><\/p>\n\n<ul>\n<li><code>{{invoice_title}}<\/code> <code>{{invoice_number}}<\/code> <code>{{order_number}}<\/code> <code>{{invoice_date}}<\/code><\/li>\n<li><code>{{payment_method}}<\/code> <code>{{order_status}}<\/code> <code>{{order_currency}}<\/code><\/li>\n<li><code>{{company_name}}<\/code> <code>{{company_phone}}<\/code> <code>{{company_email}}<\/code><\/li>\n<li><code>{{company_gstin}}<\/code> <code>{{company_gstin_label}}<\/code><\/li>\n<li><code>{{signature_label}}<\/code> <code>{{accent_color}}<\/code><\/li>\n<li><code>{{currency_code}}<\/code> <code>{{currency_symbol}}<\/code><\/li>\n<li><code>{{hsn_label}}<\/code> <code>{{show_hsn_column}}<\/code><\/li>\n<\/ul>\n\n<p><strong>Totals<\/strong><\/p>\n\n<ul>\n<li><code>{{taxable_amount}}<\/code> <code>{{shipping_amount}}<\/code> <code>{{total_payable}}<\/code><\/li>\n<li><code>{{received_amount}}<\/code> <code>{{due_amount}}<\/code> <code>{{total_words}}<\/code><\/li>\n<li><code>{{total_quantity}}<\/code> <code>{{notes}}<\/code> <code>{{terms}}<\/code><\/li>\n<\/ul>\n\n<p><strong>Billing address \u2014 individual fields<\/strong><\/p>\n\n<ul>\n<li><code>{{billing_first_name}}<\/code> <code>{{billing_last_name}}<\/code> <code>{{billing_company}}<\/code><\/li>\n<li><code>{{billing_email}}<\/code> <code>{{billing_phone}}<\/code><\/li>\n<li><code>{{billing_address_1}}<\/code> <code>{{billing_address_2}}<\/code><\/li>\n<li><code>{{billing_city}}<\/code> <code>{{billing_state}}<\/code> <code>{{billing_postcode}}<\/code> <code>{{billing_country}}<\/code><\/li>\n<\/ul>\n\n<p><strong>Shipping address \u2014 individual fields<\/strong><\/p>\n\n<ul>\n<li><code>{{shipping_first_name}}<\/code> <code>{{shipping_last_name}}<\/code> <code>{{shipping_company}}<\/code><\/li>\n<li><code>{{shipping_address_1}}<\/code> <code>{{shipping_address_2}}<\/code><\/li>\n<li><code>{{shipping_city}}<\/code> <code>{{shipping_state}}<\/code> <code>{{shipping_postcode}}<\/code> <code>{{shipping_country}}<\/code><\/li>\n<\/ul>\n\n<p><strong>HTML blocks (prebuilt)<\/strong><\/p>\n\n<ul>\n<li><code>{{logo_html}}<\/code> <code>{{signature_html}}<\/code><\/li>\n<li><code>{{company_address_html}}<\/code> <code>{{billing_lines_html}}<\/code><\/li>\n<li><code>{{products_rows_html}}<\/code> <code>{{products_table_html}}<\/code><\/li>\n<li><code>{{tax_rows_html}}<\/code><\/li>\n<li><code>{{bank_details_rows_html}}<\/code> <code>{{bank_details_table_html}}<\/code><\/li>\n<li><code>{{notes_html}}<\/code> <code>{{terms_html}}<\/code><\/li>\n<\/ul>\n\n<p><strong>Note:<\/strong> <code>{{products_rows_html}}<\/code> returns only the inner <code>&lt;tr&gt;<\/code> rows. Wrap it in your own <code>&lt;table&gt;&lt;tbody&gt;...&lt;\/tbody&gt;&lt;\/table&gt;<\/code>. Use <code>{{products_table_html}}<\/code> for the complete table including headers.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>rakeshdhiman-invoice-manager-woocommerce<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Make sure WooCommerce is active.<\/li>\n<li>Go to <strong>WooCommerce &gt; Invoice Settings<\/strong>.<\/li>\n<li>Fill in the required company and branding fields.<\/li>\n<li>Upload a logo using the media library button next to the Logo URL field.<\/li>\n<li>Review the live invoice preview on the right-hand side.<\/li>\n<li>Click <strong>Save Changes<\/strong>.<\/li>\n<li>Open any WooCommerce order to see the invoice and PDF download buttons.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20generate%20pdf%20files%3F\"><h3>Does this plugin generate PDF files?<\/h3><\/dt>\n<dd><p>Yes. Invoice PDFs are generated using Dompdf and can be downloaded directly from admin order screens and from the customer My Account page.<\/p><\/dd>\n<dt id=\"does%20the%20free%20plugin%20support%20custom%20invoice%20templates%3F\"><h3>Does the free plugin support custom invoice templates?<\/h3><\/dt>\n<dd><p>No. Custom HTML\/CSS invoice templates are available in the Pro add-on. The free plugin uses the built-in default invoice layout.<\/p><\/dd>\n<dt id=\"does%20the%20free%20plugin%20include%20packing%20slips%3F\"><h3>Does the free plugin include packing slips?<\/h3><\/dt>\n<dd><p>No. Packing slips are a Pro feature. The free plugin generates invoices only.<\/p><\/dd>\n<dt id=\"can%20invoices%20be%20attached%20to%20woocommerce%20emails%3F\"><h3>Can invoices be attached to WooCommerce emails?<\/h3><\/dt>\n<dd><p>Email PDF attachments are available in the Pro add-on. The free plugin does not attach PDFs to emails.<\/p><\/dd>\n<dt id=\"can%20guests%20access%20their%20invoice%20without%20logging%20in%3F\"><h3>Can guests access their invoice without logging in?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"does%20the%20preview%20update%20before%20i%20save%20settings%3F\"><h3>Does the preview update before I save settings?<\/h3><\/dt>\n<dd><p>Yes. The preview reflects your current form values, including any unsaved changes. Click Save Changes to apply those values to real invoices.<\/p><\/dd>\n<dt id=\"can%20i%20hide%20or%20rename%20the%20product%20code%20column%3F\"><h3>Can I hide or rename the product code column?<\/h3><\/dt>\n<dd><p>Yes. Go to WooCommerce &gt; Invoice Settings and disable the column entirely, or change the label to any text \u2014 HSN, SAC, SKU, HS Code, Product Code, or anything else.<\/p><\/dd>\n<dt id=\"can%20i%20use%20my%20own%20tax%20id%20label%20instead%20of%20gstin%3F\"><h3>Can I use my own Tax ID label instead of GSTIN?<\/h3><\/dt>\n<dd><p>Yes. The Tax ID Label field in Company Details lets you set any label \u2014 GSTIN, VAT Number, ABN, EIN, CRN, or any custom text. This label prints before the Tax ID value on every invoice.<\/p><\/dd>\n<dt id=\"will%20the%20plugin%20data%20be%20deleted%20when%20i%20uninstall%20it%3F\"><h3>Will the plugin data be deleted when I uninstall it?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20compatible%20with%20woocommerce%20hpos%3F\"><h3>Is this plugin compatible with WooCommerce HPOS?<\/h3><\/dt>\n<dd><p>Yes. The plugin is fully compatible with WooCommerce High-Performance Order Storage (HPOS \/ custom order tables).<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20work%20with%20woocommerce%20blocks%20checkout%3F\"><h3>Does this plugin work with WooCommerce Blocks checkout?<\/h3><\/dt>\n<dd><p>Yes. The plugin hooks into WooCommerce order creation events and works regardless of whether orders are placed through the classic or block-based checkout.<\/p><\/dd>\n<dt id=\"where%20do%20i%20report%20bugs%20or%20request%20features%3F\"><h3>Where do I report bugs or request features?<\/h3><\/dt>\n<dd><p>Please use the WordPress.org support forum to report bugs or request features.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.4<\/h4>\n\n<ul>\n<li>Removed additional non-runtime files bundled from dependencies (docs, examples, bin scripts, lint\/CI configs) and hardened .distignore against them recurring.<\/li>\n<li>Replaced remaining hardcoded style tags in the live preview with genuine wp_enqueue_style()\/wp_add_inline_style() calls.<\/li>\n<li>Rewrote the settings sanitizer to build an explicit field whitelist instead of merging raw input over defaults.<\/li>\n<li>Added a defense-in-depth sanitization pass on live-preview input before it reaches the settings sanitizer.<\/li>\n<li>Escaped custom-template output and custom CSS at the point of use instead of relying solely on save-time sanitization.<\/li>\n<\/ul>\n\n<h4>2.0.3<\/h4>\n\n<ul>\n<li>Renamed plugin to RakeshDhiman Invoice Manager for WooCommerce (previously Dynamic Invoice for WooCommerce) for directory naming compliance.<\/li>\n<li>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.<\/li>\n<li>Removed the browser (headless Chrome\/Edge) PDF engine from the free plugin; also exclusively a Pro add-on feature now.<\/li>\n<li>Replaced hardcoded stylesheet tags with wp_enqueue_style()\/wp_add_inline_style() throughout.<\/li>\n<li>Removed unnecessary load_plugin_textdomain() call.<\/li>\n<li>Removed unused development\/test files from bundled dependencies.<\/li>\n<\/ul>\n\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Hardened invoice access control so the admin nonce path is exclusive and no longer falls through to the order-key path.<\/li>\n<li>Capped bulk print, bulk packing-slip print, and bulk PDF download handlers to prevent denial-of-service through large order selections.<\/li>\n<li>Fixed <code>clear_cache()<\/code> to remove orphaned browser profile directories, leftover HTML files, and the temp subdirectory while preserving <code>.htaccess<\/code> and <code>index.php<\/code> sentinels.<\/li>\n<li>Replaced the manual \"free plugin required\" notice on the Pro add-on with a WordPress 6.5+ native dependency notice on older WordPress versions.<\/li>\n<li>Removed dead code in the bulk download path and unused invoice sequence lock constants.<\/li>\n<li>Removed development dependencies (<code>wpcs<\/code>, <code>phpcodesniffer-composer-installer<\/code>, <code>php-scoper<\/code>) from the production <code>composer.json<\/code>.<\/li>\n<li>Bumped minimum PHP to 8.0 and minimum WordPress to 6.5.<\/li>\n<li>Reformatted plugin source to follow WordPress Coding Standards.<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Renamed plugin to Dynamic Invoice for WooCommerce.<\/li>\n<li>Redesigned admin settings page with card-based sections, a purple gradient header banner, sticky save bar, and organised field groups.<\/li>\n<li>Added Free vs Pro comparison table to the settings page when Pro is not active.<\/li>\n<li>Added Pro feature gate \u2014 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.<\/li>\n<li>Added atomic MySQL invoice number assignment using SELECT FOR UPDATE \u2014 prevents duplicate invoice numbers under concurrent order processing.<\/li>\n<li>Added activation integrity check \u2014 next invoice number is always set higher than the highest stored sequence on plugin activation\/reactivation.<\/li>\n<li>Added friendly PDF error page \u2014 replaces white screen \/ wp_die on PDF generation failure.<\/li>\n<li>Added logo attachment ID storage \u2014 logo URL is re-resolved from WordPress media library on save, survives domain changes.<\/li>\n<li>Added 22 individual billing, shipping, and order field placeholders for custom templates.<\/li>\n<li>Added configurable Tax ID label (GSTIN, VAT Number, ABN, EIN, CRN, or custom text).<\/li>\n<li>Added Tax ID \/ VAT Number field label and IFSC \/ SWIFT \/ BIC bank label \u2014 internationally neutral.<\/li>\n<li>Added bulk action processing feedback \u2014 spinner notice shown while bulk print or ZIP download runs.<\/li>\n<li>Added email admin\/customer group separation \u2014 Admin emails and Customer emails shown as separate labelled groups in email settings.<\/li>\n<li>Added packing slip hard gate \u2014 packing slip PDFs are never attached to customer emails regardless of settings.<\/li>\n<li>Fixed invoice and packing slip print\/PDF layout \u2014 removed forced min-height, added page-break controls and overflow fixes.<\/li>\n<li>Improved live invoice preview sidebar to fill full viewport height.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Added invoice PDF downloads powered by Dompdf.<\/li>\n<li>Added browser-based PDF rendering for modern custom HTML\/CSS templates.<\/li>\n<li>Added PDF engine setting with Auto, Browser, and Dompdf modes.<\/li>\n<li>Added live invoice preview panel to the admin settings screen.<\/li>\n<li>Added packing slip generation and packing slip PDF downloads.<\/li>\n<li>Added optional WooCommerce email PDF attachments.<\/li>\n<li>Added bulk invoice and packing slip actions.<\/li>\n<li>Added HPOS (High-Performance Order Storage) compatibility.<\/li>\n<li>Added guest invoice access via WooCommerce order key.<\/li>\n<li>Improved settings sanitization and required-field validation.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Added a short-lived invoice sequence lock to reduce duplicate invoice number risk during concurrent order processing.<\/li>\n<li>Localised media uploader strings used by the invoice settings page.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Fixed live preview AJAX requests returning 0 by excluding WordPress settings form control fields from the preview payload.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Improved live preview error handling so WordPress AJAX error messages are shown instead of a generic network error.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Fixed live preview updates for unsaved invoice settings such as Invoice Title.<\/li>\n<li>Improved AJAX form data handling so preview values are parsed as WordPress settings fields.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added AJAX-based live invoice preview to the invoice settings screen.<\/li>\n<li>Added immediate preview refresh when Invoice Layout Mode changes.<\/li>\n<li>Improved preview security with nonce validation, capability checks, and sandboxed iframe rendering.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Added required-field validation for invoice settings.<\/li>\n<li>Added editable signature label support.<\/li>\n<li>Added optional HSN column toggle and custom HSN label.<\/li>\n<li>Improved COD due amount handling.<\/li>\n<li>Added uninstall data-retention option.<\/li>\n<li>Added WordPress.org readme and translation loading.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"GST-ready WooCommerce invoices with GSTIN, HSN\/SAC columns, PDF downloads, and live preview. Built for Indian &amp; global stores \u2014 free forever.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/341320","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=341320"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/rakeshdhiman"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=341320"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=341320"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=341320"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=341320"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=341320"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=341320"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}