Invofast Invoice Printer for WooCommerce

Description

Invofast Invoice Printer for WooCommerce gives shop owners a clean, fast way to print order invoices straight from the WooCommerce admin — without paid extensions, account sign-ups, or third-party services.

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.

Highlights

  • A4 and 80mm thermal layouts — pick a default in settings and switch per print from the toolbar.
  • Arabic / RTL ready — 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.
  • Bulk print — select multiple orders in the orders list and print them as one job, one invoice per page.
  • Print count tracking — every print is logged on the order so you can see at a glance how many copies were already printed.
  • HPOS compatible — works with WooCommerce High-Performance Order Storage.

What appears on the invoice

  • Store logo (size and position configurable), store name, address.
  • Order number, date, “Paid with” payment method.
  • Customer billing or shipping address — whichever you set as primary — with every field labeled (Name, Area, Block, Street, House, Postcode, etc.).
  • Optional customer note inline with the delivery info.
  • Optional product image column.
  • Order items with variations, addons, and any visible item meta.
  • Subtotal, optional shipping line, total.

Optional integrations (auto-detected)

  • Kuwait Delivery Manager — pulls structured delivery fields (City, Area, Block, Jaddah, House, Delivery Type) and renders them in a labeled list.
  • Order Delivery Date Pro / Lite for WooCommerce — adds the chosen delivery date, time slot, and any additional checkout fields, using the labels the admin configured in the plugin settings.
  • Woo Variation Swatches — variation choices the customer made on swatches (color, size, etc.) appear under each product line automatically.
  • Advanced Custom Fields (free or Pro) — 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.
  • Woo Extra Product Options — addon selections the customer made at checkout appear under each product line.
  • Custom checkout fields — 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.

If a given plugin is not active, nothing extra is rendered — no settings to clutter, no errors.

Settings

All in one screen at WooCommerce Invoice Print:

  • Enable / disable
  • Default paper type (A4 / Thermal)
  • Default invoice language (Auto / Arabic / English)
  • RTL mode
  • Store logo, logo size (Small / Medium / Large / Extra Large), logo position (Start / Center / End)
  • Show / hide store info, customer phone, customer note, product image, delivery charge line
  • Shipping Invoice Discount (%) — enables a separate “Print Shipping Invoice” button that prints discounted product prices only
  • Address priority (Billing / Shipping)
  • Custom footer note

Languages

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 — independent of the site language, selectable from any installed language — and can be switched per print from the toolbar. RTL languages (Arabic, Hebrew, Persian, Urdu, …) render right-to-left automatically.

Screenshots

Installation

  1. Upload the plugin folder to /wp-content/plugins/ or install through Plugins Add New.
  2. Activate.
  3. Go to WooCommerce Invoice Print and configure the logo, default paper type, and language.
  4. Open any order — there’s a “Print Invoice” button in the side meta box and in the orders list row actions.

FAQ

Does this plugin require a paid license or external service?

No. Everything runs locally on your site. No API keys, no external requests.

Does it work with HPOS (High-Performance Order Storage)?

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.

Can I customize the invoice template?

Yes. Copy templates/invoice-template.php (or templates/invoice-bulk-template.php) into your theme at your-theme/invofast-invoice-printer-for-woocommerce/invoice-template.php and the plugin will use that copy instead.

How do I print to a thermal receipt printer?

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.

Does the customer’s selected variation (Color, Size) show up?

Yes — 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.

Where do ACF fields show up on the invoice?

In an “Additional Information” block between the address and the items table — but only if ACF is active and at least one field has a value.

I already had this plugin installed under a different name, will my settings carry over?

Yes. The internal option keys (wcip_*) have not changed across versions, so all settings persist on upgrade.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Invofast Invoice Printer for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.28.0

  • 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.
  • 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.
  • Fixed: settings template/CSS editors render full width; invalid invoice tokens return proper 403/404 statuses.

