🎉 Use coupon MYXERO to enjoy 20% recurring discount on any plan. View Pricing
Kitgenix PDF Invoicing for WooCommerce
Kitgenix PDF Invoicing for WooCommerce

Kitgenix PDF Invoicing for WooCommerce

0/5 (0 ratings) — active installs Updated May 7, 2026
Settings: branding, company details, prefixes, styles, colours, and email attachment mapping.

Settings: branding, company details, prefixes, styles, colours, and email attachment mapping.

Kitgenix PDF Invoicing for WooCommerce helps stores generate professional PDF documents from WooCommerce orders without a heavy stack.

It supports core document workflows out of the box:
– Invoices
– Receipts
– Packing Slips
– Credit Notes
– Pro Forma Invoices
– Delivery Notes
– Statements

Key capabilities include:
– Secure admin and customer downloads with nonce and capability checks
– Batch ZIP exports from the WooCommerce orders list
– Optional archived PDF reuse for stable re-downloads
– Numbering controls with prefixes, padding, and reset periods
– Rule-based document availability by status/payment state
– Email attachment support for selected document types
– Bundled templates with style and branding controls

The plugin is built for practical operations: support teams can quickly re-deliver documents, fulfilment teams can work with packing slips and delivery notes, and finance teams can keep consistent invoice/credit-note references.

For setup details and advanced options, see the bundled documentation and support links in this readme.

Secure Dompdf PDF rendering

  • Renders HTML templates into PDF (A4 portrait by default)
  • Remote fetching disabled by default
  • Dompdf “chroot” restricts filesystem access to allowed paths
  • PHP in templates disabled by default (advanced opt-in only)

Template overrides (theme and agency friendly)

Templates can be overridden without editing plugin files.

Template resolution order:
1) Full override via filter
2) Theme override path:
kitgenix-pdf-invoicing-for-woocommerce/{style}/
3) Plugin templates fallback:
templates/{style}/

Where {style} is the active template pack selected in settings: standard, simple, modern, or business.
For compatibility, the resolver also checks .../standard/ and legacy root locations if a file is not found.

Template packs

Choose between four bundled design packs:
– Standard
– Simple
– Modern
– Business

Each pack has its own document templates and stylesheet, while still using the same company details, logo, footer, notes, and colour settings from the plugin options.

Visual template designer

Non-technical stores can now reshape the bundled document layouts without editing PHP templates.

The Brand & Styling tab includes no-code controls for:
– header alignment across the logo, company block, and document title
– logo scale for compact or brand-led layouts
– document density for tighter or more spacious tables and notes
– boxed or tinted information panels around address/order-data sections
– clean, striped, or grid-style item tables
– boxed totals panels or highlighted final totals
– footer alignment for legal text, bank details, or closing notes

These controls layer on top of the bundled Standard, Simple, Modern, and Business packs, so stores can fine-tune the presentation without creating a theme override.

Customer downloads (My Account)

Optional customer-facing downloads for the order owner:
– Order details page buttons:
– Download Invoice (PDF)
– Download Credit Note (PDF) (only when refunds exist)
– My Account Orders table actions:
– View Invoice
– View Credit Note (when refunds exist)

Customer downloads are nonce-protected and/or can be validated by order key for guest access (see “Download permissions”).

Download permissions & security

PDF rendering supports secure query-arg requests:
– kitgenix_pdf=1
– kitgenix_doc={type}
– order_id={id}
– _wpnonce=…

Guest access (without a nonce) is permitted only when a valid WooCommerce order key is provided:
– key= or order_key= must match the order’s key

Default per-document rules:
– Invoice + Receipt + Pro Forma Invoice + Statement:
– order owner OR shop staff OR valid order key
– Packing Slip + Delivery Note:
– shop staff only (by default)
– Credit Note:
– staff OR order owner (only if refunds exist) OR valid order key (only if refunds exist)

Final permission gate is filterable, and document availability can also be narrowed through the built-in rules table or the kitgenix_pdf_document_enabled filter.

Email attachments (configurable)

Attach PDFs to WooCommerce emails using settings and filters.
The plugin hooks WooCommerce’s email attachment pipeline, generates PDFs as temporary files for each email, attaches them, and cleans up automatically.

Sensible defaults (customisable):
– Invoice: Processing + Completed
– Receipt: Completed
– Credit Note: Refunded
– Packing Slip: New Order (admin email)

Email workflow tools in settings:
– Preview the currently mapped document set against a specific WooCommerce order
– Open live PDF previews for each eligible mapped document from the email settings tab
– Send an attachment-only test email to a safe inbox before relying on the live WooCommerce workflow
– Reuse the same mapping, eligibility checks, and PDF-generation pipeline as production email attachments

