Skip to content

Addons

ProPersonal-tier addons unlock automatically when you install Easy Invoice Pro — no license key required. A license unlocks the Professional and Agency tiers. Get Easy Invoice Pro →

Easy Invoice Pro ships an addon system: every Pro feature is an independently-toggleable addon you turn on from Easy Invoice → Addons. Disabled addons contribute zero PHP, zero database queries, zero hooks — so a clean install is just as fast as the free plugin.

Still on the free plugin? You're missing 19 addons across recurring billing, deposits, client portal, custom templates, reports, and more — twelve of them are included free with the Pro plugin, no license key required. Get Easy Invoice Pro →

How the tiers work

TierWhat unlocks itWhat you get
FreeEasy Invoice plugin onlyThe free core: unlimited invoices, quotes, clients, PDF generation, PayPal & Manual gateways, email notifications.
PersonalInstall Easy Invoice Pro — no license requiredAll 9 Pro payment gateways + 12 Personal-tier addons (Recurring, Client Portal, PDF Toolkit, Item Library, Templates, Bulk Operations, Secure Links, Reports, and more).
ProfessionalActivate a Professional licensePersonal + Time Tracking, Smart Reminders & Late Fees, Priority Support.
AgencyActivate an Agency licenseProfessional + White-Label, Team Roles & Audit Log, Webhooks & Zapier.

Each plan includes everything in lower plans. Buy once, install once — the Pro plugin gives you Personal automatically. Add a license to unlock Professional or Agency.

Get Easy Invoice Pro →

The full catalog

Personal tier (free with Pro — no license)

AddonWhat it does
Recurring Invoices & SubscriptionsAuto-bill on autopilot — weekly, monthly, or any custom schedule.
Partial Payments & DepositsGet paid sooner with deposits and flexible installment plans.
Client PortalBranded self-service area where clients view invoices, quotes, and receipts.
PDF ToolkitCustom headers, footers, watermarks (PAID / DRAFT / OVERDUE), and styling.
Bulk Email & ExportSend and export hundreds of invoices in a single click.
Item LibraryReusable catalog of services and products with one-click insert into invoices.
Custom Invoice & Quote TemplatesDrag-and-drop builder for pixel-perfect layouts.
Additional Tax LinesMultiple named tax lines per invoice — VAT + duty, GST + PST, federal + state.
Email EnhancementsBranded HTML emails with PDF attached, CC / BCC, and Reply-To.
Secure Links for Invoices & QuotesReplace predictable invoice/quote URLs with signed, unguessable links that can expire automatically.
Privacy & GDPR ToolsComply with GDPR, CCPA, and other data-protection laws in one click.
Reports & AnalyticsVisual dashboard for revenue, outstanding balances, and per-client performance.

Professional tier (license required)

AddonWhat it does
Time Tracking & Project BillingLog billable hours and convert them to invoice lines in one click.
Expense Tracking & Reimbursable ItemsLog billable expenses with receipts, apply markup, and roll selected expenses into a draft invoice.
Smart Reminders & Late FeesMulti-step automated payment chase with auto-applied late fees.

Upgrade to Professional →

Agency tier (license required)

AddonWhat it does
White-Label & Brand OverrideRebrand Easy Invoice as your own product — every label, footer, and PDF.
Team Members & Audit LogScoped staff roles + searchable audit log of every action.
Webhooks & Zapier BridgeStream invoice events to any URL — Zapier, Make, n8n, your CRM.
Accounting Sync (QuickBooks / Xero / FreshBooks)Two-way sync between Easy Invoice and your accounting platform.

Upgrade to Agency →

How the gate works

When you click Activate on a card, three things are checked before the addon's code is loaded:

  1. Pro plugin present — Easy Invoice Pro must be installed and active.
  2. License plan — your plan must satisfy the addon's required tier. Personal tier is granted automatically when Pro is installed (no license needed). Professional/Agency addons require a valid license.
  3. Code presence — the addon's bootstrap file must exist in the Pro plugin.

