Popup Builder – Responsive WordPress Pop up - Version 4.1.2

Version Description

Download this release

Release Info

Developer Sygnoos
Plugin Icon 128x128 Popup Builder – Responsive WordPress Pop up
Version 4.1.2
Comparing to
See all releases

Code changes from version 4.1.1 to 4.1.2

com/classes/Actions.php CHANGED
@@ -952,9 +952,6 @@ class Actions
952
  $allowToAction = AdminHelper::userCanAccessTo();
953
  Functions::clearAllTransients();
954
  // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
955
- array_walk_recursive($_POST, function(&$item){
956
- $item = sanitize_text_field($item);
957
- });
958
  $postData = SGPopup::parsePopupDataFromData($_POST);
959
  $saveMode = '';
960
  $postData['sgpb-post-id'] = $postId;
952
  $allowToAction = AdminHelper::userCanAccessTo();
953
  Functions::clearAllTransients();
954
  // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
 
 
 
955
  $postData = SGPopup::parsePopupDataFromData($_POST);
956
  $saveMode = '';
957
  $postData['sgpb-post-id'] = $postId;
com/classes/Ajax.php CHANGED
@@ -511,7 +511,7 @@ class Ajax
511
  $popupPostId = isset($_POST['popupPostId']) ? (int)sanitize_text_field($_POST['popupPostId']) : '';
512
 
513
  if(empty($formData)) {
514
- echo esc_html(SGPB_AJAX_STATUS_FALSE);
515
  wp_die();
516
  }
517
 
@@ -519,7 +519,7 @@ class Ajax
519
 
520
  // this check is made to protect ourselves from bot
521
  if(!empty($hiddenChecker)) {
522
- echo esc_html('Bot');
523
  wp_die();
524
  }
525
  global $wpdb;
@@ -548,7 +548,7 @@ class Ajax
548
  $status = SGPB_AJAX_STATUS_TRUE;
549
  }
550
 
551
- echo esc_html($status);
552
  wp_die();
553
  }
554
 
@@ -563,7 +563,7 @@ class Ajax
563
  });
564
  $popupPostId = isset($_POST['popupPostId']) ? (int)sanitize_text_field($_POST['popupPostId']) : '';
565
  if(empty($_POST)) {
566
- echo esc_html(SGPB_AJAX_STATUS_FALSE);
567
  wp_die();
568
  }
569
  $email = isset($_POST['emailValue']) ? sanitize_email($_POST['emailValue']) : '';
511
  $popupPostId = isset($_POST['popupPostId']) ? (int)sanitize_text_field($_POST['popupPostId']) : '';
512
 
513
  if(empty($formData)) {
514
+ echo SGPB_AJAX_STATUS_FALSE;
515
  wp_die();
516
  }
517
 
519
 
520
  // this check is made to protect ourselves from bot
521
  if(!empty($hiddenChecker)) {
522
+ echo 'Bot';
523
  wp_die();
524
  }
525
  global $wpdb;
548
  $status = SGPB_AJAX_STATUS_TRUE;
549
  }
550
 
551
+ echo $status;
552
  wp_die();
553
  }
554
 
563
  });
564
  $popupPostId = isset($_POST['popupPostId']) ? (int)sanitize_text_field($_POST['popupPostId']) : '';
565
  if(empty($_POST)) {
566
+ echo SGPB_AJAX_STATUS_FALSE;
567
  wp_die();
568
  }
569
  $email = isset($_POST['emailValue']) ? sanitize_email($_POST['emailValue']) : '';
com/classes/RegisterPostType.php CHANGED
@@ -223,9 +223,10 @@ class RegisterPostType
223
  //add_action('add_meta_boxes', array($this, 'popupTypeOptions'));
224
  add_filter('sgpbAdditionalMetaboxes', array($this, 'sgpbPopupTypeOptionsViewMetaboxes'), 1, 1);
225
  }
226
- if ($popupType == 'subscription') {
 
227
  add_action('add_meta_boxes', array($this, 'rightBannerMetabox'));
228
- }
229
  }
230
 
231
  public function rightBannerMetabox()
