Get Plugin

Admin Tools

Admin Tools

Easy PDF Invoices for WooCommerce adds practical admin tooling for managing invoices at scale: an order list column, row-level quick actions, an order edit metabox, three bulk actions, a backfill tool, and CSV export.

Order list column

A new Invoice # column appears on the WooCommerce orders list (HPOS and legacy CPT). It shows the formatted display number plus a small label indicating the document type (Invoice, Receipt, Credit Note).

Hover any row to see the Download PDF quick icon next to the standard View / Complete actions. Click it to download the PDF immediately. The icon is hidden for cancelled, failed, and packing-slip-only orders.

Order edit metabox

Open any order in the admin. The Easy PDF Invoices metabox sits in the order edit sidebar with:

  • Document type — Invoice, Receipt, Credit Note, or Packing Slip.
  • Number — the formatted display number (e.g., INV-2026-000042).
  • Generated date — when the PDF was last rendered.
  • File size — the PDF size on disk.
Three buttons:
  • Download — stream the existing PDF (or generate it if missing).
  • Regenerate — discard the existing PDF and render a fresh one. Useful after editing order data, changing branding, or switching template variants.
  • Email customer — re-send the WooCommerce customer-invoice email with the current PDF attached.
Each button uses the WordPress admin-post handler with capability + nonce + sanitised order ID checks.

Bulk actions

Select multiple orders on the order list, then choose one of three bulk actions:

Regenerate PDFs

Regenerates the PDF for every selected order.

  • Inline for the first 50 orders — processed in the same request.
  • Action Scheduler for batches above 50 — queued asynchronously.
After completion, an admin notice shows: regenerated count, queued count, skipped count.

Skipped orders are usually cancelled or failed orders, where the plugin doesn't generate documents.

Download PDFs (ZIP)

Bundles the selected orders' PDFs into a single ZIP file and streams it to your browser.

  • Capped at 200 orders to avoid memory issues.
  • Lazy generation — orders without an existing PDF are generated on the fly during ZIP creation.
  • Capability + token transient handoff — the ZIP streams on a clean follow-up request rather than during the original bulk-action POST. This avoids buffer issues with large outputs.
If you select more than 200 orders, the merchant-facing notice tells you to narrow the selection.

Email invoices to customers

Triggers the WooCommerce Customer Invoice / Order Details email for each selected order, with the PDF attached.

  • Inline for the first 50 orders.
  • Action Scheduler offload above.
Useful for stores that send manual invoice emails after order review, or for re-sending invoices in bulk after a template update.

Backfill tool

Generates PDFs for past orders that don't have one yet.

Find it under WooCommerce > Settings > Invoices > Advanced > Backfill past orders.

  • From date and To date — filter the orders to backfill.
  • Force checkbox — regenerate even orders that already have a PDF.
  • Run button — queues each order via Action Scheduler.
After clicking Run, you'll see a queued count notice. Backfill runs in the background; check Tools > Scheduled Actions to monitor progress.

This is the canonical way to onboard an existing store: install the plugin, run the wizard, then backfill the last few months of orders so customers can download historic receipts from My Account.

CSV export

The Tools panel also has a CSV export form.

  • From date and To date — date range filter.
  • Document type filter (optional) — invoice, receipt, credit-note, packing-slip, or all.
  • Download CSV button — streams the file with a UTF-8 BOM so Excel opens it correctly.
Columns:
  • Invoice number
  • Order ID
  • Status
  • Type
  • Generated date
  • Customer name
  • Customer email
  • Total
  • Currency
Use this for accountant handoffs, monthly summaries, audit trails, or piping into a spreadsheet for analysis.

On the Plugins screen, the Easy PDF Invoices row has three quick links:

  • Settings — jumps to WooCommerce > Settings > Invoices.
  • Documentation — opens this site in a new tab.
  • Support — opens themology.com/support.
If the setup wizard hasn't been completed, a fourth link appears: Set up.

Welcome notice

Right after activation, a one-time dismissible notice appears on the dashboard, plugins screen, and WooCommerce admin pages with a Set up now button that launches the wizard.

The notice never returns once dismissed or once the wizard is completed. This is a deliberate compliance choice — the WordPress.org plugin guidelines (specifically guideline 11) prohibit admin hijacking via persistent notices.

WP-CLI commands

The plugin ships with WP-CLI commands for diagnostics and bulk operations from the command line.

wp epdi diagnose

Reports on plugin health: settings status, counter values, storage directory permissions, DOMPDF availability, recent errors.

wp epdi diagnose

wp epdi test-pdf

Generates a test PDF for an order to verify rendering.

# Auto-resolve type from order status
wp epdi test-pdf 123

# Force a specific document type
wp epdi test-pdf 123 --type=invoice
wp epdi test-pdf 123 --type=receipt
wp epdi test-pdf 123 --type=credit-note
wp epdi test-pdf 123 --type=packing-slip

# Force regeneration even if a PDF exists
wp epdi test-pdf 123 --force

Output includes the file path, file size, and PDF object count.

wp epdi list-documents

Lists generated documents.

# All documents (most recent first)
wp epdi list-documents

# Cap to N rows
wp epdi list-documents --limit=50

wp epdi download-url

Prints the secure download URL for an order.

wp epdi download-url 123

Useful for debugging the download endpoint outside the email pipeline.

Audit trail and logging

The plugin uses the WooCommerce logger. View logs under WooCommerce > Status > Logs, source easy-pdf-invoices.

By default, only errors are logged. Enable Settings > Invoices > Advanced > Debug mode to log info events too: number assignments, PDF generation, attachments, downloads.

Debug mode is verbose. Turn it off in production once you've confirmed your flow works.

Permissions

All admin actions require the manage_woocommerce capability:

  • Plugin settings
  • Setup wizard
  • Order metabox actions (Download, Regenerate, Email)
  • Bulk actions (Regenerate, Download ZIP, Email)
  • Backfill
  • CSV export
  • WP-CLI commands
The frontend download endpoint has its own three-tier authorisation:
  • manage_woocommerce capability (admins always pass).
  • Logged-in customer who owns the order.
  • Order key match via hash_equals() for guests.
See Customer Downloads for the full authorisation flow.