Popup Builder – Responsive WordPress Pop up - Version 3.62

Version Description

Current Version of Popup Builder is 3.62

Download this release

Release Info

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

Code changes from version 3.61.1 to 3.62

com/classes/Filters.php CHANGED
@@ -124,6 +124,9 @@ class Filters
124
  if ($shouldOpenForDays && !$maxOpenPopupStatus) {
125
  $message = AdminHelper::getMaxOpenDaysMessage();
126
  }
 
 
 
127
 
128
  $alternateNotification['priority'] = $priority;
129
  $alternateNotification['type'] = $type;
124
  if ($shouldOpenForDays && !$maxOpenPopupStatus) {
125
  $message = AdminHelper::getMaxOpenDaysMessage();
126
  }
127
+ if (empty($message)) {
128
+ return array();
129
+ }
130
 
131
  $alternateNotification['priority'] = $priority;
132
  $alternateNotification['type'] = $type;
com/classes/Notification.php CHANGED
@@ -70,7 +70,10 @@ class Notification
70
  $message = $this->getMessage();
71
  $btnHtml = $this->getCloseBtnById($id);
72
  $content = '<div class="sgpb-single-notification-wrapper">
73
- <div class="sgpb-single-notification"'.$style.'>'.$message.'</div>
 
 
 
74
  <div class="sgpb-single-notification-close-btn">
75
  '.$btnHtml.'
76
  </div>
70
  $message = $this->getMessage();
71
  $btnHtml = $this->getCloseBtnById($id);
72
  $content = '<div class="sgpb-single-notification-wrapper">
73
+ <div class="sgpb-single-notification"'.$style.'>
74
+ <span class="dashicons dashicons-no-alt sgpb-hide-notification-at-all" data-id="'.$id.'"></span>
75
+ '.$message.'
76
+ </div>
77
  <div class="sgpb-single-notification-close-btn">
78
  '.$btnHtml.'
79
  </div>
com/classes/NotificationCenter.php CHANGED
@@ -18,6 +18,7 @@ class SGPBNotificationCenter
18
  add_filter('sgpbCronTimeoutSettings', array($this, 'cronAddMinutes'), 10, 1);
19
  add_action('sgpbGetNotifications', array($this, 'updateNotificationsArray'));
20
  add_action('wp_ajax_sgpb_dismiss_notification', array($this, 'dismissNotification'));
 
21
  add_action('wp_ajax_sgpb_reactivate_notification', array($this, 'reactivateNotification'));
22
  add_action('admin_head', array($this, 'menuItemCounter'));
23
  }
@@ -119,6 +120,15 @@ class SGPBNotificationCenter
119
  }
120
  $activeNotifications[] = $notification;
121
  }
 
 
 
 
 
 
 
 
 
122
 
123
  return $activeNotifications;
124
  }
@@ -133,6 +143,16 @@ class SGPBNotificationCenter
133
  return json_decode($notifications, true);
134
  }
135
 
 
 
 
 
 
 
 
 
 
 
136
  public static function displayNotifications($withoutWrapper = false)
137
  {
138
  $content = '';
@@ -190,6 +210,20 @@ class SGPBNotificationCenter
190
  wp_die();
191
  }
192
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
193
  public function reactivateNotification()
194
  {
195
  check_ajax_referer(SG_AJAX_NONCE, 'nonce');
18
  add_filter('sgpbCronTimeoutSettings', array($this, 'cronAddMinutes'), 10, 1);
19
  add_action('sgpbGetNotifications', array($this, 'updateNotificationsArray'));
20
  add_action('wp_ajax_sgpb_dismiss_notification', array($this, 'dismissNotification'));
21
+ add_action('wp_ajax_sgpb_remove_notification', array($this, 'removeNotification'));
22
  add_action('wp_ajax_sgpb_reactivate_notification', array($this, 'reactivateNotification'));
23
  add_action('admin_head', array($this, 'menuItemCounter'));
24
  }
120
  }
121
  $activeNotifications[] = $notification;
122
  }