Filenames, streaming vs download

  • Default filename: {type}-{order_number}.pdf (filterable)
  • Streams inline by default (Attachment=false), unless filtered to force download
  • Reuses archived immutable PDFs when available before falling back to fresh rendering
  • Generates temporary files for email attachments, cleaned up automatically
  • Generates temporary ZIP archives for batch exports, cleaned up automatically
  • Tracks simple generation metrics in an option (counts successful generations)

Customisation hooks (HTML/CSS/output)

  • Full HTML filter
  • Wrapper hooks before/after document
  • Custom CSS injection hook
  • Language attribute filter
  • Document title/body class filters
  • “Show shipping address” toggle filter

Quick Start

  1. Install and activate the plugin (WooCommerce required).
  2. Open any WooCommerce order in wp-admin.
  3. In the Kitgenix PDF Invoicing meta box, click “Download Invoice (PDF)” to confirm output.
  4. Configure settings:
    • branding + company details
    • prefixes, numbering tokens, and fiscal-year reset rules
    • field visibility, tax detail, and custom fulfilment/order-meta rows
    • email attachments mapping
  5. Generate a document once, then reuse the same archived PDF and stored document number for later admin/customer downloads when you need immutable record keeping.
  6. Use the WooCommerce orders list plus the batch ZIP bulk actions when you need invoices, packing slips, receipts, or credit notes for a filtered set of orders.
  7. Optional: enable customer downloads and order table actions.

To customise layout, copy templates into your theme override folder and edit them.

Template Overrides

  1. Copy templates from:
    templates/{style}/

  2. Paste into your theme at:
    kitgenix-pdf-invoicing-for-woocommerce/{style}/

  3. Edit the theme copies.

The plugin will automatically use your theme templates instead of bundled templates.

Developers

Text domain:
kitgenix-pdf-invoicing-for-woocommerce

Architecture:
– Modular plugin with Admin/Settings/Invoicing/Email/Frontend modules
– Document types registry (extendable) with built-in invoice, receipt, packing slip, credit note, pro forma invoice, delivery note, and statement types
– Template system with theme overrides + HTML/CSS filters
– Secure download endpoints with nonce/capability checks and optional order key validation
– Token-based numbering engine for invoices, receipts, packing slips, and credit notes using stored order meta and a shared sequence-counter option
– Rule-based document availability controls by type, order status, and payment state
– Shared template display helper for configurable order rows, note blocks, and line-item metadata across bundled document templates

Numbering tokens available in settings:
– {prefix}
– {order_number}
– {order_id}
– {sequence}
– {refund_sequence}
– {year}
– {yy}
– {month}
– {day}
– {country}
– {billing_country}
– {shipping_country}
– {fiscal_year}
– {fiscal_year_short}
– {fiscal_year_start}
– {fiscal_year_end}

Key filters:
– kitgenix_pdf_invoicing_modules
– kitgenix_pdf_document_types
– kitgenix_pdf_document_enabled
– kitgenix_pdf_document_user_can_download
– kitgenix_pdf_document_filename
– kitgenix_pdf_batch_archive_filename
– kitgenix_pdf_persistent_archive_enabled
– kitgenix_pdf_archive_relative_root
– kitgenix_pdf_invoice_filename (back-compat)
– kitgenix_pdf_document_attachment (inline vs download)
– kitgenix_pdf_document_template_path
– kitgenix_pdf_document_html
– kitgenix_pdf_invoice_html (back-compat)
– kitgenix_pdf_document_custom_css
– kitgenix_pdf_document_lang
– kitgenix_pdf_document_title
– kitgenix_pdf_document_body_class
– kitgenix_pdf_show_shipping_address
– kitgenix_pdf_email_document_map
– kitgenix_pdf_email_attach_document
– kitgenix_dompdf_enable_php (advanced; default false)

Key actions:
– kitgenix_before_stream_pdf_document
– kitgenix_after_stream_pdf_document
– kitgenix_before_stream_pdf_invoice (back-compat)
– kitgenix_after_stream_pdf_invoice (back-compat)
– kitgenix_pdf_document_archived
– Template hooks:
– kitgenix_pdf_before_document / kitgenix_pdf_after_document
– kitgenix_pdf_before_document_wrapper / kitgenix_pdf_after_document_wrapper
– kitgenix_pdf_after_notes
– kitgenix_pdf_after_order_data_rows

