PluginProbe
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment / 2.1.23
FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment v2.1.23
3.1.13 3.1.12 3.1.11 3.1.10 3.1.9 3.1.8 3.1.7 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 All 122 releases
firebox / Inc / Core / FB / Boxes.php

Boxes.php in FireBox – WooCommerce Popup Builder, Exit Intent Popup, Email Optin & Cart Abandonment 2.1.23, at Inc/Core/FB/Boxes.php

130 lines 2.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * @package FireBox
4 * @version 2.1.23 Free
5 *
6 * @author FirePlugins <info@fireplugins.com>
7 * @link https://www.fireplugins.com
8 * @copyright Copyright © 2024 FirePlugins All Rights Reserved
9 * @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
10 */
11
12 namespace FireBox\Core\FB;
13
14 if (!defined('ABSPATH'))
15 {
16 exit; // Exit if accessed directly.
17 }
18
19 use FPFramework\Libs\Registry;
20 use FireBox\Core\Helpers\BoxHelper;
21
22 class Boxes
23 {
24 /**
25 * Render boxes
26 *
27 * @return string
28 */
29 public function render()
30 {
31 if (!$boxes = BoxHelper::getAllBoxes())
32 {
33 return;
34 }
35
36 return $this->renderAll($boxes);
37 }
38
39 /**
40 * Renders all boxes
41 *
42 * @param array $boxes
43 *
44 * @return string
45 */
46 public function renderAll($boxes)
47 {
48 $html = '';
49
50 if ($boxes instanceof \WP_Query)
51 {
52 if (!$boxes->have_posts())
53 {
54 return;
55 }
56
57 while ($boxes->have_posts())
58 {
59 $boxes->the_post();
60
61 global $post;
62
63 $this->prepare($post);
64
65 // If the mode is embed, abort.
66 if ($post->params->get('mode') == 'embed')
67 {
68 continue;
69 }
70
71 $html .= $this->get_output($post);
72 }
73
74 wp_reset_postdata();
75 }
76 else if (is_array($boxes))
77 {
78 foreach ($boxes as $box)
79 {
80 $this->prepare($box);
81
82 // If the mode is embed, abort.
83 if ($box->params->get('mode') == 'embed')
84 {
85 continue;
86 }
87
88 $html .= $this->get_output($box);
89 }
90 }
91
92 return $html;
93 }
94
95 /**
96 * Prepares the box by setting its meta settings.
97 *
98 * @param object $box
99 *
100 * @return void
101 */
102 private function prepare(&$box)
103 {
104 // get meta options for box
105 $meta = get_post_meta($box->ID, 'fpframework_meta_settings', true);
106 $box->params = new Registry($meta);
107 }
108
109 /**
110 * Returns the box output
111 *
112 * @param object $box
113 *
114 * @return string
115 */
116 private function get_output($box)
117 {
118 $logged_and_admin = (is_user_logged_in() && current_user_can('manage_options'));
119
120 $testmode = $box->params->get('testmode', false);
121
122 // if box is in test mode only logged-in admin users can see it.
123 if ($testmode == '1' && !$logged_and_admin)
124 {
125 return '';
126 }
127
128 return firebox()->box->setBox($box)->render();
129 }
130 }