123
+ $removedNotifications = get_option('sgpb-all-removed-notifications');
124
+ $removedNotifications = json_decode($removedNotifications, true);
125
+ foreach ($removedNotifications as $removedNotificationId) {
126
+ foreach ($activeNotifications as $key => $activeNotification) {
127
+ if ($activeNotification['id'] == $removedNotificationId) {
128
+ unset($activeNotifications[$key]);
129
+ }
130
+ }
131
+ }
132
 
133
  return $activeNotifications;
134
  }
143
  return json_decode($notifications, true);
144
  }
145
 
146
+ public static function getAllRemovedNotifications()
147
+ {
148
+ $notifications = get_option('sgpb-all-removed-notifications');
149
+ if (empty($notifications)) {
150
+ $notifications = '';
151
+ }
152
+
153
+ return json_decode($notifications, true);
154
+ }
155
+
156
  public static function displayNotifications($withoutWrapper = false)
157
  {
158
  $content = '';
210
  wp_die();
211
  }
212
 
213
+ public function removeNotification()
214
+ {
215
+ check_ajax_referer(SG_AJAX_NONCE, 'nonce');
216
+
217
+ $notificationId = sanitize_text_field($_POST['id']);
218
+ $allRemovedNotifications = self::getAllRemovedNotifications();
219
+ $allRemovedNotifications[$notificationId] = $notificationId;
220
+ $allRemovedNotifications = json_encode($allRemovedNotifications);
221
+
222
+ update_option('sgpb-all-removed-notifications', $allRemovedNotifications);
223
+
224
+ wp_die(true);
225
+ }
226
+
227
  public function reactivateNotification()