@@ -473,6 +474,6 @@ class RegisterPostType
473
  public function popupTypeRightBannerView()
474
  {
475
  $banner = AdminHelper::getRightMetaboxBannerText();
476
- echo esc_html($banner);
477
  }
478
  }
223
  //add_action('add_meta_boxes', array($this, 'popupTypeOptions'));
224
  add_filter('sgpbAdditionalMetaboxes', array($this, 'sgpbPopupTypeOptionsViewMetaboxes'), 1, 1);
225
  }
226
+ // TODO remove all content about this section!
227
+ /* if ($popupType == 'subscription') {
228
  add_action('add_meta_boxes', array($this, 'rightBannerMetabox'));
229
+ }*/
230
  }
231
 
232
  public function rightBannerMetabox()
474
  public function popupTypeRightBannerView()
475
  {
476
  $banner = AdminHelper::getRightMetaboxBannerText();
477
+ echo wp_kses($banner, AdminHelper::allowed_html_tags());
478
  }
479
  }
com/classes/ScriptsLoader.php CHANGED
@@ -132,16 +132,25 @@ class ScriptsLoader
132
  continue;
133
  }
134
  }
 
135
  foreach ($events as $event) {
136
  if (isset($event['param'])) {
137
  if (isset(self::$alreadyLoadedPopups[$popupId])) {
138
  if (self::$alreadyLoadedPopups[$popupId] == $event['param']) {
139
- continue;
 
 
 
 
 
 
140
  }
141
  }
142
  }
143
  }
144
-
 
 
145
  self::$alreadyLoadedPopups[$popupId] = $events;
146
  $events = json_encode($events);
147
  $currentUseOptions = $popup->getOptions();
@@ -159,13 +168,13 @@ class ScriptsLoader
159
  $footerContentAjax .= $footerPopupContent;
160
  } else {
161
  add_action('wp_footer', function() use ($popupId, $events, $popupOptions, $popupContent, $extraContent) {
162
- $footerPopupContent = '<style>.sgpb-main-popup-data-container-'.esc_attr($popupId).' {position:fixed;opacity: 0;filter: opacity(0%);transform: scale(0);}</style><div class="sgpb-main-popup-data-container-'.esc_attr($popupId).'">
163
  <div class="sg-popup-builder-content" id="sg-popup-content-wrapper-'.esc_attr($popupId).'" data-id="'.esc_attr($popupId).'" data-events="'.esc_attr($events).'" data-options="'.esc_attr($popupOptions).'">
164
  <div class="sgpb-popup-builder-content-'.esc_attr($popupId).' sgpb-popup-builder-content-html">'.$popupContent.'</div>
165
  </div>
166
  </div>';
167
  $footerPopupContent .= $extraContent;
168
- echo wp_kses($footerPopupContent, AdminHelper::allowed_html_tags());
169
  });
170
  }
171
  }
132
  continue;
133
  }
134
  }
135
+ $canContinue = false;
136
  foreach ($events as $event) {
137
  if (isset($event['param'])) {
138
  if (isset(self::$alreadyLoadedPopups[$popupId])) {
139
  if (self::$alreadyLoadedPopups[$popupId] == $event['param']) {
140
+ $canContinue = true;
141
+ }
142
+ }
143
+ } else {
144
+ if (isset(self::$alreadyLoadedPopups[$popupId])) {
145
+ if (false !== array_search($event, array_column(self::$alreadyLoadedPopups[$popupId], 'param'))) {
146
+ $canContinue = true;
147
  }
148
  }
149
  }
150
  }
151
+ if ($canContinue) {
152
+ continue;
153
+ }
154
  self::$alreadyLoadedPopups[$popupId] = $events;
155
  $events = json_encode($events);
156
  $currentUseOptions = $popup->getOptions();
168
  $footerContentAjax .= $footerPopupContent;