If all three pass, the addon's addon.php is require_once'd on every subsequent request (via the Pro plugin's init hook at priority 25). If any check fails, the file is never loaded — the addon contributes nothing to your site.

Toggling off disables an addon instantly. Some addons (Time Tracking, Team Roles, Webhooks) create database tables on first activation; those tables are kept on deactivation so you don't lose data if you re-enable later. To remove everything, uninstall Easy Invoice Pro (a clean-up routine runs on uninstall, not on deactivate).

Activation flow

text
You click "Activate" ──▶ AJAX easy_invoice_toggle_addon

                          ├─ AddonManager::userCanAccess()
                          │   • Plan tier ≥ addon.plan?
                          │     (Personal = Pro plugin installed)

                          ├─ YES ─▶ update_option(easy_invoice_addon_{id}_enabled, 1)
                          │        Page reloads. Addon loads on next request.

                          └─ NO  ─▶ Returns { code: 'upgrade_required', upgrade_url, required_plan }
                                   UI opens the upgrade dialog with the right tier pre-selected.

Defense in depth: even if you set the option directly via SQL on a Free site, the loader's plan check still refuses to require the file. You cannot bypass plan tier by editing the database.

Existing Pro users — auto-migration

If you were running Easy Invoice Pro before the addon system existed, a one-time migration runs on the next admin page load. It auto-enables every Personal-tier addon for your install so nothing breaks — the features you were already using stay on. The migration is stamped with a version ('2') so it runs once and then never again.

You can fully customize what's enabled afterwards from Easy Invoice → Addons.

What does NOT happen automatically

  • Migrations — an addon's database schema is created (via dbDelta) on first activation. If a future Pro release ships schema changes, the addon's version constant bumps so the migration re-runs.
  • Cron schedules — addons that need cron (Recurring, Smart Reminders, Webhooks) self-schedule on bootstrap. There's no global "Run cron now" button.
  • Hooks into other code — addons hook into Easy Invoice events at runtime, so events that already happened are not retroactively logged or fired. (Newly-enabled Audit Log only records actions from the moment you enabled it.)

Filter categories

The Addons page has filter chips along the top — each addon belongs to one category so you can narrow the catalog by job-to-be-done:

  • billing — recurring, partial payments, additional tax, dunning
  • branding — white-label, PDF toolkit, custom templates
  • productivity — item library, bulk operations, email enhancements, time tracking
  • clients — client portal
  • team — team roles & audit log
  • integrations — webhooks
  • compliance — privacy / GDPR
  • analytics — reports

Building your own addon

The addon system is intentionally registry-driven so third-party Easy Invoice extensions can ship their own addons. Hook into the registry filter:

php
add_filter('easy_invoice_addons_registry', function (array $addons) {
    $addons[] = [
        'id'           => 'acme_widgets',
        'name'         => 'Acme Widgets',
        'tagline'      => 'Adds a Widgets section to the invoice editor.',
        'description'  => 'Description shown on the addon card.',
        'plan'         => 'professional', // 'personal' | 'professional' | 'agency'
        'icon'         => 'dashicons-screenoptions',
        'category'     => 'productivity',
        'badge'        => null,
        'docs_url'     => 'https://example.com/docs/acme',
        'settings_url' => admin_url('admin.php?page=easy-invoice-addon-acme-widgets'),
        'pro_file'     => 'addons/acme-widgets/addon.php',
    ];
    return $addons;
});

The bootstrap file at pro_file is loaded by AddonManager::loadEnabledAddons() only when the addon passes the same three checks listed above.

Common cron schedules per addon

AddonHookCadence
Recurring Invoiceseasy_invoice_recurring_cronConfigurable (every N minutes / hours / daily)
Smart Reminderseasy_invoice_dunning_daily_tickDaily
Webhooks (retry)easy_invoice_webhooks_retry_tickHourly
Webhooks (one-shot dispatch)easy_invoice_webhook_send_oneSingle event per delivery

If a cron tick seems stuck, see Troubleshooting → WP-Cron.

Troubleshooting

"I just bought Agency but only Professional addons show as unlockable"

The plan resolver caches the EDD license response. Either:

  1. Re-activate the license (License page → Deactivate → Activate)
  2. Or set a manual override: update_option('easy_invoice_pro_plan_tier_override', 'agency') — useful while debugging.

The resolver tries (in order) the override → EDD price_id → the item-name string. If none match, it falls back to professional for any valid license.

"I enabled an addon but its menu / settings page is missing"

Personal-tier addons (Item Library, Templates, Reports, etc.) are reached through the Easy Invoice in-app sidebar — not the WordPress admin submenu. The WP admin entries are intentionally hidden to avoid duplicating the in-app sidebar navigation.

If the in-app sidebar doesn't include your addon's link:

  1. Confirm the addon is Active on the Addons page (not just unlocked).
  2. Hard-refresh the admin (sidebar cache).
  3. Check define('WP_DEBUG', true) for PHP errors from the addon's addon.php.

Hooks for developers integrating with addons

HookWhen
easy_invoice_addon_enabled (addon_id, addon)Site admin just enabled an addon
easy_invoice_addon_disabled (addon_id, addon)Site admin just disabled an addon
easy_invoice_addon_loaded (addon_id, addon)Addon's addon.php was just required
easy_invoice_addons_registryFilter to add your own addon to the catalog
easy_invoice_pro_addon_migration_completed (enabled_ids)Migration finished auto-enabling existing-install addons

For per-addon hooks, see each addon's docs page.

See also

ProReady to unlock the full addon catalog? Install Easy Invoice Pro for 12 Personal-tier addons free — no license required. Add a Professional or Agency license to unlock the rest.Get Easy Invoice Pro →