Skip to content

Shortcodes

Easy Invoice ships five shortcodes. They cover two use cases: linking to specific invoices/quotes inline, and rendering client-portal forms.

[easy_invoice_url]

Render a link to a specific invoice. Use inside a page or an email body.

Attributes

AttributeDefaultRequiredDescription
idOne of id or numberInvoice post ID.
numberOne of id or numberInvoice number (e.g. INV-0042).
textInvoice linkNoAnchor text.
classNoExtra CSS class on the <a> tag.
target_selfNo_blank to open in new tab.

Example

[easy_invoice_url number="INV-0042" text="View your invoice" target="_blank"]

Pro: when Custom permalinks → Secure mode is on, the resolved URL automatically uses the hashed slug.

[easy_quote_url]

Same pattern as [easy_invoice_url], for quotes.

Attributes

AttributeDefaultRequiredDescription
idOne of id or numberQuote post ID.
numberOne of id or numberQuote number (e.g. QUO-0042).
textQuote linkNoAnchor text.
classNoExtra CSS class.
target_selfNo_blank to open in new tab.

Example

[easy_quote_url number="QUO-0042" text="View your quote"]

[easy_invoice_login]

Renders the portal login form for the easy_invoice_client role. PRO

Attributes

AttributeDefaultDescription
redirectCurrent pageWhere to send users after a successful login.

Example

Place on a page at /client-area/login:

[easy_invoice_login redirect="/client-area/invoices"]

If a logged-out visitor lands on a portal page, they're redirected here automatically (configurable in Pro settings).

[easy_invoice_profile]

Renders the profile editor for the logged-in client. Lets them update name, address, email, password. PRO

Example

[easy_invoice_profile]

Hidden for non-logged-in visitors.

[easy_invoice_client_login]

Alternative login form (legacy alias from earlier Pro versions). Functionally identical to [easy_invoice_login] — kept for backward compatibility. PRO

Example

[easy_invoice_client_login]

Prefer [easy_invoice_login] for new pages.

What's NOT a shortcode

  • No invoice list shortcode for non-portal contexts. Use Custom Post Type listings or write a custom loop.
  • No payment-form embed (gateways always redirect to their own checkout / use their JS SDK).
  • No Gutenberg block, no Elementor widget. Use these shortcodes inside any block / widget that supports shortcode.

Tips for emails

If you write your own email template (outside the Settings → Email UI), use shortcodes via do_shortcode():

php
echo do_shortcode( '[easy_invoice_url number="INV-0042"]' );

For merge-tag-based emails (the recommended path), you don't need shortcodes — see Email & notifications → Merge tags.

Where to go next