Data Handling

  • Plugin settings stored in a single option: kitgenix_pdf_invoicing_settings.
  • Anonymous generation metrics stored in: kitgenix_pdf_invoicing_for_woocommerce_metrics.
  • Sequence counters for resettable numbering stored in: kitgenix_pdf_invoicing_for_woocommerce_number_sequences.
  • Document identifiers/history stored on the order to keep documents stable:
    • _kitgenix_pdf_invoicing_for_woocommerce_invoice_number
    • _kitgenix_pdf_invoicing_for_woocommerce_invoice_date
    • _kitgenix_pdf_invoicing_for_woocommerce_packing_slip_number
    • _kitgenix_pdf_invoicing_for_woocommerce_packing_slip_date
    • _kitgenix_pdf_invoicing_for_woocommerce_receipt_number
    • _kitgenix_pdf_invoicing_for_woocommerce_receipt_date
    • _kitgenix_pdf_invoicing_for_woocommerce_credit_note_count
    • _kitgenix_pdf_invoicing_for_woocommerce_credit_note_history
  • _kitgenix_pdf_invoicing_for_woocommerce_archived_documents
  • Archived PDFs stored in uploads and reused as immutable document copies when available.
  • Batch ZIP exports generated on demand (temporary files).
  • Email attachments generated as temp files and cleaned up automatically.
  • No custom database tables created.

Security & Privacy

  • All admin actions protected with nonces and capability checks.
  • Inputs sanitised; outputs escaped appropriately.
  • Dompdf PHP execution disabled by default. Enable only if you understand the risk:
    add_filter( ‘kitgenix_dompdf_enable_php’, ‘__return_true’ );

Security identifiers (exact):
– Admin meta box downloads use admin-post.php actions kitgenix_admin_stream_invoice, kitgenix_admin_stream_receipt, kitgenix_admin_stream_packing_slip, kitgenix_admin_stream_credit_note, kitgenix_admin_stream_pro_forma_invoice, kitgenix_admin_stream_delivery_note, and kitgenix_admin_stream_statement, protected by query arg nonce created/verified with nonce action kitgenix_admin_pdf.
– WordPress action hooks for those admin-post actions: admin_post_kitgenix_admin_stream_invoice, admin_post_kitgenix_admin_stream_receipt, admin_post_kitgenix_admin_stream_packing_slip, admin_post_kitgenix_admin_stream_credit_note, admin_post_kitgenix_admin_stream_pro_forma_invoice, admin_post_kitgenix_admin_stream_delivery_note, and admin_post_kitgenix_admin_stream_statement.
– Frontend document downloads use the optional _wpnonce value created/verified with nonce action kitgenix_download_{doc_type}_{order_id}.
– WooCommerce order action key: kitgenix_download_pdf_invoice (hook: woocommerce_order_action_kitgenix_download_pdf_invoice).
– WooCommerce bulk action keys: kitgenix_pdf_batch_export_invoice, kitgenix_pdf_batch_export_packing_slip, kitgenix_pdf_batch_export_receipt, kitgenix_pdf_batch_export_credit_note, kitgenix_pdf_batch_export_pro_forma_invoice, kitgenix_pdf_batch_export_delivery_note, and kitgenix_pdf_batch_export_statement.

Admin page hook suffix:
kitgenix_page_kitgenix-pdf-invoicing-settings

PDF generation is performed locally on your server using Dompdf. This plugin does not send customer data to a third-party PDF generation API.

External Services

This plugin includes a shared “Kitgenix hub” component in wp-admin which may fetch publicly available plugin metadata from WordPress.org using WordPress core’s plugins_api() function.

Caching:
– Transient: kitgenix_hub_wporg_active_installs_v1
– Transient: kitgenix_hub_wporg_ratings_v1
– Transient: kitgenix_hub_wporg_media_v1

Uninstall

Uninstall removes the plugin settings option (kitgenix_pdf_invoicing_settings), metrics option (kitgenix_pdf_invoicing_for_woocommerce_metrics), and numbering sequence option (kitgenix_pdf_invoicing_for_woocommerce_number_sequences) when uninstalled via WordPress.
It also deletes the activation redirect transient: kitgenix_pdf_invoicing_for_woocommerce_do_activation_redirect.
Order meta, archived document metadata, and archived PDF files are intentionally preserved to avoid accidental loss of invoice, receipt, packing slip, or credit note history.

Support Development

If this plugin helps you generate clean WooCommerce PDFs and reduces admin work, you can support ongoing development here:
https://buymeacoffee.com/kitgenix

Credits

Built with ❤︎ by @kitgenix – https://kitgenix.com
Bundled library: Dompdf (see vendor/ for licenses)