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
id—One of id or numberInvoice post ID.
number—One of id or numberInvoice number (e.g. INV-0042).
textInvoice linkNoAnchor text.
class—NoExtra 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
id—One of id or numberQuote post ID.
number—One of id or numberQuote number (e.g. QUO-0042).
textQuote linkNoAnchor text.
class—NoExtra 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 ​