169
  } else {
170
  add_action('wp_footer', function() use ($popupId, $events, $popupOptions, $popupContent, $extraContent) {
171
+ $footerPopupContent = '<div class="sgpb-main-popup-data-container-'.esc_attr($popupId).'" style="position:fixed;opacity: 0;filter: opacity(0%);transform: scale(0);">
172
  <div class="sg-popup-builder-content" id="sg-popup-content-wrapper-'.esc_attr($popupId).'" data-id="'.esc_attr($popupId).'" data-events="'.esc_attr($events).'" data-options="'.esc_attr($popupOptions).'">
173
  <div class="sgpb-popup-builder-content-'.esc_attr($popupId).' sgpb-popup-builder-content-html">'.$popupContent.'</div>
174
  </div>
175
  </div>';
176
  $footerPopupContent .= $extraContent;
177
+ echo $footerPopupContent;
178
  });
179
  }
180
  }
com/classes/popups/FblikePopup.php CHANGED
@@ -39,7 +39,7 @@ class FblikePopup extends SGPopup
39
  var js, fjs = d.getElementsByTagName(s)[0];
40
  if (d.getElementById(id)) return;
41
  js = d.createElement(s); js.id = id;
42
- js.src = 'https://connect.facebook.net/<?php echo esc_html($locale);?>/all.js#xfbml=1&version=v2.11&appId=<?php echo esc_html(SGPB_FACEBOOK_APP_ID);?>';
43
  fjs.parentNode.insertBefore(js, fjs);
44
  }(document, 'script', 'facebook-jssdk'));
45
  });
@@ -55,14 +55,14 @@ class FblikePopup extends SGPopup
55
  {
56
  ob_start();
57
  ?>
58
- <div class='sg-fb-buttons-wrapper sgpb-fb-wrapper-<?php echo esc_attr($layout);?>'>
59
  <div class="fb-like"
60
- data-href="<?php echo esc_attr($shareUrl); ?>"
61
- data-layout="<?php echo esc_attr($layout); ?>"
62
  data-action="like"
63
  data-size="small"
64
  data-show-faces="true"
65
- data-share="<?php echo esc_attr($shareButtonStatus); ?>">
66
  </div>
67
  </div>
68
  <?php
@@ -84,13 +84,12 @@ class FblikePopup extends SGPopup
84
 
85
  $scripts = $this->getScripts();
86
  $buttonConfig = $this->getButtonConfig($shareUrl, $layout, $shareButtonStatus);
87
- $allowed_html = AdminHelper::allowed_html_tags();
88
  ob_start();
89
  ?>
90
  <div id="sg-facebook-like">
91
  <div id="fb-root"></div>
92
- <?php echo wp_kses($buttonConfig, $allowed_html); ?>
93
- <?php echo wp_kses($scripts, $allowed_html); ?>
94
  </div>
95
  <?php
96
  $content = ob_get_contents();
39
  var js, fjs = d.getElementsByTagName(s)[0];
40
  if (d.getElementById(id)) return;
41
  js = d.createElement(s); js.id = id;
42
+ js.src = 'https://connect.facebook.net/<?php echo $locale;?>/all.js#xfbml=1&version=v2.11&appId=<?php echo SGPB_FACEBOOK_APP_ID;?>';
43
  fjs.parentNode.insertBefore(js, fjs);
44
  }(document, 'script', 'facebook-jssdk'));
45
  });
