Informacje techniczne

Documentation E-Toolkit Popup Builder

Instructions, technical specifications and change history — always in line with the current version of the product.

Current version v1.2.60

Technical compliance

WordPress

From version 6.4

Tested up to 7.1

WooCommerce

Optional integration

PHP

From version 8.1

Knowledge base

Documentation

User Manual Set-up, operation and troubleshooting.

E-Toolkit Popup Builder — User Guide

What the plugin does

Create promotional, informational, or form popups without code. A campaign can be a modal, an element embedded beside a CSS selector, or content inserted at a supported WooCommerce location.

Features

  • Visual drag-and-drop builder with one-, two-, and three-column layouts.
  • Content blocks for badges, images, headings, subtitles, text, CTA, E-Toolkit forms, safe HTML, full-width HTML, dividers, spacing, countdowns, and video.
  • Template library with previews and custom templates that can be duplicated, renamed, imported, and exported as JSON.
  • Campaign formats: modal, slide-in, edge bar, full screen, CSS-selector embedding, and supported WooCommerce placements.
  • Flexible appearance: colors, width, spacing, radius, layout, custom CSS, entrance animation, mobile behavior, and close-button settings.
  • Triggers based on time, inactivity, click, page or element scroll, end of content, and exit intent.
  • Visit conditions based on minimum page views and sessions.
  • Audience and page targeting by content type, selected page or post, device, new or returning visitor, UTM source, and referrer.
  • WooCommerce targeting by customer, cart contents and value, item count, products, categories, viewed product, and sales.
  • Multiple schedule rules with independent date ranges, weekdays, and hours.
  • Campaign calendar with filters and quick schedule editing.
  • Priority and conflict handling through a queue, delay between popups, lower-priority skipping, and stopping further popups after conversion.
  • Frequency control per session, once-only display, day interval, and optional consent-cookie requirement.
  • Smart Tags for safe personalization with page, user, language, UTM, product, and cart data and fallback text.
  • Language versions managed with ET Lingua from inside the builder.
  • A/B tests with complete content and appearance variants, traffic weights, goals, stable assignment, results, and winner selection.
  • Statistics and analytics for impressions, clicks, conversions, CTR, variants, Google Analytics, and Meta Pixel.
  • Form Builder integration with conversion tracking after successful submission.
  • Post-conversion behavior including manual or automatic closing, closing after CTA, and closing after form submission.
  • Administrator tools for previews, targeting and limit bypass in test mode, and display diagnostics.
  • Responsive and accessible behavior on desktop and mobile, including keyboard focus and Escape handling.

Quick start

  1. Open ET Popups → Popup Builder and create a popup.
  2. Add and arrange content blocks on Builder.
  3. On Settings, select the trigger, placement, pages, devices, schedule, and frequency.
  4. Use Preview, save the configuration, and enable the popup.
  5. Review impressions, clicks, and CTR under Reports.

License and continuity

A valid license is required for the builder, calendar, reports, and for creating, changing, publishing, deleting, and exporting popups. After expiry, the dashboard redirects to activation and blocks changes.

Previously published popups continue to display their last saved configuration. Renew the license to edit them again.

Popup templates

Templates opens the layout library. Search by name, filter by category, and switch between bundled and custom templates. A preview explains exactly what will change.

Templates cover newsletters, downloads, webinars, cart recovery, product launches, testimonials, countdown promotions, contact forms, and announcements. One-, two-, and three-column designs combine different blocks and recommended triggers.

By default, a template replaces only content, blocks, and appearance. It does not change schedules, audiences, page targeting, limits, A/B tests, or integrations. Enable Also apply recommended display method to copy triggers and placement.

Save current as template creates a private site template. Custom templates can be renamed, duplicated, exported to JSON, and deleted. Imported JSON files may be no larger than 1 MB.

Popup calendar

Calendar shows all popups with a start or end date. Event colors indicate active, scheduled, completed, or disabled campaigns. Always-on popups without date ranges appear below the calendar.