1.27.0

  • 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.
  • 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.
  • New: printer icon on the Print button (all layouts, RTL-checked).
  • Fixed: design options were lost when starting from an empty design; label editors opening by default; invisible checkbox check marks.

1.26.0

  • New: Overall Design panel in the Template Builder — 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.
  • Improved: per-block color now also recolors individual divider blocks; compact checkboxes for block options.

1.25.0

  • New: the PAID / UNPAID payment mark is now a corner stamp (bordered, rotated, top-left) instead of a page-wide watermark.
  • New: “Currency Position on Invoices” setting — place the currency symbol left/right of amounts on printed documents only, without touching the store setting.
  • New: Template Builder — 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.
  • 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.

1.24.0

  • New: Checkout Fields panel in the Template Builder — 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.
  • New: the builder’s live preview now shows the design as you build it, before saving — changes preview automatically within a second, without touching the saved template.
  • New: template export / import carries the visual builder layout, so a design stays editable in the builder after importing it on another site.
  • Improved: builder column layouts collapse to one column on thermal (80mm) paper; mobile overflow fixed; fields-panel header aligned.

1.23.0

  • Improved: Template Builder redesign — 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.
  • Improved: easier building — 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.

1.22.0

  • New: drag & drop Template Builder — 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.

1.21.0

  • New: Hijri (Umm al-Qura) date option — shown next to the order date, with localized month names following the invoice language, plus a [wcip_date_hijri] shortcode for custom templates.
  • New: payment-status watermark option — 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.

1.20.0

  • New: smart bulk printing — 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.

1.19.0

  • New: optional “View your invoice” button in customer order emails — 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.

1.18.0

  • New: items pagination shortcodes for multi-page custom templates — [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.

1.17.0

  • 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].

1.16.0

  • New: visual Template Builder (WooCommerce Template Builder) — assemble the invoice from blocks (logo, store info, info grid, address, items table, totals, QR codes, text/HTML blocks, …), 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.
  • New: [wcip_label key=””] shortcode — any translated label from the plugin’s string table.
  • New: a Preview button in the Custom Template settings renders the latest order without counting as a print.
  • New: template import / export — 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.