55
  {
56
  ob_start();
57
  ?>
58
+ <div class='sg-fb-buttons-wrapper sgpb-fb-wrapper-<?php echo $layout;?>'>
59
  <div class="fb-like"
60
+ data-href="<?php echo $shareUrl; ?>"
61
+ data-layout="<?php echo $layout; ?>"
62
  data-action="like"
63
  data-size="small"
64
  data-show-faces="true"
65
+ data-share="<?php echo $shareButtonStatus; ?>">
66
  </div>
67
  </div>
68
  <?php
84
 
85
  $scripts = $this->getScripts();
86
  $buttonConfig = $this->getButtonConfig($shareUrl, $layout, $shareButtonStatus);
 
87
  ob_start();
88
  ?>
89
  <div id="sg-facebook-like">
90
  <div id="fb-root"></div>
91
+ <?php echo $buttonConfig; ?>
92
+ <?php echo $scripts; ?>
93
  </div>
94
  <?php
95
  $content = ob_get_contents();
com/classes/popups/SubscriptionPopup.php CHANGED
@@ -524,10 +524,10 @@ class SubscriptionPopup extends SGPopup
524
  ob_start();
525
  ?>
526
  <div class="subs-form-messages sgpb-alert sgpb-alert-success sg-hide-element">
527
- <p><?php echo esc_html($successMessage); ?></p>
528
  </div>
529
  <div class="subs-form-messages sgpb-alert sgpb-alert-danger sg-hide-element">
530
- <p><?php echo esc_html($errorMessage); ?></p>
531
  </div>
532
  <?php
533
  $messages = ob_get_contents();
524
  ob_start();
525
  ?>
526
  <div class="subs-form-messages sgpb-alert sgpb-alert-success sg-hide-element">
527
+ <p><?php echo $successMessage; ?></p>
528
  </div>
529
  <div class="subs-form-messages sgpb-alert sgpb-alert-danger sg-hide-element">
530
+ <p><?php echo $errorMessage; ?></p>
531
  </div>
532
  <?php
533
  $messages = ob_get_contents();
com/config/configPackage.php CHANGED
@@ -3,6 +3,6 @@ if (!defined('ABSPATH')) {
3
  exit();
4
  }
5
 
6
- define('SG_POPUP_VERSION', '4.1.1');
7
  define('SGPB_POPUP_PKG', SGPB_POPUP_PKG_FREE);
8
  define('POPUP_BUILDER_BASENAME', 'popupbuilder-platinum/popup-builder.php');
3
  exit();
4
  }
5
 
6
+ define('SG_POPUP_VERSION', '4.1.2');
7
  define('SGPB_POPUP_PKG', SGPB_POPUP_PKG_FREE);
8
  define('POPUP_BUILDER_BASENAME', 'popupbuilder-platinum/popup-builder.php');
com/helpers/AdminHelper.php CHANGED
@@ -2170,27 +2170,27 @@ class AdminHelper
2170
  switch($key) {
2171
  case 'POPUP_SOCIAL':
2172
  if (defined('SGPB_SOCIAL_POPUP_VERSION')) {
2173
- $version = @constant('SGPB_SOCIAL_POPUP_VERSION');
2174
  } else {
2175
- $version = @constant('SG_VERSION_'.$key);
2176
  }
2177
  break;
2178
  case 'POPUP_AGE_VERIFICATION':
2179
  if (defined('SGPB_AGE_VERIFICATION_POPUP_VERSION')) {
2180
- $version = @constant('SGPB_AGE_VERIFICATION_POPUP_VERSION');
2181
  } else{
2182
- $version = @constant('SG_VERSION_'.$key);
2183
  }
2184
  break;
2185
  case 'POPUP_GAMIFICATION':
2186
  if (defined('POPUP_GAMIFICATION')) {
2187
- $version = @constant('POPUP_GAMIFICATION');
2188
  } else {
2189
- $version = @constant('SG_VERSION_'.$key);
2190
  }
2191
  break;
2192
  default :
2193
- $version = @constant('SG_VERSION_'.$key);
2194
  break;
2195
  }
2196
  // If the version of the extension is not found, update will not possibly be shown
2170
  switch($key) {
2171
  case 'POPUP_SOCIAL':
2172
  if (defined('SGPB_SOCIAL_POPUP_VERSION')) {
2173
+ $version = defined('SGPB_SOCIAL_POPUP_VERSION') ? constant('SGPB_SOCIAL_POPUP_VERSION') : '';
2174
  } else {
2175
+ $version = defined('SG_VERSION_'.$key) ? constant('SG_VERSION_'.$key) : '';
2176
  }
2177
  break;
2178
  case 'POPUP_AGE_VERIFICATION':
2179
  if (defined('SGPB_AGE_VERIFICATION_POPUP_VERSION')) {
2180
+ $version = defined('SGPB_AGE_VERIFICATION_POPUP_VERSION') ? constant('SGPB_AGE_VERIFICATION_POPUP_VERSION') : '';
2181
  } else{
2182
+ $version = defined('SG_VERSION_'.$key) ? constant('SG_VERSION_'.$key) : '';
2183
  }
2184
  break;
2185
  case 'POPUP_GAMIFICATION':
2186
  if (defined('POPUP_GAMIFICATION')) {
2187
+ $version = defined('POPUP_GAMIFICATION') ? constant('POPUP_GAMIFICATION') : '';
2188
  } else {
2189
+ $version = defined('SG_VERSION_'.$key) ? constant('SG_VERSION_'.$key) : '';
2190
  }
2191
  break;
2192
  default :
2193
+ $version = defined('SG_VERSION_'.$key) ? constant('SG_VERSION_'.$key) : '';
2194
  break;
2195
  }