Overlapping active or scheduled time ranges are marked as conflicts. Campaigns are ordered by priority. The warning does not block publication; General → Popup order decides their order.

Use search and status filters to find a campaign. Click it to quickly edit dates and its first display interval, or click Open full builder for all schedule rules. Times use the WordPress timezone and the language selected in ET Lingua.

Popup content and Smart Tags

Use headings, text, images, CTA buttons, video, safe HTML, dividers, countdowns, and E-Toolkit Form Builder forms. Select a block in the center to show only its settings on the right.

Text and CTA URL fields include Insert variable. Select a Smart Tag to personalize the page name, signed-in user's first name, UTM campaign, current WooCommerce product, and other values.

Add fallback text after |, for example {first_name|Customer}. An anonymous visitor then sees “Customer”. The preview uses sample data; real values are inserted on the page. Product tags work on product pages, and cart data requires WooCommerce. URL values can be inserted only into URL fields, preventing unsafe addresses from being rendered.

Campaign format

Under Settings → Display and appearance → Format, select a centered modal, corner slide-in, top or bottom bar, or full-screen campaign. Slide-ins and bars allow page scrolling; modals and full-screen campaigns block the background until closed.

Select an entrance animation and optionally force full-screen mode on phones. Format settings apply to modal popups; content embedded at a CSS selector or WooCommerce location remains part of the page.

Under General → Behavior, configure closing after a number of seconds, CTA click, conversion, or successful Form Builder submission. 0 disables timed closing.

Priority and conflicts

Under Settings → General → Popup order, configure:

  • priority from 1 to 100, with higher values shown first,
  • a priority queue or only the most important currently ready campaign,
  • delay between closing one popup and showing the next,
  • stopping pending and future popups for the rest of the browser session after conversion.

Conflicts are resolved separately for modals, each CSS selector, and each WooCommerce location. A modal therefore does not block embedded content. Priority does not open a campaign early; it orders campaigns whose own triggers are already satisfied.

Close button

Under Settings → Display and appearance → Close button, configure icon and background colors, size, shape, position, and edge offset. The live preview updates immediately. Enable or disable closing under General → Behavior.

Triggers and targeting

A popup can open after a delay, at a scroll depth, when an element becomes visible, after inactivity, on exit intent, after clicking a CSS selector, or at the end of the main content.

Minimum page views and sessions are additional conditions. They do not open a popup themselves; they determine when the selected trigger becomes eligible. 0 disables a condition.

Limit rules by content type, selected posts or pages, device, new or returning visitor, UTM source, and referrer. Schedules use the WordPress timezone. Add multiple rules with independent date ranges, weekdays, and hours. The popup runs when at least one rule matches.

WooCommerce targeting

When WooCommerce is active, Settings → Audience and pages → WooCommerce can target:

  • any, guest, or signed-in customers,
  • empty or non-empty carts,
  • minimum and maximum cart value before shipping,
  • cart item count,
  • selected products or categories in the cart,
  • the viewed product category,
  • whether the viewed product is on sale.

Search for products and categories without knowing their IDs. Every configured condition group must match; within cart products and categories, at least one selected item must match. 0 means no limit. Disabling WooCommerce targeting preserves the settings but stops applying them.

If WooCommerce is disabled, the configuration remains stored and other popups continue to work. Administrator test mode skips WooCommerce targeting but still respects the trigger, such as a five-second delay.

Frequency and consent

Use per-session limits and day intervals to avoid showing a popup too often. To require cookie consent, enable the option and enter the cookie name set by the site's consent tool. The plugin checks for that cookie but does not display a consent banner.

Language versions

When ET Lingua has at least two configured languages, Popup language appears in the builder toolbar. Select an existing version or a language marked create version. After confirmation, the builder copies layout and settings and opens the new version for translation.

A/B tests and statistics

