{"id":305936,"date":"2026-07-28T11:46:19","date_gmt":"2026-07-28T11:46:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/invoice-print-for-woocommerce\/"},"modified":"2026-09-28T04:36:08","modified_gmt":"2026-09-28T04:36:08","slug":"invofast-invoice-printer-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/su.wordpress.org\/plugins\/invofast-invoice-printer-for-woocommerce\/","author":11358617,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.28.0","stable_tag":"1.28.0","tested":"7.1.2","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Invofast Invoice Printer for WooCommerce","header_author":"Ahmed Yahia","header_description":"Fast, printable invoices for WooCommerce. A4 and 80mm thermal layouts, Arabic \/ RTL ready, with optional product images, customer note, ACF, Variation Swatches and Kuwait Delivery Manager integrations. WooCommerce is a trademark of Automattic; this plugin is not affiliated with or endorsed by Automattic.","assets_banners_color":"293977","last_updated":"2026-09-28 04:36:08","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/profiles.wordpress.org\/softx\/","rating":0,"author_block_rating":0,"active_installs":20,"downloads":391,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.10.0":{"tag":"1.10.0","author":"softx","date":"2026-09-26 09:35:41","revision":3714043},"1.11.0":{"tag":"1.11.0","author":"softx","date":"2026-09-27 11:10:55","revision":3715375},"1.11.1":{"tag":"1.11.1","author":"softx","date":"2026-09-27 12:03:49","revision":3715448},"1.12.0":{"tag":"1.12.0","author":"softx","date":"2026-09-27 13:39:44","revision":3715555},"1.13.0":{"tag":"1.13.0","author":"softx","date":"2026-09-27 17:05:56","revision":3715770},"1.14.0":{"tag":"1.14.0","author":"softx","date":"2026-09-27 17:40:09","revision":3715814},"1.15.0":{"tag":"1.15.0","author":"softx","date":"2026-09-27 18:02:28","revision":3715920},"1.16.0":{"tag":"1.16.0","author":"softx","date":"2026-09-27 18:24:37","revision":3715955},"1.19.0":{"tag":"1.19.0","author":"softx","date":"2026-09-28 02:44:09","revision":3716206},"1.27.0":{"tag":"1.27.0","author":"softx","date":"2026-09-28 04:20:04","revision":3716282},"1.28.0":{"tag":"1.28.0","author":"softx","date":"2026-09-28 04:36:08","revision":3716293},"1.8.0":{"tag":"1.8.0","author":"softx","date":"2026-07-28 11:47:28","revision":3625832}},"upgrade_notice":{"1.8.0":"<p>Plugin renamed to Invofast Invoice Printer for WooCommerce. All settings carry over. If your theme overrides the invoice templates, rename the override folder to <code>invofast-invoice-printer-for-woocommerce<\/code>.<\/p>","1.7.6":"<p>Plugin Check compliance fixes \u2014 no user-facing changes. Recommended for everyone.<\/p>","1.7.5":"<p>Internal text domain renamed to match the wp.org plugin slug. No user-facing changes.<\/p>","1.7.4":"<p>The &quot;Show Delivery Charge&quot; option now defaults to enabled. Existing installs keep their current value.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3715386,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3715386,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3715386,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3715386,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3715386,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.10.0","1.11.0","1.11.1","1.12.0","1.13.0","1.14.0","1.15.0","1.16.0","1.19.0","1.27.0","1.28.0","1.8.0"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3625830,"resolution":"1","location":"assets","locale":"","width":1573,"height":3297},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3625830,"resolution":"2","location":"assets","locale":"","width":938,"height":1344}},"screenshots":{"1":"A4 invoice with logo, structured address, and itemized totals.","2":"80mm thermal receipt layout."}},"plugin_section":[],"plugin_tags":[12480,3153,5811,60774,286],"plugin_category":[45],"plugin_contributors":[273601],"plugin_business_model":[],"class_list":["post-305936","plugin","type-plugin","status-publish","hentry","plugin_tags-invoice","plugin_tags-print","plugin_tags-rtl","plugin_tags-thermal","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-softx","plugin_committers-softx"],"banners":{"banner":"https:\/\/ps.w.org\/invofast-invoice-printer-for-woocommerce\/assets\/banner-772x250.png?rev=3715386","banner_2x":"https:\/\/ps.w.org\/invofast-invoice-printer-for-woocommerce\/assets\/banner-1544x500.png?rev=3715386","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/invofast-invoice-printer-for-woocommerce\/assets\/icon.svg?rev=3715386","icon":"https:\/\/ps.w.org\/invofast-invoice-printer-for-woocommerce\/assets\/icon.svg?rev=3715386","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/invofast-invoice-printer-for-woocommerce\/assets\/screenshot-1.jpg?rev=3625830","caption":"A4 invoice with logo, structured address, and itemized totals."},{"src":"https:\/\/ps.w.org\/invofast-invoice-printer-for-woocommerce\/assets\/screenshot-2.png?rev=3625830","caption":"80mm thermal receipt layout."}],"raw_content":"<!--section=description-->\n<p>Invofast Invoice Printer for WooCommerce gives shop owners a clean, fast way to print order invoices straight from the WooCommerce admin \u2014 without paid extensions, account sign-ups, or third-party services.<\/p>\n\n<p>Note: WooCommerce is a trademark of Automattic Inc. This plugin is an independent product and is not affiliated with, endorsed, or sponsored by Automattic or WooCommerce.<\/p>\n\n<h4>Highlights<\/h4>\n\n<ul>\n<li><strong>A4 and 80mm thermal layouts<\/strong> \u2014 pick a default in settings and switch per print from the toolbar.<\/li>\n<li><strong>Arabic \/ RTL ready<\/strong> \u2014 the printed invoice and the admin settings page both auto-detect language from the WordPress locale. Set a fixed language per site if you prefer.<\/li>\n<li><strong>Bulk print<\/strong> \u2014 select multiple orders in the orders list and print them as one job, one invoice per page.<\/li>\n<li><strong>Print count tracking<\/strong> \u2014 every print is logged on the order so you can see at a glance how many copies were already printed.<\/li>\n<li><strong>HPOS compatible<\/strong> \u2014 works with WooCommerce High-Performance Order Storage.<\/li>\n<\/ul>\n\n<h4>What appears on the invoice<\/h4>\n\n<ul>\n<li>Store logo (size and position configurable), store name, address.<\/li>\n<li>Order number, date, \"Paid with\" payment method.<\/li>\n<li>Customer billing or shipping address \u2014 whichever you set as primary \u2014 with every field labeled (Name, Area, Block, Street, House, Postcode, etc.).<\/li>\n<li>Optional customer note inline with the delivery info.<\/li>\n<li>Optional product image column.<\/li>\n<li>Order items with variations, addons, and any visible item meta.<\/li>\n<li>Subtotal, optional shipping line, total.<\/li>\n<\/ul>\n\n<h4>Optional integrations (auto-detected)<\/h4>\n\n<ul>\n<li><strong>Kuwait Delivery Manager<\/strong> \u2014 pulls structured delivery fields (City, Area, Block, Jaddah, House, Delivery Type) and renders them in a labeled list.<\/li>\n<li><strong>Order Delivery Date Pro \/ Lite for WooCommerce<\/strong> \u2014 adds the chosen delivery date, time slot, and any additional checkout fields, using the labels the admin configured in the plugin settings.<\/li>\n<li><strong>Woo Variation Swatches<\/strong> \u2014 variation choices the customer made on swatches (color, size, etc.) appear under each product line automatically.<\/li>\n<li><strong>Advanced Custom Fields (free or Pro)<\/strong> \u2014 order-level ACF fields the customer or admin populated render in a dedicated \"Additional Information\" block. Common field types are formatted automatically: text, choice, image, file, date, link, post object, user, taxonomy, group, repeater.<\/li>\n<li><strong>Woo Extra Product Options<\/strong> \u2014 addon selections the customer made at checkout appear under each product line.<\/li>\n<li><strong>Custom checkout fields<\/strong> \u2014 fields added via the WooCommerce block-checkout Additional Checkout Fields API, Checkout Field Editor for WooCommerce (ThemeHigh), or Flexible Checkout Fields (WP Desk) print in the \"Additional Information\" block.<\/li>\n<\/ul>\n\n<p>If a given plugin is not active, nothing extra is rendered \u2014 no settings to clutter, no errors.<\/p>\n\n<h4>Settings<\/h4>\n\n<p>All in one screen at <strong>WooCommerce \u2192 Invoice Print<\/strong>:<\/p>\n\n<ul>\n<li>Enable \/ disable<\/li>\n<li>Default paper type (A4 \/ Thermal)<\/li>\n<li>Default invoice language (Auto \/ Arabic \/ English)<\/li>\n<li>RTL mode<\/li>\n<li>Store logo, logo size (Small \/ Medium \/ Large \/ Extra Large), logo position (Start \/ Center \/ End)<\/li>\n<li>Show \/ hide store info, customer phone, customer note, product image, delivery charge line<\/li>\n<li>Shipping Invoice Discount (%) \u2014 enables a separate \"Print Shipping Invoice\" button that prints discounted product prices only<\/li>\n<li>Address priority (Billing \/ Shipping)<\/li>\n<li>Custom footer note<\/li>\n<\/ul>\n\n<h4>Languages<\/h4>\n\n<p>The plugin is fully translatable: every string goes through standard WordPress internationalization, so community translations from translate.wordpress.org load automatically for any language. Arabic ships bundled with the plugin. The printed invoice has its own language setting \u2014 independent of the site language, selectable from any installed language \u2014 and can be switched per print from the toolbar. RTL languages (Arabic, Hebrew, Persian, Urdu, \u2026) render right-to-left automatically.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install through Plugins \u2192 Add New.<\/li>\n<li>Activate.<\/li>\n<li>Go to <strong>WooCommerce \u2192 Invoice Print<\/strong> and configure the logo, default paper type, and language.<\/li>\n<li>Open any order \u2014 there's a \"Print Invoice\" button in the side meta box and in the orders list row actions.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20a%20paid%20license%20or%20external%20service%3F\"><h3>Does this plugin require a paid license or external service?<\/h3><\/dt>\n<dd><p>No. Everything runs locally on your site. No API keys, no external requests.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20hpos%20%28high-performance%20order%20storage%29%3F\"><h3>Does it work with HPOS (High-Performance Order Storage)?<\/h3><\/dt>\n<dd><p>Yes. The plugin declares HPOS compatibility and reads order data through WooCommerce's order CRUD methods, which work on both the legacy posts table and the new orders tables.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20invoice%20template%3F\"><h3>Can I customize the invoice template?<\/h3><\/dt>\n<dd><p>Yes. Copy <code>templates\/invoice-template.php<\/code> (or <code>templates\/invoice-bulk-template.php<\/code>) into your theme at <code>your-theme\/invofast-invoice-printer-for-woocommerce\/invoice-template.php<\/code> and the plugin will use that copy instead.<\/p><\/dd>\n<dt id=\"how%20do%20i%20print%20to%20a%20thermal%20receipt%20printer%3F\"><h3>How do I print to a thermal receipt printer?<\/h3><\/dt>\n<dd><p>Set the default paper type to \"Thermal\" in settings, then print from your browser to your 80mm thermal printer. Most browsers respect the embedded paper-size CSS.<\/p><\/dd>\n<dt id=\"does%20the%20customer%27s%20selected%20variation%20%28color%2C%20size%29%20show%20up%3F\"><h3>Does the customer's selected variation (Color, Size) show up?<\/h3><\/dt>\n<dd><p>Yes \u2014 variation attributes are visible item meta and are automatically rendered under each product line. This works for plain WooCommerce variations as well as Woo Variation Swatches.<\/p><\/dd>\n<dt id=\"where%20do%20acf%20fields%20show%20up%20on%20the%20invoice%3F\"><h3>Where do ACF fields show up on the invoice?<\/h3><\/dt>\n<dd><p>In an \"Additional Information\" block between the address and the items table \u2014 but only if ACF is active and at least one field has a value.<\/p><\/dd>\n<dt id=\"i%20already%20had%20this%20plugin%20installed%20under%20a%20different%20name%2C%20will%20my%20settings%20carry%20over%3F\"><h3>I already had this plugin installed under a different name, will my settings carry over?<\/h3><\/dt>\n<dd><p>Yes. The internal option keys (<code>wcip_*<\/code>) have not changed across versions, so all settings persist on upgrade.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.28.0<\/h4>\n\n<ul>\n<li>New: a \"CSS classes reference\" table inside the builder's Custom CSS box and on the settings screen, so you can discover what to target when styling.<\/li>\n<li>New: the design starts with real default values, and the Print Station page shows a friendly enable-it notice instead of a permissions error when the feature is off.<\/li>\n<li>Fixed: settings template\/CSS editors render full width; invalid invoice tokens return proper 403\/404 statuses.<\/li>\n<\/ul>\n\n<h4>1.27.0<\/h4>\n\n<ul>\n<li>New: edit any checkout field's printed label per language (Arabic\/English) right from the builder's fields panel, with reset-to-original; overrides apply by invoice language and travel with export\/import.<\/li>\n<li>New: per-block outer spacing, inner padding, and a block border (color + thickness) in the style panel; a \"Space between blocks\" control; and a Custom CSS box inside the builder with live preview.<\/li>\n<li>New: printer icon on the Print button (all layouts, RTL-checked).<\/li>\n<li>Fixed: design options were lost when starting from an empty design; label editors opening by default; invisible checkbox check marks.<\/li>\n<\/ul>\n\n<h4>1.26.0<\/h4>\n\n<ul>\n<li>New: Overall Design panel in the Template Builder \u2014 pick a color for all invoice lines (dividers, header rule, table borders) and add an optional page frame with color, thickness and a corner-rounding slider. Saved with the layout, live in the draft preview, and carried through template export\/import.<\/li>\n<li>Improved: per-block color now also recolors individual divider blocks; compact checkboxes for block options.<\/li>\n<\/ul>\n\n<h4>1.25.0<\/h4>\n\n<ul>\n<li>New: the PAID \/ UNPAID payment mark is now a corner stamp (bordered, rotated, top-left) instead of a page-wide watermark.<\/li>\n<li>New: \"Currency Position on Invoices\" setting \u2014 place the currency symbol left\/right of amounts on printed documents only, without touching the store setting.<\/li>\n<li>New: Template Builder \u2014 Undo (Ctrl+Z), Reset layout, checkout-fields search with section grouping, an editable printed label on every field block, and Store Info options to hide the address or CR\/VAT line.<\/li>\n<li>Fixed: buttons and dropdowns inside builder blocks could swallow clicks in some browsers (blocks are now draggable from the card\/handle only); removed a stray \"Checkout Field\" chip from the palette.<\/li>\n<\/ul>\n\n<h4>1.24.0<\/h4>\n\n<ul>\n<li>New: Checkout Fields panel in the Template Builder \u2014 lists every field currently registered on your checkout (core, classic checkout-field plugins, and block-checkout Additional Checkout Fields); click or drag to print any of them, with a refresh button that picks up newly added fields. Empty fields are hidden on print.<\/li>\n<li>New: the builder's live preview now shows the design as you build it, before saving \u2014 changes preview automatically within a second, without touching the saved template.<\/li>\n<li>New: template export \/ import carries the visual builder layout, so a design stays editable in the builder after importing it on another site.<\/li>\n<li>Improved: builder column layouts collapse to one column on thermal (80mm) paper; mobile overflow fixed; fields-panel header aligned.<\/li>\n<\/ul>\n\n<h4>1.23.0<\/h4>\n\n<ul>\n<li>Improved: Template Builder redesign \u2014 clean white cards, monochrome shape icons (Dashicons) for every block, modern switch toggles and rounded checkboxes (also on the settings screen), styled save buttons, custom-chevron dropdowns, and circular hover close buttons. Fully RTL-aware, with complete Arabic translations for every builder string.<\/li>\n<li>Improved: easier building \u2014 move up\/down and duplicate buttons on every block, a visual column-layout picker, an unsaved-changes indicator with a leave-page warning, and an empty-canvas hint.<\/li>\n<\/ul>\n\n<h4>1.22.0<\/h4>\n\n<ul>\n<li>New: drag &amp; drop Template Builder \u2014 drag blocks from the palette straight onto the canvas, drop them into a new Columns block (50\/50, 33\/67, 67\/33 or three columns), and style every block from its gear panel (alignment, text size, text color, background). New Spacer block. All layout and styles are sanitized server-side and print correctly.<\/li>\n<\/ul>\n\n<h4>1.21.0<\/h4>\n\n<ul>\n<li>New: Hijri (Umm al-Qura) date option \u2014 shown next to the order date, with localized month names following the invoice language, plus a [wcip_date_hijri] shortcode for custom templates.<\/li>\n<li>New: payment-status watermark option \u2014 a large faded PAID (green) \/ UNPAID (red) stamp across the invoice. Cash-on-Delivery orders count as unpaid until completed, so the courier can tell at a glance whether to collect; wcip_watermark_is_paid filter for custom gateways.<\/li>\n<\/ul>\n\n<h4>1.20.0<\/h4>\n\n<ul>\n<li>New: smart bulk printing \u2014 sort the bulk print page by area (Kuwait checkout fields, falling back to city), city, shipping method, or payment method from a toolbar dropdown. Each group starts with a separator sheet (group name, order count, order numbers) on its own page, so the printed stack splits per courier at a glance.<\/li>\n<\/ul>\n\n<h4>1.19.0<\/h4>\n\n<ul>\n<li>New: optional \"View your invoice\" button in customer order emails \u2014 links to the signed customer invoice page (same link as the WhatsApp button and order notes). Customer emails only; plain-text emails get the raw link; the button follows the accent color when enabled.<\/li>\n<\/ul>\n\n<h4>1.18.0<\/h4>\n\n<ul>\n<li>New: items pagination shortcodes for multi-page custom templates \u2014 [wcip_items_rows offset=\"\" limit=\"\"] splits item rows across pages, and [wcip_if_items more_than=\"\"]...[\/wcip_if_items] (or at_most=\"\") shows a block only for the matching item count, e.g. a styled \"products continuation\" page that appears only when the order exceeds the first page.<\/li>\n<\/ul>\n\n<h4>1.17.0<\/h4>\n\n<ul>\n<li>New template shortcodes for pixel-exact custom designs: [wcip_field key=\"\" from=\"billing|shipping\"] (any single address\/contact field, including Kuwait fields), [wcip_items_rows] (bare item rows to build your own table), [wcip_subtotal], [wcip_shipping_total], [wcip_grand_total], and [wcip_shipping_method].<\/li>\n<\/ul>\n\n<h4>1.16.0<\/h4>\n\n<ul>\n<li>New: visual Template Builder (WooCommerce \u2192 Template Builder) \u2014 assemble the invoice from blocks (logo, store info, info grid, address, items table, totals, QR codes, text\/HTML blocks, \u2026), drag to reorder, with a live preview pane that refreshes on every save. Saving generates the shortcode template into the Custom Template editor for further fine-tuning.<\/li>\n<li>New: [wcip_label key=\"\"] shortcode \u2014 any translated label from the plugin's string table.<\/li>\n<li>New: a Preview button in the Custom Template settings renders the latest order without counting as a print.<\/li>\n<li>New: template import \/ export \u2014 download the custom template + CSS as one JSON file and upload it on any site (own section under the settings). Imports are validated and sanitized the same way as the editor.<\/li>\n<\/ul>\n\n<h4>1.15.0<\/h4>\n\n<ul>\n<li>New: Custom Template builder \u2014 design the printed documents yourself with HTML + shortcodes from the settings screen. Every invoice element ships as a shortcode ([wcip_items_table], [wcip_totals], [wcip_address], [wcip_logo], QR codes, \u2026), [wcip_meta key=\"\"] prints any order meta or custom checkout field, and shortcodes from other plugins render too. Includes a custom-CSS box, a shortcode cheat-sheet, and a copyable starter template.<\/li>\n<li>The custom template applies to all three document types; the items table and totals adapt automatically (the packing slip drops prices). Templates are sanitized with WordPress kses on save and render; wcip_* shortcodes output nothing outside an invoice render.<\/li>\n<\/ul>\n\n<h4>1.14.0<\/h4>\n\n<ul>\n<li>New: Status After First Print \u2014 optionally move an order to a status of your choice (e.g. Processing) the first time it is printed from the dashboard or the print station. Public-link views never change the status; re-prints never change it again.<\/li>\n<li>New: Print Report \u2014 a WooCommerce \u2192 Print Report screen showing how many orders were printed today, how many recent orders are printed in total, and a list of unprinted recent orders with one-click print buttons.<\/li>\n<li>New: Order QR code \u2014 optionally print a QR of the order number on every document, so the warehouse can scan the slip instead of typing the number.<\/li>\n<li>New: Saudi e-invoice (ZATCA) QR \u2014 print the phase-1 TLV QR (seller name, VAT number, timestamp, total, VAT amount) on standard invoices. QR codes are rendered as sharp inline SVG via the bundled PHP QR Code library (LGPL); no GD required.<\/li>\n<li>New: store identity fields \u2014 optional Commercial Registration number, VAT number, and branch name printed under the store name.<\/li>\n<li>New: invoice accent color \u2014 replace the default blue on the header line, items-table header, and print button.<\/li>\n<li>New: Arabic footer note \u2014 a separate footer used when the invoice prints in Arabic; other languages keep the default note (wcip_footer_note filter for more languages).<\/li>\n<li>New: outgoing webhooks \u2014 POST a signed JSON payload (X-Invofast-Signature, HMAC SHA-256) with order data and signed invoice links to any URL, on first print and\/or on every status change. Sent via wp_safe_remote_post, so private-network targets are refused.<\/li>\n<\/ul>\n\n<h4>1.13.0<\/h4>\n\n<ul>\n<li>New: Packing Slip \u2014 a third print button on the order screen (also available for the auto-print station) that prints the order with products, quantities, and address but no prices at all. Ideal for warehouse and packing stations.<\/li>\n<li>New: Send via WhatsApp \u2014 a button on the order screen that opens a WhatsApp chat with the customer's billing phone, pre-filled with a message carrying the signed invoice link. The phone number is converted to international format automatically; the message is customizable via the wcip_whatsapp_message filter.<\/li>\n<li>New: Sequential invoice numbering \u2014 optional accounting-style numbers (prefix, starting number, digit padding, optional yearly reset like INV-2026-0001). The number is assigned atomically on the order's first print, never changes afterwards, and the WooCommerce order number stays printed on its own line.<\/li>\n<\/ul>\n\n<h4>1.12.0<\/h4>\n\n<ul>\n<li>Multi-language support: all strings converted to standard WordPress internationalization (English sources), so the plugin is translatable into any language via translate.wordpress.org. Arabic ships bundled in \/languages.<\/li>\n<li>The invoice language setting now offers every language installed on the site (not just Arabic\/English); the invoice renders via locale switching, RTL languages are detected automatically, and the toolbar language button cycles through the available languages.<\/li>\n<li>Field coverage fix: the checkout-fields collector now skips only the meta keys the delivery-address block actually printed in the current invoice \u2014 a custom field the address block could not resolve (e.g. a Region field under an unrecognized key) now always appears in Additional Information instead of being lost.<\/li>\n<\/ul>\n\n<h4>1.11.1<\/h4>\n\n<ul>\n<li>Full compatibility with Checkout Field Editor for WooCommerce Pro: custom fields are now read from the assembled checkout form itself (the woocommerce_checkout_fields pipeline), so every field the merchant adds \u2014 including fields in Pro custom sections \u2014 prints on the invoice, whatever plugin or version created it.<\/li>\n<li>Password, hidden, and heading-type fields never print; fields already shown in the delivery-address block or by the KDM \/ Order Delivery Date integrations are excluded, and a <code>wcip_checkout_fields_skip_keys<\/code> filter allows hiding specific fields.<\/li>\n<li>The Area row in the delivery address now also reads custom checkout fields (<code>billing_area<\/code> \/ <code>billing_region<\/code>), combined with the city when both exist.<\/li>\n<\/ul>\n\n<h4>1.11.0<\/h4>\n\n<ul>\n<li>New: custom checkout fields print on the invoice in the \"Additional Information\" block \u2014 supports the WooCommerce block-checkout Additional Checkout Fields API, Checkout Field Editor for WooCommerce (ThemeHigh), and Flexible Checkout Fields (WP Desk). A <code>wcip_checkout_fields<\/code> filter lets other plugins add their own rows.<\/li>\n<li>Fix: Shop Managers (and any role with the manage_woocommerce capability) got \"you are not allowed\" when saving the plugin settings \u2014 WordPress requires manage_options on options.php unless the plugin declares otherwise. Saving now uses the same capability as viewing the page.<\/li>\n<\/ul>\n\n<h4>1.10.0<\/h4>\n\n<ul>\n<li>New: Print links in order notes \u2014 when enabled, every new order gets a private note with signed invoice links (standard + shipping invoice when the shipping discount is on). The links work without logging in, so they open straight from the official WooCommerce mobile app.<\/li>\n<li>New: Auto-Print Station \u2014 a WooCommerce \u2192 Print Station screen you keep open on the shop computer. Orders entering the configured statuses are queued server-side and printed automatically (invoice type, paper, and polling interval configurable). Run Chrome with --kiosk-printing for fully silent printing; queued orders are caught up when the station reopens.<\/li>\n<li>Signed public links are bound to the order and invoice type via HMAC; regenerating the site secret (deleting the wcip_link_secret option) invalidates all previously shared links.<\/li>\n<\/ul>\n\n<h4>1.9.0<\/h4>\n\n<ul>\n<li>New: Shipping Invoice \u2014 a \"Print Shipping Invoice\" button on the order screen (appears when a discount is configured) prints a copy with all product and fee prices reduced by the \"Shipping Invoice Discount (%)\" set in the plugin settings. Fees are printed as regular lines inside the items table. Only the discounted prices are printed; the delivery charge is unchanged and the totals are recalculated to match.<\/li>\n<li>The shipping copy shows a screen-only badge in the toolbar so it is never confused with the standard invoice; the badge is not printed.<\/li>\n<li>If your theme overrides <code>invoice-template.php<\/code>, re-copy it from the plugin to keep the paper\/language toolbar working on the shipping copy.<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Plugin renamed to \"Invofast Invoice Printer for WooCommerce\" (slug and text domain: <code>invofast-invoice-printer-for-woocommerce<\/code>). Settings and option keys are unchanged, so everything carries over.<\/li>\n<li>All remaining inline <code>&lt;style&gt;<\/code> blocks (invoice templates, order meta box, orders list) moved into stylesheets loaded via <code>wp_enqueue_style()<\/code> \/ <code>wp_print_styles()<\/code>.<\/li>\n<li>Added the <code>Requires Plugins: woocommerce<\/code> header so WordPress 6.5+ enforces the WooCommerce dependency automatically.<\/li>\n<li>Theme template override path is now <code>your-theme\/invofast-invoice-printer-for-woocommerce\/<\/code>.<\/li>\n<\/ul>\n\n<h4>1.7.6<\/h4>\n\n<ul>\n<li>Plugin Check (PCP) compliance: print stylesheet now registered\/enqueued via <code>wp_enqueue_style()<\/code> instead of inline <code>&lt;link&gt;<\/code>.<\/li>\n<li>Fixed unescaped print-count output in the order meta box.<\/li>\n<li>Removed deprecated <code>load_plugin_textdomain()<\/code> call (WP 4.6+ loads translations automatically for wp.org-hosted plugins).<\/li>\n<li>Removed unused <code>Domain Path<\/code> header.<\/li>\n<li>Bumped tested-up-to to WordPress 6.9.<\/li>\n<\/ul>\n\n<h4>1.7.5<\/h4>\n\n<ul>\n<li>Text domain renamed to <code>invofast-invoice-printer-for-woocommerce<\/code> to match the wp.org plugin slug.<\/li>\n<li>Theme override path renamed to <code>your-theme\/invofast-invoice-printer-for-woocommerce\/<\/code>.<\/li>\n<\/ul>\n\n<h4>1.7.4<\/h4>\n\n<ul>\n<li>Default for \"Show Delivery Charge\" flipped to enabled.<\/li>\n<li>Description copy updated to reflect the new default.<\/li>\n<\/ul>\n\n<h4>1.7.3<\/h4>\n\n<ul>\n<li>Strip WooCommerce's \"via {Shipping Method}\" annotation from the shipping line \u2014 only the price is printed.<\/li>\n<\/ul>\n\n<h4>1.7.2<\/h4>\n\n<ul>\n<li>Replace \"Payment method\" label with \"Paid with\" \/ \"\u062a\u0645 \u0627\u0644\u062f\u0641\u0639 \u0628\u0640\".<\/li>\n<\/ul>\n\n<h4>1.7.1<\/h4>\n\n<ul>\n<li>New setting: Show \/ hide the delivery charge line in the totals table.<\/li>\n<li>Payment method line in totals rendered in smaller, lighter type.<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>Advanced Custom Fields integration: order-level fields render automatically in an \"Additional Information\" block.<\/li>\n<li>Helper handles common ACF types: text, choice, image, file, link, post object, user, taxonomy, group, repeater, google_map.<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Per-item meta (Woo Extra Product Options, Product Add-Ons, variation attributes, Woo Variation Swatches) renders under each product name.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Logo size presets (Small \/ Medium \/ Large \/ Extra Large) and logo position (Start \/ Center \/ End), RTL-aware.<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Default for \"Show Product Image\" flipped to enabled.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>New setting: Show product image column in the items table. Variation image preferred, parent image as fallback.<\/li>\n<\/ul>\n\n<h4>1.3.4<\/h4>\n\n<ul>\n<li>Address builder picks up Kuwait Delivery Manager meta keys (<code>_kdm_house_no<\/code>, <code>_kdm_block_no<\/code>, <code>_kdm_jaddah<\/code>, <code>_kdm_area_name<\/code>) when no structured delivery fields are returned.<\/li>\n<\/ul>\n\n<h4>1.3.3<\/h4>\n\n<ul>\n<li>Every line in the address block is now labeled (Name, Area, Block, Street, House, Postcode, Country, etc.).<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Order Delivery Date Pro \/ Lite integration: delivery date, time slot, and additional checkout fields appear with the labels the admin configured.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Customer name, phone, and email moved into the meta column beside the invoice number.<\/li>\n<li>Customer note moved inline with the delivery information.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Bilingual admin settings page \u2014 follows the user's WordPress locale.<\/li>\n<li>Address line 1 and line 2 always included on the invoice when supplied.<\/li>\n<li>Delivery fields respect the configured address priority (billing vs shipping).<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>\"Show Customer Note\" defaults to enabled on new installs.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Initial public release with HPOS compatibility, A4 + thermal layouts, RTL support.<\/li>\n<\/ul>","raw_excerpt":"Fast, printable invoices for WooCommerce. A4 and 80mm thermal layouts, Arabic \/ RTL ready, with bilingual admin UI.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/305936","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=305936"}],"author":[{"embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/softx"}],"wp:attachment":[{"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=305936"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=305936"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=305936"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=305936"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=305936"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=305936"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}