2196
  // If the version of the extension is not found, update will not possibly be shown
com/libs/Reports.php CHANGED
@@ -35,7 +35,23 @@ class SGPBReports
35
 
36
  public function renderReportData()
37
  {
38
- require_once(SG_POPUP_VIEWS_PATH.'debugReport.php');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  }
40
 
41
  public function filterOptions($key, $options)
35
 
36
  public function renderReportData()
37
  {
38
+ global $wp_version;
39
+ global $SGPB_DEBUG_POPUP_BUILDER_DETAILS;
40
+ ScriptsIncluder::registerScript('DebugReport.js', array(
41
+ 'dirUrl' => SG_POPUP_JS_URL,
42
+ 'dep' => array('jquery'),
43
+ 'ver' => SG_POPUP_VERSION,
44
+ 'inFooter' => true
45
+ )
46
+ );
47
+ ScriptsIncluder::enqueueScript('DebugReport.js');
48
+ if (version_compare($wp_version, '4.5', '>')){
49
+ /* after wp 4.5 version */
50
+ ScriptsIncluder::addInlineScripts('DebugReport.js', 'var SGPB_DEBUG_POPUP_BUILDER_DETAILS = ' .json_encode($SGPB_DEBUG_POPUP_BUILDER_DETAILS).';');
51
+ } else {
52
+ /* since wp 4.5 version */
53
+ ScriptsIncluder::localizeScript('DebugReport.js', 'SGPB_DEBUG_POPUP_BUILDER_DETAILS', $SGPB_DEBUG_POPUP_BUILDER_DETAILS);
54
+ }
55
  }
56
 
57
  public function filterOptions($key, $options)
popup-builder.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Popup Builder
4
  * Plugin URI: https://popup-builder.com
5
  * Description: The most complete popup plugin. Html, image, iframe, shortcode, video and many other popup types. Manage popup dimensions, effects, themes and more.
6
- * Version: 4.1.1
7
  * Author: Sygnoos
8
  * Author URI: https://sygnoos.com
9
  * License: GPLv2
3
  * Plugin Name: Popup Builder
4
  * Plugin URI: https://popup-builder.com
5
  * Description: The most complete popup plugin. Html, image, iframe, shortcode, video and many other popup types. Manage popup dimensions, effects, themes and more.
6
+ * Version: 4.1.2
7
  * Author: Sygnoos
8
  * Author URI: https://sygnoos.com
9
  * License: GPLv2
