| @@ -1,8 +1,8 @@ | ||
| 1 | 1 | <?php |
| 2 | 2 | /** |
| 3 | 3 | * @package FireBox |
| 4 | - * @version 3.1.9 Free | |
| 4 | + * @version 3.1.14 Free | |
| 5 | 5 | * |
| 6 | 6 | * @author FirePlugins <[email protected]> |
| 7 | 7 | * @link https://www.fireplugins.com |
| 8 | 8 | * @copyright Copyright © 2026 FirePlugins All Rights Reserved |
| @@ -33,16 +33,23 @@ | ||
| 33 | 33 | return; |
| 34 | 34 | } |
| 35 | 35 | |
| 36 | 36 | // Session-dependent conditions (Pageviews, Time on Site) are stamped and evaluated |
| 37 | - // by the frontend runtime, so it must load on every page — not just pages where a | |
| 37 | + // in the browser, so the stamper must run on every page — not just pages where a | |
| 38 | 38 | // campaign renders — for the pageview counter and session start to stay accurate. |
| 39 | + // | |
| 40 | + // On pages where a campaign does render, the full runtime already contains the | |
| 41 | + // stamper, so only the standalone ~1 KB script is needed elsewhere. The priority | |
| 42 | + // runs late, after the per-box enqueues added from Box::render(). | |
| 39 | 43 | if (BoxHelper::sessionConditionsInUse($boxes)) |
| 40 | 44 | { |
| 41 | 45 | add_action('wp_enqueue_scripts', function() |
| 42 | 46 | { |
| 43 | - wp_enqueue_script('firebox-main'); | |
| 44 | - }); | |
| 47 | + if (!wp_script_is('firebox-main', 'enqueued')) | |
| 48 | + { | |
| 49 | + wp_enqueue_script('firebox-session-stamp'); | |
| 50 | + } | |
| 51 | + }, 100); | |
| 45 | 52 | } |
| 46 | 53 | |
| 47 | 54 | return $this->renderAll($boxes); |
| 48 | 55 | } |