An A/B variant is selected according to its weight and retained for the user's session. The plugin aggregates impressions, CTA clicks, Form Builder conversions, and variant impressions and clicks.

Statistics do not store the visitor's IP address. A short-lived IP hash is used only to avoid counting the same event repeatedly within two seconds.

Reports filters by date range, popup, device, and UTM source. It shows daily trends, an impression-to-click-to-conversion funnel, and breakdowns by device, page, language, UTM source, and A/B variant. Export results as CSV or JSON.

Detailed analytics are daily aggregates without IP addresses or other personal data. Trends and segments begin with the release that introduced extended analytics; earlier total counters remain available.

If a popup does not appear

Check its status, schedule, assigned pages and content types, devices, frequency limits, required consent cookie, and trigger. Administrators can use test mode to bypass targeting rules during configuration.

Developer documentation Functions, hooks, filters and integration tips.

E-Toolkit Popup Builder — Developer Guide

Query and list filters

add_filter('etpb_frontend_popup_query_args', function (array $args): array {
    $args['posts_per_page'] = 50;
    return $args;
});
  • etpb_frontend_popup_query_args(array $args) — frontend popup query arguments.
  • etpb_frontend_popups(array $popups) — retrieved popup list before the payload is built.
  • etpb_popup_matches_server_context(bool $matches, array $config, int $post_id) — final decision of the rules evaluated in PHP.
  • etpb_admin_popups(array $popups, string $context) — admin popup list; context is bootstrap, builder, next, calendar, or reports.
  • etpb_admin_popup_query_args(array $args, string $context) — query arguments used to select the builder's initial popup; the current context is bootstrap.
  • etpb_reports_query_args(array $args) — arguments for the popup list query used by report filters.
  • etpb_form_builder_forms(array $forms) — forms available to the form block.
  • etpb_builder_language_data(array $data, int $popup_id) — language and linked-version data used by the language switcher in the builder.
  • etpb_woocommerce_targeting_context(array $context) — context for optional WooCommerce rules: cart product count and value, product and category IDs, viewed product, and login state. The filter runs only for a popup with WooCommerce targeting enabled.
  • etpb_smart_tags_catalog(array $catalog) — variables available in the builder. Each item contains label, kind (text or url), and a sample preview value.
  • etpb_smart_tags_context(array $context, int $post_id) — Smart Tag values for the current request. The filter runs only when the popup configuration actually contains a variable.

List filters must preserve WP_Post items, and argument filters must preserve the WP_Query argument format.

Example custom variable:

add_filter('etpb_smart_tags_catalog', function (array $catalog): array {
    $catalog['membership_level'] = [
        'label'   => __('Membership level', 'my-plugin'),
        'kind'    => 'text',
        'preview' => __('Premium', 'my-plugin'),
    ];
    return $catalog;
});

add_filter('etpb_smart_tags_context', function (array $context): array {
    $context['membership_level'] = my_plugin_get_membership_level();
    return $context;
});

You can then use {membership_level|Guest} in the content. Use the text kind for ordinary text and url for an address.

Actions

Copy a popup configuration to a newly created language version through the public function, without reading internal metadata directly:

etpb_copy_translation_config($translation_id, $source_id);
add_action('etpb_popup_tracked', function (int $popup_id, string $event, string $variant, array $context): void {
    // $event: impression, click, or conversion.
}, 10, 4);
  • etpb_popup_created(int $popup_id) — after a popup draft is created.
  • etpb_popup_tracked(int $popup_id, string $event, string $variant, array $context) — after a statistic is stored; context contains device, page_id, language, and utm_source.

JavaScript events

After a successful submission, an E-Toolkit Form Builder form emits the etfb:submission-success event. The popup listens for it and records a conversion. A custom element embedded in a popup can report a conversion as follows:

element.dispatchEvent(new CustomEvent('etpb:conversion', { bubbles: true }));

For a single popup impression, the browser records a given conversion event at most once.