public/js/DebugReport.js ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ function debugModeInit()
2
+ {
3
+ if (typeof SGPB_DEBUG_POPUP_BUILDER_DETAILS == 'undefined') {
4
+ return false;
5
+ }
6
+
7
+ console.log('%c POPUP BUILDER AVAILABLE DEBUG DETAILS', 'background: #eeeeee; color: #000000');
8
+
9
+ for (var popupId in SGPB_DEBUG_POPUP_BUILDER_DETAILS) {
10
+ console.groupCollapsed('Details for the '+ popupId +' popup:');
11
+
12
+ var debugParamas = SGPB_DEBUG_POPUP_BUILDER_DETAILS[popupId];
13
+ for (var i in debugParamas) {
14
+ if (jQuery.isEmptyObject(debugParamas[i])) {
15
+ continue;
16
+ }
17
+
18
+ var paramName = debugParamas[i];
19
+
20
+ console.info('%c '+i.toUpperCase() +': ', 'background: #ccc; color: #000000');
21
+
22
+ for (var x in paramName) {
23
+ if (typeof paramName[x]['name'] != 'undefined') {
24
+ console.log('%c Option name ------- ' + paramName[x]['name'], 'background: #eeeeee; color: #000000');
25
+ }
26
+ if (typeof paramName[x]['operator'] != 'undefined') {
27
+ console.log('%c Option operator --- ' + paramName[x]['operator'], 'background: #eeeeee; color: #000000');
28
+ }
29
+ if (typeof paramName[x]['value'] != 'undefined') {
30
+ if (typeof paramName[x]['value'] == 'string') {
31
+ /* when empty string we need to set it 0 (delay) */
32
+ if (paramName[x]['value'] == '') {
33
+ paramName[x]['value'] = 0;
34
+ }
35
+ console.log('%c Option value ------ ' + paramName[x]['value'], 'background: #eeeeee; color: #000000');
36
+ }
37
+ else {
38
+ console.log('%c Option value ------ ' + Object.values(paramName[x]['value']), 'background: #eeeeee; color: #000000');
39
+ }
40
+ }
41
+ if (i == 'options') {
42
+ // all other options here
43
+ for (var option in paramName[x]) {
44
+ console.log('%c '+option+ ' - ' + paramName[x][option], 'background: #eeeeee; color: #000000');
45
+ }
46
+ }
47
+ console.log('<->');
48
+ }
49
+ }
50
+ console.groupEnd();
51
+ }
52
+ };
53
+
54
+ jQuery(document).ready(function()
55
+ {
56
+ debugModeInit();
57
+ });
public/views/customEditor.php CHANGED
@@ -36,7 +36,7 @@ $savedData = get_post_meta($popupId , 'sg_popup_scripts', true);
36
  mode="<?php echo esc_attr($editorModeJs); ?>"
37
  name="sgpb-<?php echo esc_attr($key); ?>"><?php
38
  if (!empty($savedData['js']['sgpb-'.$key])) {
39
- echo esc_html($savedData['js']['sgpb-'.$key]);
40
  }
41
  ?></textarea>
42
  </div>
36
  mode="<?php echo esc_attr($editorModeJs); ?>"
37
  name="sgpb-<?php echo esc_attr($key); ?>"><?php
38
  if (!empty($savedData['js']['sgpb-'.$key])) {
39
+ echo esc_html($savedData['js']['sgpb-'.$key]);
40
  }
41
  ?></textarea>
42
  </div>
readme.txt CHANGED
@@ -8,7 +8,7 @@ Tags: popup, pop up, wordpress popup, popup maker, exit popup, popup builder, wo
8
  Requires at least: 4.2
9
  Tested up to: 5.9
10
  Requires PHP: 5.3.3
11
- Stable tag: 4.1.1
12
  License: GPLv2 or later
13
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
14
 
@@ -145,6 +145,12 @@ Go to the Popup Builder settings and set your desired options.
145
 
146
  == Changelog ==
147
 
 
 
 
 
 
 
148
  = Version 4.1.1 =
149
  * Improvement of code related to making our plugin more secure
150
  * Bug fixed related to validation of some fields
@@ -504,4 +510,4 @@ Leave us a good review :)
504
 
505
  == Upgrade Notice ==
506
 
507
- Current Version of Popup Builder is 4.1.1
8
  Requires at least: 4.2
9
  Tested up to: 5.9
10
  Requires PHP: 5.3.3
11
+ Stable tag: 4.1.2
12
  License: GPLv2 or later
13
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
14
 
145
 
146
  == Changelog ==
147
 
148
+ = Version 4.1.2 =
149
+ * Bug fixed related to the debug mode that was not working properly
150
+ * Bug fixed related to custom js and css codes
151
+ * Bug fixed related to popups that are set with shortcodes
152
+ * Bug fixed related to compatibility with PHP 8
153
+
154
  = Version 4.1.1 =
155
  * Improvement of code related to making our plugin more secure
156
  * Bug fixed related to validation of some fields
510
 
511
  == Upgrade Notice ==
512
 
513
+ Current Version of Popup Builder is 4.1.2