228
  {
229
  check_ajax_referer(SG_AJAX_NONCE, 'nonce');
com/classes/popups/SGPopup.php CHANGED
@@ -557,8 +557,8 @@ abstract class SGPopup
557
  $alreadySavedData = get_post_meta($popupId, 'sg_popup_scripts', true);
558
 
559
  // get styles
560
- $finalData['css'] = htmlspecialchars($data['sgpb-css-editor']);
561
- $defaultDataCss = htmlspecialchars($defaultDataCss[0]);
562
 
563
  $defaultDataCss = preg_replace('/\s/', '', $defaultDataCss);
564
  $temp = preg_replace('/\s/', '', $finalData['css']);
@@ -633,7 +633,7 @@ abstract class SGPopup
633
  if (!$isNotPostType) {
634
  $args = array(
635
  'post__in' => array_values($ruleData['value']),
636
- 'posts_per_page' => 10,
637
  'post_type' => $postType
638
  );
639
 
@@ -1240,7 +1240,6 @@ abstract class SGPopup
1240
  {
1241
  ob_start();
1242
  $wrap = 'a';
1243
-
1244
  if (!empty($args['wrap'])) {
1245
  if ($args['wrap'] == $wrap) {
1246
  $args['href'] = 'javascript:void(0)';
@@ -1253,6 +1252,9 @@ abstract class SGPopup
1253
  $attr = AdminHelper::createAttrs($args);
1254
  ?>
1255
  <<?php echo $wrap; ?>
 
 
 
1256
  class="sg-show-popup <?php echo 'sgpb-popup-id-'.$popupId; ?>"
1257
  data-sgpbpopupid="<?php echo esc_attr($popupId); ?>"
1258
  data-popup-event="<?php echo $event; ?>"
557
  $alreadySavedData = get_post_meta($popupId, 'sg_popup_scripts', true);
558
 
559
  // get styles
560
+ $finalData['css'] = $data['sgpb-css-editor'];
561
+ $defaultDataCss = $defaultDataCss[0];
562
 
563
  $defaultDataCss = preg_replace('/\s/', '', $defaultDataCss);
564
  $temp = preg_replace('/\s/', '', $finalData['css']);
633
  if (!$isNotPostType) {
634
  $args = array(
635
  'post__in' => array_values($ruleData['value']),
636
+ 'posts_per_page' => 100,
637
  'post_type' => $postType
638
  );
639
 
1240
  {
1241
  ob_start();
1242
  $wrap = 'a';
 
1243
  if (!empty($args['wrap'])) {
1244
  if ($args['wrap'] == $wrap) {
1245
  $args['href'] = 'javascript:void(0)';
1252
  $attr = AdminHelper::createAttrs($args);
1253
  ?>
1254
  <<?php echo $wrap; ?>
1255
+ <?php if ($wrap == 'a') : ?>
1256
+ href="javascript:void(0)"
1257
+ <?php endif ?>
1258
  class="sg-show-popup <?php echo 'sgpb-popup-id-'.$popupId; ?>"
1259
  data-sgpbpopupid="<?php echo esc_attr($popupId); ?>"
1260
  data-popup-event="<?php echo $event; ?>"
com/config/configPackage.php CHANGED
@@ -3,6 +3,6 @@ if (!defined('ABSPATH')) {
3
  exit();
4
  }
5
 
6
- define('SG_POPUP_VERSION', '3.61.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', '3.62');
7
  define('SGPB_POPUP_PKG', SGPB_POPUP_PKG_FREE);
8
  define('POPUP_BUILDER_BASENAME', 'popupbuilder-platinum/popup-builder.php');
com/helpers/AdminHelper.php CHANGED
@@ -850,8 +850,7 @@ class AdminHelper
850
  {
851
  $remoteData = wp_remote_get($imageUrl);
852
  $headers = wp_remote_retrieve_headers($remoteData);
853
- if ((empty($headers) || (isset($headers['content-type']) && strpos($headers['content-type'], 'image/') === false))
854
- || (is_wp_error($remoteData) && $shouldNotConvertBase64)) {
855
  return SG_POPUP_IMG_URL.'NoImage.png';
856
  }
857
 
@@ -1684,7 +1683,7 @@ class AdminHelper
1684
  }
1685
  $content = @$jsPostMeta['sgpb-'.$key];
1686
  $content = str_replace('popupId', $popupId, $content);
1687
- $content = html_entity_decode($content);
1688
 
1689
  $finalContent .= 'sgAddEvent(window, "'.$eventName.'", function(e) {';
1690
  $finalContent .= 'if (e.detail.popupId == "'.$popupId.'") {';
@@ -1698,13 +1697,14 @@ class AdminHelper
1698
  }
1699
 
1700
  // get styles
1701
- $cssPostMeta = @$postMeta['css'];
1702
-
 
1703
  $finalContent = '';
1704
  if (!empty($cssPostMeta)) {
1705
  $customStyles = '<style id="sgpb-custom-style-'.$popupId.'">';
1706
  $finalContent = str_replace('popupId', $popupId, $cssPostMeta);
1707
- $finalContent = html_entity_decode($finalContent);
1708
 
1709
  $customStyles .= $finalContent;
1710
  $customStyles .= '</style>';
850
  {
851
  $remoteData = wp_remote_get($imageUrl);
852
  $headers = wp_remote_retrieve_headers($remoteData);
853
+ if (is_wp_error($remoteData) && $shouldNotConvertBase64) {
 
854
  return SG_POPUP_IMG_URL.'NoImage.png';
855
  }
856
 
1683
  }
1684
  $content = @$jsPostMeta['sgpb-'.$key];
1685
  $content = str_replace('popupId', $popupId, $content);
1686
+ $content = html_entity_decode($content, ENT_QUOTES, 'UTF-8');
1687
 
1688
  $finalContent .= 'sgAddEvent(window, "'.$eventName.'", function(e) {';
1689
  $finalContent .= 'if (e.detail.popupId == "'.$popupId.'") {';
1697
  }
1698
 
1699
  // get styles
1700
+ if (isset($postMeta['css'])) {
1701
+ $cssPostMeta = $postMeta['css'];
1702
+ }
1703
  $finalContent = '';
1704
  if (!empty($cssPostMeta)) {
1705
  $customStyles = '<style id="sgpb-custom-style-'.$popupId.'">';
1706
  $finalContent = str_replace('popupId', $popupId, $cssPostMeta);
1707
+ $finalContent = html_entity_decode($finalContent, ENT_QUOTES, 'UTF-8');
1708
 
1709
  $customStyles .= $finalContent;
1710
  $customStyles .= '</style>';
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: 3.61.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: 3.62.1
7
  * Author: Sygnoos
8
  * Author URI: https://sygnoos.com
9
  * License: GPLv2
public/css/popupAdminStyles.css CHANGED
@@ -2523,3 +2523,12 @@ input:checked + .sgpb-slider:before {
2523
  .sgpb-review-description .sgrb-review-h2 {
2524
  margin-top: 0 !important;
2525
  }
 
 
 
 
 
 
 
 
 
2523
  .sgpb-review-description .sgrb-review-h2 {
2524
  margin-top: 0 !important;
2525
  }
2526
+
2527
+ .sgpb-hide-notification-at-all {
2528
+ float: right;
2529
+ }
2530
+
2531
+ .sgpb-hide-notification-at-all:hover {
2532
+ cursor: pointer;
2533
+ background-color: #cccccca3;
2534
+ }
public/css/theme.css CHANGED
@@ -12,7 +12,7 @@ iframe{margin:0
12
  !important;width:100%;height:100%;border:none}.sgpb-video-error-message-wrapper
13
  h1{text-align:center}.sgpb-video-error-message-wrapper h3:last-child{padding:0}#sgpb-yes-button,#sgpb-no-button{text-transform:none !important}.sg-fb-buttons-wrapper{text-align:center;min-height:25px}@media only screen and (max-width: 600px){.sgpb-scroll-wrapper{overflow:auto !important}}@media (min-width: 600px){.sgpb-fb-wrapper-standard{min-width:450px !important;overflow:hidden}}@media (min-width: 521px) and (max-width: 599px){.sgpb-fb-wrapper-standard{min-width:450px !important;overflow:scroll}#sg-facebook-like{overflow:hidden}}@media (max-width: 520px){.sgpb-fb-wrapper-standard{min-width:380px !important;max-width:380px !important;overflow:hidden}.sgpb-fb-wrapper-standard .fb-like{max-width:380px !important}#sg-facebook-like{overflow:hidden}}@media (max-width: 420px){.sgpb-fb-wrapper-standard{min-width:350px !important;max-width:350px !important;overflow:hidden}}@media (max-width: 400px){.sgpb-fb-wrapper-standard{min-width:330px !important;max-width:330px !important;overflow:scroll}}@media (max-width: 320px){.sgpb-fb-wrapper-standard{min-width:270px !important;max-width:270px !important;overflow:scroll}}.sg-hide-element{display:none}a.sg-show-popup{cursor:pointer !important}.sgpb-cursor-pointer{cursor:pointer}/*/*/.sgpb-theme-1-content{border-radius:6px;padding-bottom:0;box-shadow:rgba(0, 0, 0, 0.6) 0px 0px 0px 14px !important;border-bottom-width:35px !important;border-bottom-color:#fff !important}.sgpb-theme-4-content{padding-bottom:0;border-radius:7px !important;border-bottom-width:35px !important;border-bottom-color:#fff !important}.sgpb-popup-close-button-4{z-index:initial !important;height:auto !important}.sgpb-popup-dialog-main-div-theme-wrapper-5{border:8px
14
  solid #555;outline:1px
15
- solid #8A8A8A;background-color:#707070}.sgpb-theme-5-content{border-radius:3px !important;box-shadow:0 0 10px #222 !important}.sgpb-theme-6-content{box-shadow:#646161 0px 0px 8px 3px !important}.sgpb-popup-close-button-1:hover,.sgpb-popup-close-button-2:hover,.sgpb-popup-close-button-5:hover{z-index:initial !important;opacity:0.8}.sgpb-popup-close-button-3:hover{z-index:initial !important;opacity:0.9}.sgpb-popup-close-button-2{z-index:initial !important;border-radius:2px}.sgpb-main-image-content-wrapper
16
  img{height:auto;max-width:100%}.sgpb-overflow-hidden{width:100%;height:100%;overflow:hidden !important}.sgpb-overflow-hidden-body{width:100%;overflow:hidden !important}.sgpb-popup-content-direction-right{direction:rtl !important}.sgpb-popup-content-direction-right input[type="url"],
17
  .sgpb-popup-content-direction-right input[type="email"],
18
  .sgpb-popup-content-direction-right .sg-fb-buttons-wrapper,
12
  !important;width:100%;height:100%;border:none}.sgpb-video-error-message-wrapper
13
  h1{text-align:center}.sgpb-video-error-message-wrapper h3:last-child{padding:0}#sgpb-yes-button,#sgpb-no-button{text-transform:none !important}.sg-fb-buttons-wrapper{text-align:center;min-height:25px}@media only screen and (max-width: 600px){.sgpb-scroll-wrapper{overflow:auto !important}}@media (min-width: 600px){.sgpb-fb-wrapper-standard{min-width:450px !important;overflow:hidden}}@media (min-width: 521px) and (max-width: 599px){.sgpb-fb-wrapper-standard{min-width:450px !important;overflow:scroll}#sg-facebook-like{overflow:hidden}}@media (max-width: 520px){.sgpb-fb-wrapper-standard{min-width:380px !important;max-width:380px !important;overflow:hidden}.sgpb-fb-wrapper-standard .fb-like{max-width:380px !important}#sg-facebook-like{overflow:hidden}}@media (max-width: 420px){.sgpb-fb-wrapper-standard{min-width:350px !important;max-width:350px !important;overflow:hidden}}@media (max-width: 400px){.sgpb-fb-wrapper-standard{min-width:330px !important;max-width:330px !important;overflow:scroll}}@media (max-width: 320px){.sgpb-fb-wrapper-standard{min-width:270px !important;max-width:270px !important;overflow:scroll}}.sg-hide-element{display:none}a.sg-show-popup{cursor:pointer !important}.sgpb-cursor-pointer{cursor:pointer}/*/*/.sgpb-theme-1-content{border-radius:6px;padding-bottom:0;box-shadow:rgba(0, 0, 0, 0.6) 0px 0px 0px 14px !important;border-bottom-width:35px !important;border-bottom-color:#fff !important}.sgpb-theme-4-content{padding-bottom:0;border-radius:7px !important;border-bottom-width:35px !important;border-bottom-color:#fff !important}.sgpb-popup-close-button-4{z-index:initial !important;height:auto !important}.sgpb-popup-dialog-main-div-theme-wrapper-5{border:8px
14
  solid #555;outline:1px
15
+ solid #8A8A8A;background-color:#707070}.sgpb-theme-5-content{border-radius:3px !important;box-shadow:0 0 10px #222 !important}.sgpb-theme-6-content{box-shadow:#646161 0px 0px 8px 3px !important}.sgpb-popup-close-button-1:hover,.sgpb-popup-close-button-2:hover,.sgpb-popup-close-button-5:hover{z-index:initial !important;opacity:0.8}.sgpb-popup-close-button-3:hover{z-index:999999999 !important;opacity:0.9}.sgpb-popup-close-button-3{z-index:999999999 !important}.sgpb-popup-close-button-2{z-index:initial !important;border-radius:2px}.sgpb-main-image-content-wrapper
16
  img{height:auto;max-width:100%}.sgpb-overflow-hidden{width:100%;height:100%;overflow:hidden !important}.sgpb-overflow-hidden-body{width:100%;overflow:hidden !important}.sgpb-popup-content-direction-right{direction:rtl !important}.sgpb-popup-content-direction-right input[type="url"],
17
  .sgpb-popup-content-direction-right input[type="email"],
18
  .sgpb-popup-content-direction-right .sg-fb-buttons-wrapper,
public/js/NotificationCenter.js CHANGED
@@ -4,6 +4,7 @@ function SGPBNotificationCenter() {
4
 
5
  SGPBNotificationCenter.prototype.init = function()
6
  {
 
7
  this.dismiss();
8
  this.reactivate();
9
  this.closePromotionalNotification();
@@ -101,6 +102,25 @@ SGPBNotificationCenter.prototype.closePromotionalNotification = function()
101
  });
102
  };
103
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
104
  jQuery(document).ready(function() {
105
  var notificationCenter = new SGPBNotificationCenter();
106
  notificationCenter.init();
4
 
5
  SGPBNotificationCenter.prototype.init = function()
6
  {
7
+ this.dontShowAgain();
8
  this.dismiss();
9
  this.reactivate();
10
  this.closePromotionalNotification();
102
  });
103
  };
104
 
105
+ SGPBNotificationCenter.prototype.dontShowAgain = function()
106
+ {
107
+ var that = this;
108
+ jQuery('.sgpb-hide-notification-at-all').click(function() {
109
+ var id = jQuery(this).attr('data-id');
110
+ jQuery(this).parent().addClass('disabled');
111
+ jQuery(this).parent().addClass('sgpb-disabled');
112
+ var data = {
113
+ nonce: SGPB_JS_PARAMS.nonce,
114
+ action: 'sgpb_remove_notification',
115
+ id: id
116
+ };
117
+
118
+ jQuery.post(ajaxurl, data, function(response) {
119
+ location.reload();
120
+ });
121
+ });
122
+ }
123
+
124
  jQuery(document).ready(function() {
125
  var notificationCenter = new SGPBNotificationCenter();
126
  notificationCenter.init();
public/js/PopupBuilder.js CHANGED
@@ -2220,7 +2220,7 @@ SGPBPopup.setCookie = function(cName, cValue, exDays, cPageLevel)
2220
  }
2221
  }
2222
 
2223
- if ((typeof cPageLevel == 'boolean' && cPageLevel == false) || cPageLevel == '') {
2224
  cookiePageLevel = 'path=/;';
2225
  }
2226
 
2220
  }
2221
  }
2222
 
2223
+ if ((typeof cPageLevel == 'boolean' && cPageLevel == false) || cPageLevel == '' || typeof cPageLevel == 'undefined') {
2224
  cookiePageLevel = 'path=/;';
2225
  }
2226
 
readme.txt CHANGED
@@ -9,7 +9,7 @@ Tags: popup, pop up, wordpress popup, popup maker, exit popup, popup builder, wo
9
  Requires at least: 3.8
10
  Tested up to: 5.3
11
  Requires PHP: 5.3.3
12
- Stable tag: 3.61.1
13
  License: GPLv2 or later
14
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
15
 
@@ -185,6 +185,13 @@ Go to the Popup Builder settings and set your desired options.
185
 
186
  == Changelog ==
187
 
 
 
 
 
 
 
 
188
  = Version 3.61.1 =
189
  * Minor fix related to image popup.
190
 
@@ -1131,7 +1138,7 @@ Leave us a good review :)
1131
 
1132
  == Upgrade Notice ==
1133
 
1134
- Current Version of Popup Builder is 3.61
1135
 
1136
  == Other Notes ==
1137
 
9
  Requires at least: 3.8
10
  Tested up to: 5.3
11
  Requires PHP: 5.3.3
12
+ Stable tag: 3.62
13
  License: GPLv2 or later
14
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
15
 
185
 
186
  == Changelog ==
187
 
188
+ = Version 3.62 =
189
+ * Improvement related to image upload inside the Image Popup.
190
+ * Empty notification removed.
191
+ * Notices fixed related to custom CSS/JS.
192
+ * Close button issue fixed when the button was not clickable.
193
+ * Improvement related to cookie saving.
194
+
195
  = Version 3.61.1 =
196
  * Minor fix related to image popup.
197
 
1138
 
1139
  == Upgrade Notice ==
1140
 
1141
+ Current Version of Popup Builder is 3.62
1142
 
1143
  == Other Notes ==
1144