| @@ -1,8 +1,8 @@ | ||
| 1 | 1 | <?php |
| 2 | 2 | /** |
| 3 | 3 | * @package FireBox |
| 4 | - * @version 3.1.7 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 |
| @@ -30,8 +30,26 @@ | ||
| 30 | 30 | { |
| 31 | 31 | if (!$boxes = BoxHelper::getAllBoxes()) |
| 32 | 32 | { |
| 33 | 33 | return; |
| 34 | + } | |
| 35 | + | |
| 36 | + // Session-dependent conditions (Pageviews, Time on Site) are stamped and evaluated | |
| 37 | + // in the browser, so the stamper must run on every page — not just pages where a | |
| 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(). | |
| 43 | + if (BoxHelper::sessionConditionsInUse($boxes)) | |
| 44 | + { | |
| 45 | + add_action('wp_enqueue_scripts', function() | |
| 46 | + { | |
| 47 | + if (!wp_script_is('firebox-main', 'enqueued')) | |
| 48 | + { | |
| 49 | + wp_enqueue_script('firebox-session-stamp'); | |
| 50 | + } | |
| 51 | + }, 100); | |
| 34 | 52 | } |
| 35 | 53 | |
| 36 | 54 | return $this->renderAll($boxes); |
| 37 | 55 | } |