1.15.0

  • New: Custom Template builder — 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, …), [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.
  • 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.

1.14.0

  • New: Status After First Print — 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.
  • New: Print Report — a WooCommerce 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.
  • New: Order QR code — optionally print a QR of the order number on every document, so the warehouse can scan the slip instead of typing the number.
  • New: Saudi e-invoice (ZATCA) QR — 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.
  • New: store identity fields — optional Commercial Registration number, VAT number, and branch name printed under the store name.
  • New: invoice accent color — replace the default blue on the header line, items-table header, and print button.
  • New: Arabic footer note — a separate footer used when the invoice prints in Arabic; other languages keep the default note (wcip_footer_note filter for more languages).
  • New: outgoing webhooks — 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.

1.13.0

  • New: Packing Slip — 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.
  • New: Send via WhatsApp — 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.
  • New: Sequential invoice numbering — 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.

1.12.0

  • 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.
  • 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.
  • Field coverage fix: the checkout-fields collector now skips only the meta keys the delivery-address block actually printed in the current invoice — 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.

1.11.1

  • 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 — including fields in Pro custom sections — prints on the invoice, whatever plugin or version created it.
  • 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 wcip_checkout_fields_skip_keys filter allows hiding specific fields.
  • The Area row in the delivery address now also reads custom checkout fields (billing_area / billing_region), combined with the city when both exist.

1.11.0

  • New: custom checkout fields print on the invoice in the “Additional Information” block — supports the WooCommerce block-checkout Additional Checkout Fields API, Checkout Field Editor for WooCommerce (ThemeHigh), and Flexible Checkout Fields (WP Desk). A wcip_checkout_fields filter lets other plugins add their own rows.
  • Fix: Shop Managers (and any role with the manage_woocommerce capability) got “you are not allowed” when saving the plugin settings — WordPress requires manage_options on options.php unless the plugin declares otherwise. Saving now uses the same capability as viewing the page.

1.10.0

  • New: Print links in order notes — 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.
  • New: Auto-Print Station — a WooCommerce 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.
  • 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.

1.9.0

  • New: Shipping Invoice — 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.
  • 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.
  • If your theme overrides invoice-template.php, re-copy it from the plugin to keep the paper/language toolbar working on the shipping copy.

1.8.0

  • Plugin renamed to “Invofast Invoice Printer for WooCommerce” (slug and text domain: invofast-invoice-printer-for-woocommerce). Settings and option keys are unchanged, so everything carries over.
  • All remaining inline <style> blocks (invoice templates, order meta box, orders list) moved into stylesheets loaded via wp_enqueue_style() / wp_print_styles().
  • Added the Requires Plugins: woocommerce header so WordPress 6.5+ enforces the WooCommerce dependency automatically.
  • Theme template override path is now your-theme/invofast-invoice-printer-for-woocommerce/.

1.7.6

  • Plugin Check (PCP) compliance: print stylesheet now registered/enqueued via wp_enqueue_style() instead of inline <link>.
  • Fixed unescaped print-count output in the order meta box.
  • Removed deprecated load_plugin_textdomain() call (WP 4.6+ loads translations automatically for wp.org-hosted plugins).
  • Removed unused Domain Path header.
  • Bumped tested-up-to to WordPress 6.9.

1.7.5

  • Text domain renamed to invofast-invoice-printer-for-woocommerce to match the wp.org plugin slug.
  • Theme override path renamed to your-theme/invofast-invoice-printer-for-woocommerce/.

1.7.4

  • Default for “Show Delivery Charge” flipped to enabled.
  • Description copy updated to reflect the new default.

1.7.3

  • Strip WooCommerce’s “via {Shipping Method}” annotation from the shipping line — only the price is printed.

1.7.2

  • Replace “Payment method” label with “Paid with” / “تم الدفع بـ”.

1.7.1

  • New setting: Show / hide the delivery charge line in the totals table.
  • Payment method line in totals rendered in smaller, lighter type.

1.7.0

  • Advanced Custom Fields integration: order-level fields render automatically in an “Additional Information” block.
  • Helper handles common ACF types: text, choice, image, file, link, post object, user, taxonomy, group, repeater, google_map.

1.6.0

  • Per-item meta (Woo Extra Product Options, Product Add-Ons, variation attributes, Woo Variation Swatches) renders under each product name.

1.5.0

  • Logo size presets (Small / Medium / Large / Extra Large) and logo position (Start / Center / End), RTL-aware.

1.4.1

  • Default for “Show Product Image” flipped to enabled.

1.4.0

  • New setting: Show product image column in the items table. Variation image preferred, parent image as fallback.

1.3.4

  • Address builder picks up Kuwait Delivery Manager meta keys (_kdm_house_no, _kdm_block_no, _kdm_jaddah, _kdm_area_name) when no structured delivery fields are returned.

1.3.3

  • Every line in the address block is now labeled (Name, Area, Block, Street, House, Postcode, Country, etc.).

1.3.2

  • Order Delivery Date Pro / Lite integration: delivery date, time slot, and additional checkout fields appear with the labels the admin configured.

1.3.0

  • Customer name, phone, and email moved into the meta column beside the invoice number.
  • Customer note moved inline with the delivery information.

1.2.0

  • Bilingual admin settings page — follows the user’s WordPress locale.
  • Address line 1 and line 2 always included on the invoice when supplied.
  • Delivery fields respect the configured address priority (billing vs shipping).

1.1.1

  • “Show Customer Note” defaults to enabled on new installs.

1.1.0

  • Initial public release with HPOS compatibility, A4 + thermal layouts, RTL support.