DYNAMIC TEXT WIDGET
The Dynamic Text widget mirrors Elementor's Text Editor control but injects macro support so you can mix static copy with unlimited dynamic tokens. Drop it anywhere text is expected, point it at JetEngine, ACF, or user meta, and every macro resolves before Elementor renders the block.
USAGE & SCOPE
- Placement: Works inside single templates, Listing Grid items, popups, or any text column.
- Query Source: Choose Current Post, Listing Grid context, or Current User so the widget knows which object to read from.
- Unlimited macros: Insert as many dynamic tokens as you need; plain text and HTML remain untouched.
- Meta compatibility: Text, number, radio, checkbox (array), select, multiple select, and date (Unix/timestamp) values are supported.
CONTENT CONTROLS
Tell the widget which record to read and compose your macro-rich copy.
CONTENT CONTROLS
- Query Source: Switch between listing item, current post, or logged-in user to match the template context.
- Text Editor: Supports plain text, inline HTML, and Elementor dynamic tags. Use macros anywhere inside this field.
- Empty Output Handling: Choose whether the widget should hide if every macro resolves to an empty value.
MACRO SYNTAX
Every macro follows the same structure and can be chained indefinitely inside the editor.
MACRO SYNTAX
- meta_key: The JetEngine/ACF/user meta ID. Required.
- format (optional): Tells the widget how to process the value. Skip it to output the raw data.
- fallback (optional): Text to display when the meta is empty. Without a fallback the macro simply disappears.
- Whitespace: Spaces around the pipe are optional; use whichever style improves readability.
Important: If you skip the format, the next parameter is treated as the fallback. Checkbox and multiple select macros are the exception because their second parameter is always the delimiter.
Examples:
→ formats a timestamp as2025.04.11, otherwise prints "Date is not set".→ renders two decimals,,thousands separator, and shows "N/A" when empty.→ joins array values with a slash or outputs the fallback.
FORMATTING OPTIONS
Apply date, number, or delimiter logic without leaving the widget.
FORMATTING OPTIONS
Date values
Pass a PHP date() pattern to format Unix timestamps: . When the timestamp is empty the fallback is rendered; without a fallback nothing prints.
Numbers
Use the number formatter to control decimals and separators: renders two decimals, . decimal separator, and , thousands. Signature: number[:decimals[:decimal_sep[:thousand_sep]]]. Example without extra params: .
Checkbox & multiple select
No formatter is needed because the second parameter acts as the delimiter: . The widget joins array values with / and uses the fallback when the array is empty.
Plain text
Skip the formatter when you just need the stored string: .
STEP-BY-STEP SETUP
- Pick the source. Set Query Source to Current Post, Listing Grid, or Current User so macros pull from the right object.
- Compose your copy. Write the surrounding text first, then sprinkle macros wherever dynamic data should appear.
- Apply formatting. Add date or number formats, choose delimiters for checkbox arrays, and define fallbacks for empty values.
- Preview the template. Check a few records to confirm each macro resolves correctly and empty fields stay hidden.
- Style as needed. Use Elementor’s typography, spacing, and link controls to match the surrounding design.
TIPS & EDGE CASES
- Unlimited macros: The parser scans the entire content area, so you can nest macros inside headings, paragraphs, lists, or buttons.
- Conditional sentences: Combine fallback text with punctuation (e.g.
Phone:) to avoid double spaces. - Delimiter first: For checkbox and multi-select fields always provide the delimiter before any formatting token to avoid clashes with pipe separators.
- Silent failures: If a meta key is misspelled the macro is removed. Use clear fallbacks to spot missing data while testing.
- Mixed data sources: When using Listing Grid, macros read the repeater item first; fall back to global post/user only when the field is not found.