{"id":370132,"date":"2026-09-22T14:35:48","date_gmt":"2026-09-22T14:35:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/hdwebmobile-invoices-packing-slips\/"},"modified":"2026-09-22T14:35:24","modified_gmt":"2026-09-22T14:35:24","slug":"hdwebmobile-invoices-packing-slips","status":"publish","type":"plugin","link":"https:\/\/mfe.wordpress.org\/plugins\/hdwebmobile-invoices-packing-slips\/","author":9757813,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.2","requires":"6.9","requires_php":"7.4","requires_plugins":null,"header_name":"HDWebmobile Invoices & Packing Slips","header_author":"htrxuan - Han Tran","header_description":"On-demand invoice and packing-slip documents for WooCommerce orders, printable to PDF from any browser. Every document request is authorization-checked, never trusting a bare order ID.","assets_banners_color":"498275","last_updated":"2026-09-22 14:35:24","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/paypal.me\/htrxuan\/20","header_plugin_uri":"https:\/\/hdwebmobile.com\/plugins\/hdwebmobile-invoices-packing-slips\/","header_author_uri":"https:\/\/hdwebmobile.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":56,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"htrxuan","date":"2026-09-22 14:35:24","revision":3707579}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3707575,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3707575,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3707575,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3707575,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3707575,"resolution":"1","location":"assets","locale":"","width":1600,"height":1000},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3707575,"resolution":"2","location":"assets","locale":"","width":1600,"height":1000},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3707575,"resolution":"3","location":"assets","locale":"","width":1600,"height":1000}},"screenshots":{"1":"The settings page: business name, address, tax ID, and footer note.","2":"A generated invoice, with line items, options, totals, and payment method.","3":"The \"Documents\" links on the admin Edit Order screen."}},"plugin_section":[],"plugin_tags":[12480,282083,51080,1764,286],"plugin_category":[45,50],"plugin_contributors":[254181],"plugin_business_model":[],"class_list":["post-370132","plugin","type-plugin","status-publish","hentry","plugin_tags-invoice","plugin_tags-order-documents","plugin_tags-packing-slip","plugin_tags-pdf","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-media","plugin_contributors-htrxuan","plugin_committers-htrxuan"],"banners":{"banner":"https:\/\/ps.w.org\/hdwebmobile-invoices-packing-slips\/assets\/banner-772x250.png?rev=3707575","banner_2x":"https:\/\/ps.w.org\/hdwebmobile-invoices-packing-slips\/assets\/banner-1544x500.png?rev=3707575","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/hdwebmobile-invoices-packing-slips\/assets\/icon-128x128.png?rev=3707575","icon_2x":"https:\/\/ps.w.org\/hdwebmobile-invoices-packing-slips\/assets\/icon-256x256.png?rev=3707575","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/hdwebmobile-invoices-packing-slips\/assets\/screenshot-1.png?rev=3707575","caption":"The settings page: business name, address, tax ID, and footer note."},{"src":"https:\/\/ps.w.org\/hdwebmobile-invoices-packing-slips\/assets\/screenshot-2.png?rev=3707575","caption":"A generated invoice, with line items, options, totals, and payment method."},{"src":"https:\/\/ps.w.org\/hdwebmobile-invoices-packing-slips\/assets\/screenshot-3.png?rev=3707575","caption":"The \"Documents\" links on the admin Edit Order screen."}],"raw_content":"<!--section=description-->\n<p>HDWebmobile Invoices &amp; Packing Slips adds a clean, print-ready invoice and packing slip to every WooCommerce order. Customers get a \"Download Invoice\" and \"Download Packing Slip\" link on their order page, and admins get matching \"Print\" links on the Edit Order screen. Both open a standalone, print-optimized page -- click Print, choose \"Save as PDF\", and you have your PDF. No PDF library is bundled with this plugin, which keeps it small and avoids an entire category of library-specific bugs.<\/p>\n\n<p>Every document request is checked before anything is shown -- this plugin never trusts an order ID alone. A request is authorized as the order's owner, an administrator, or (for guest orders) the order's own real secret key, using the same <code>hash_equals()<\/code>-based check WooCommerce's own core checkout pages use for guest order access.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li>On-demand Invoice (full line items, prices, totals, tax, payment method) and Packing Slip (shipping address and item quantities only, no prices) documents<\/li>\n<li>Print-ready HTML that becomes a PDF via the browser's own Print dialog -- no bundled PDF library, no extra plugin weight<\/li>\n<li>Upload your own logo and pick an accent color -- shown on every document, using the WordPress media library and color picker you already know<\/li>\n<li>Design fully overridable by a theme developer: copy the plugin's template to yourtheme\/woocommerce\/hdinv\/document.php, the same override convention WooCommerce itself uses<\/li>\n<li>\"Download Invoice\" \/ \"Download Packing Slip\" links on the customer's My Account order page; matching \"Print\" links on the admin Edit Order screen<\/li>\n<li>Every document request is authorization-checked -- order owner, administrator, or a valid order key -- never a bare guessable order ID<\/li>\n<li>Shows any per-item options\/customizations already attached to the order (e.g. from a product-options plugin) alongside each line item<\/li>\n<li>Works for guest and logged-in customers alike<\/li>\n<\/ul>\n\n<h4>Limitations (please read before installing)<\/h4>\n\n<ul>\n<li>No automatic email attachment -- documents are generated on demand, not auto-attached to WooCommerce's outgoing order emails, in this version<\/li>\n<li>No separate sequential invoice-numbering series -- the document uses the WooCommerce order number as its reference; some jurisdictions require a distinct, gapless invoice number for tax compliance, which this version doesn't provide<\/li>\n<li>No bulk\/multi-order printing -- one order, one document, at a time<\/li>\n<\/ul>\n\n<h3>How to Use<\/h3>\n\n<h4>1. Set your business details<\/h4>\n\n<p>Go to <strong>WooCommerce &gt; Invoices &amp; Packing Slips<\/strong> (Screenshot 1) and fill in your business name, address, tax\/VAT ID, and a footer note. Optionally upload a logo and pick an accent color -- these appear in the header, footer, and headings of every generated document.<\/p>\n\n<h4>2. Customers download their own documents<\/h4>\n\n<p>On the My Account order view page, customers see \"Download Invoice\" and \"Download Packing Slip\" links. Clicking one opens a clean, standalone document (Screenshot 2) with a \"Print \/ Save as PDF\" button.<\/p>\n\n<h4>3. Admins print from the order screen<\/h4>\n\n<p>On the admin Edit Order screen, a \"Documents\" section offers the same \"Print Invoice\" and \"Print Packing Slip\" links (Screenshot 3), authorized by your admin capability rather than an order key.<\/p>\n\n<h4>4. Save as an actual PDF<\/h4>\n\n<p>Click \"Print \/ Save as PDF\" on the document page, then choose \"Save as PDF\" (or \"Microsoft Print to PDF\", depending on your OS\/browser) in the print dialog.<\/p>\n\n<h4>5. Full design control for developers (optional)<\/h4>\n\n<p>For complete visual control beyond the logo and accent color, a theme developer can copy <code>templates\/hdinv\/document.php<\/code> from the plugin to <code>yourtheme\/woocommerce\/hdinv\/document.php<\/code> and edit it freely -- WooCommerce's own theme-override mechanism, so your custom version is never overwritten by a plugin update.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/hdwebmobile-invoices-packing-slips<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress. WooCommerce must already be installed and active.<\/li>\n<li>Go to <strong>WooCommerce &gt; Invoices &amp; Packing Slips<\/strong> to set your business name, address, tax\/VAT ID, and invoice footer note.<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: on-demand invoice and packing-slip documents, print-to-PDF with no bundled library, server-side authorization on every document request (order owner, admin, or a valid order key), logo and accent-color customization, theme-overridable template.<\/li>\n<\/ul>","raw_excerpt":"On-demand invoice and packing-slip documents for WooCommerce orders, printable to PDF from any browser -- no bundled PDF library.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/370132","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=370132"}],"author":[{"embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/htrxuan"}],"wp:attachment":[{"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=370132"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=370132"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=370132"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=370132"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=370132"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=370132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}