Popup Builder – Responsive WordPress Pop up - Version 3.72

Version Description

Current Version of Popup Builder is 3.72

Download this release

Release Info

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

Code changes from version 3.71 to 3.72

com/classes/Actions.php CHANGED
@@ -932,7 +932,7 @@ class Actions
932
  }
933
  else if ($column == 'counter') {
934
  $count = $popup->getPopupOpeningCountById($postId);
935
- echo '<div class="sgpb-counter-wrapper"><div class="sgpb-dashboard-popup-count-wrapper">'.$count.'</div>'.'<input onclick="SGPBBackend.resetCount('.$postId.');" type="button" name="" class="button sgpb-reset-count-btn" value="'.__('reset', SG_POPUP_TEXT_DOMAIN).'"></div>';
936
  }
937
  else if ($column == 'type') {
938
  global $SGPB_POPUP_TYPES;
@@ -1209,16 +1209,12 @@ class Actions
1209
  public function getSubscribersCsvFile()
1210
  {
1211
  global $wpdb;
1212
- $allowToAction = AdminHelper::userCanAccessTo();
1213
- if (!$allowToAction) {
1214
- return false;
1215
- }
1216
-
1217
  $allowToAction = AdminHelper::userCanAccessTo();
1218
  if (!$allowToAction) {
1219
  wp_redirect(get_home_url());
1220
  exit();
1221
  }
 
1222
  $query = AdminHelper::subscribersRelatedQuery();
1223
  if (isset($_GET['orderby']) && !empty($_GET['orderby'])) {
1224
  if (isset($_GET['order']) && !empty($_GET['order'])) {
@@ -1299,11 +1295,15 @@ class Actions
1299
  if (isset($postData['sgpb-enable-debug-mode'])) {
1300
  $enableDebugMode = 1;
1301
  }
 
 
 
1302
  $userRoles = @$postData['sgpb-user-roles'];
1303
 
1304
  update_option('sgpb-user-roles', $userRoles);
1305
  update_option('sgpb-dont-delete-data', $deleteData);
1306
  update_option('sgpb-enable-debug-mode', $enableDebugMode);
 
1307
 
1308
  AdminHelper::filterUserCapabilitiesForTheUserRoles('save');
1309
 
932
  }
933
  else if ($column == 'counter') {
934
  $count = $popup->getPopupOpeningCountById($postId);
935
+ echo '<div class="sgpb-counter-wrapper"><div class="sgpb-dashboard-popup-count-wrapper">'.$count.'</div>'.'<input onclick="SGPBBackend.resetCount('.$postId.', true);" type="button" name="" class="button sgpb-reset-count-btn" value="'.__('reset', SG_POPUP_TEXT_DOMAIN).'"></div>';
936
  }
937
  else if ($column == 'type') {
938
  global $SGPB_POPUP_TYPES;
1209
  public function getSubscribersCsvFile()
1210
  {
1211
  global $wpdb;
 
 
 
 
 
1212
  $allowToAction = AdminHelper::userCanAccessTo();
1213
  if (!$allowToAction) {
1214
  wp_redirect(get_home_url());
1215
  exit();
1216
  }
1217
+
1218
  $query = AdminHelper::subscribersRelatedQuery();
1219
  if (isset($_GET['orderby']) && !empty($_GET['orderby'])) {
1220
  if (isset($_GET['order']) && !empty($_GET['order'])) {
1295
  if (isset($postData['sgpb-enable-debug-mode'])) {
1296
  $enableDebugMode = 1;
1297
  }
1298
+ if (isset($postData['sgpb-disable-analytics-general'])) {
1299
+ $disableAnalytics = 1;
1300
+ }
1301
  $userRoles = @$postData['sgpb-user-roles'];
1302
 
1303
  update_option('sgpb-user-roles', $userRoles);
1304
  update_option('sgpb-dont-delete-data', $deleteData);
1305
  update_option('sgpb-enable-debug-mode', $enableDebugMode);
1306
+ update_option('sgpb-disable-analytics-general', $disableAnalytics);
1307
 
1308
  AdminHelper::filterUserCapabilitiesForTheUserRoles('save');
1309
 
com/classes/Ajax.php CHANGED
@@ -8,7 +8,10 @@ class Ajax
8
 
9
  public function __construct()
10
  {
11
- $this->actions();
 
 
 
12
  }
13
 
14
  public function setPostData($postData)
8
 
9
  public function __construct()
10
  {
11
+ $allowToAction = AdminHelper::userCanAccessTo();
12
+ if ($allowToAction) {
13
+ $this->actions();
14
+ }
15
  }
16
 
17
  public function setPostData($postData)
com/classes/Filters.php CHANGED
@@ -480,6 +480,14 @@ class Filters
480
  'priority' => 'high'
481
  );
482
 
 
 
 
 
 
 
 
 
483
  return $metaboxes;
484
  }
485
 
480
  'priority' => 'high'
481
  );
482
 
483
+ $metaboxes['popupOpeningCounter'] = array(
484
+ 'key' => 'popupOpeningCounter',
485
+ 'displayName' => 'Popup statistics',
486
+ 'filePath' => SG_POPUP_VIEWS_PATH.'popupOpeningCounter.php',
487
+ 'context' => 'side',
488
+ 'priority' => 'low'
489
+ );
490
+
491
  return $metaboxes;
492
  }
493
 
com/classes/Installer.php CHANGED
@@ -140,6 +140,8 @@ class Installer
140
  delete_option('sgpbUnsubscribeColumnFixed');
141
  delete_option('sgpbActivateExtensions');
142
  delete_option('sgpbExtensionsInfo');
 
 
143
 
144
  // Trigger popup data delete action
145
  do_action('sgpbDeletePopupData');
140
  delete_option('sgpbUnsubscribeColumnFixed');
141
  delete_option('sgpbActivateExtensions');
142
  delete_option('sgpbExtensionsInfo');
143
+ delete_option('sgpb-enable-debug-mode');
144
+ delete_option('sgpb-disable-analytics-general');
145
 
146
  // Trigger popup data delete action
147
  do_action('sgpbDeletePopupData');
com/classes/PopupChecker.php CHANGED
File without changes
com/classes/ScriptsLoader.php CHANGED
@@ -116,7 +116,7 @@ class ScriptsLoader
116
  $popupOptions = $this->getEncodedOptionsFromPopup($popup);
117
  $popupOptions = apply_filters('sgpbLoadToFooterOptions', $popupOptions);
118
  add_action('wp_footer', function() use ($popupId, $events, $popupOptions, $popupContent, $extraContent) {
119
- $footerPopupContent = '<div style="position:fixed;left: -999999999999999999999px;">
120
  <div class="sg-popup-builder-content" id="sg-popup-content-wrapper-'.$popupId.'" data-id="'.esc_attr($popupId).'" data-events="'.esc_attr($events).'" data-options="'.esc_attr($popupOptions).'">
121
  <div class="sgpb-popup-builder-content-'.esc_attr($popupId).' sgpb-popup-builder-content-html">'.$popupContent.'</div>
122
  </div>
116
  $popupOptions = $this->getEncodedOptionsFromPopup($popup);
117
  $popupOptions = apply_filters('sgpbLoadToFooterOptions', $popupOptions);
118
  add_action('wp_footer', function() use ($popupId, $events, $popupOptions, $popupContent, $extraContent) {
119
+ $footerPopupContent = '<div class="sgpb-main-popup-data-container-'.$popupId.'" style="position:fixed;opacity: 0;filter: opacity(0%);transform: scale(0);">
120
  <div class="sg-popup-builder-content" id="sg-popup-content-wrapper-'.$popupId.'" data-id="'.esc_attr($popupId).'" data-events="'.esc_attr($events).'" data-options="'.esc_attr($popupOptions).'">
121
  <div class="sgpb-popup-builder-content-'.esc_attr($popupId).' sgpb-popup-builder-content-html">'.$popupContent.'</div>
122
  </div>
com/classes/extension/SgpbPopupExtension.php CHANGED
@@ -276,7 +276,8 @@ class SgpbPopupExtension implements SgpbIPopupExtension
276
  'isPreview' => isset($_GET['sg_popup_preview_id']),
277
  'convertedIdsReverse' => AdminHelper::getReverseConvertIds(),
278
  'dontShowPopupExpireTime' => SGPB_DONT_SHOW_POPUP_EXPIRY,
279
- 'conditionalJsClasses' => apply_filters('sgpbConditionalJsClasses', array())
 
280
  )
281
  );
282
 
276
  'isPreview' => isset($_GET['sg_popup_preview_id']),
277
  'convertedIdsReverse' => AdminHelper::getReverseConvertIds(),
278
  'dontShowPopupExpireTime' => SGPB_DONT_SHOW_POPUP_EXPIRY,
279
+ 'conditionalJsClasses' => apply_filters('sgpbConditionalJsClasses', array()),
280
+ 'disableAnalyticsGeneral' => AdminHelper::getOption('sgpb-enable-debug-mode')
281
  )
282
  );
283
 
com/classes/extension/SgpbPopupExtensionRegister.php CHANGED
@@ -4,6 +4,21 @@ use sgpb\AdminHelper;
4
  class SgpbPopupExtensionRegister
5
  {
6
  public static function register($pluginName, $classPath, $className, $options = array())
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  {
8
  $registeredData = array();
9
  $registeredPlugins = AdminHelper::getOption(SGPB_POPUP_BUILDER_REGISTERED_PLUGINS);
@@ -37,7 +52,30 @@ class SgpbPopupExtensionRegister
37
  do_action('sgpb_extension_activation_hook', $pluginData);
38
  }
39
 
 
 
 
 
 
 
40
  public static function remove($pluginName)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  {
42
  $registeredPlugins = AdminHelper::getOption(SGPB_POPUP_BUILDER_REGISTERED_PLUGINS);
43
 
4
  class SgpbPopupExtensionRegister
5
  {
6
  public static function register($pluginName, $classPath, $className, $options = array())
7
+ {
8
+ if (is_multisite() && is_network_admin()) {
9
+ $blogs = wp_get_sites();
10
+ foreach ($blogs as $blog) {
11
+ switch_to_blog($blog['blog_id']);
12
+ self::registerPlugin($pluginName, $classPath, $className, $options);
13
+ restore_current_blog();
14
+ }
15
+ return;
16
+ }
17
+
18
+ self::registerPlugin($pluginName, $classPath, $className, $options);
19
+ }
20
+
21
+ private static function registerPlugin($pluginName, $classPath, $className, $options = array())
22
  {
23
  $registeredData = array();
24
  $registeredPlugins = AdminHelper::getOption(SGPB_POPUP_BUILDER_REGISTERED_PLUGINS);
52
  do_action('sgpb_extension_activation_hook', $pluginData);
53
  }
54
 
55
+ private static function isPluginActive($plugin)
56
+ {
57
+ $activePlugins = (array)AdminHelper::getOption('active_plugins', array(1));
58
+ return in_array($plugin, $activePlugins, true);
59
+ }
60
+
61
  public static function remove($pluginName)
62
+ {
63
+ if (is_multisite() && is_network_admin()) {
64
+ $blogs = wp_get_sites();
65
+ foreach ($blogs as $blog) {
66
+ switch_to_blog($blog['blog_id']);
67
+ if (!self::isPluginActive($pluginName)) {
68
+ self::removePlugin($pluginName);
69
+ }
70
+ restore_current_blog();
71
+ }
72
+ return;
73
+ }
74
+
75
+ self::removePlugin($pluginName);
76
+ }
77
+
78
+ private static function removePlugin($pluginName)
79
  {
80
  $registeredPlugins = AdminHelper::getOption(SGPB_POPUP_BUILDER_REGISTERED_PLUGINS);
81
 
com/classes/popups/SGPopup.php CHANGED
@@ -156,12 +156,12 @@ abstract class SGPopup
156
 
157
  $loadableModes = $this->getLoadableModes();
158
 
159
- if (@$loadableModes['attr_event']) {
160
  $customEvents = SGPopup::getPostPopupCustomEvent($postId, $popupId);
161
  $events = array_merge($events, $customEvents);
162
  }
163
 
164
- if (@$loadableModes['option_event'] || is_null($loadableModes)) {
165
  $optionEvents = $this->getEvents();
166
  if (!is_array($optionEvents)) {
167
  $optionEvents = array();
156
 
157
  $loadableModes = $this->getLoadableModes();
158
 
159
+ if (isset($loadableModes['attr_event'])) {
160
  $customEvents = SGPopup::getPostPopupCustomEvent($postId, $popupId);
161
  $events = array_merge($events, $customEvents);
162
  }
163
 
164
+ if (isset($loadableModes['option_event']) || is_null($loadableModes)) {
165
  $optionEvents = $this->getEvents();
166
  if (!is_array($optionEvents)) {
167
  $optionEvents = array();
com/config/configPackage.php CHANGED
@@ -3,6 +3,6 @@ if (!defined('ABSPATH')) {
3
  exit();
4
  }
5
 
6
- define('SG_POPUP_VERSION', '3.7.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.72');
7
  define('SGPB_POPUP_PKG', SGPB_POPUP_PKG_FREE);
8
  define('POPUP_BUILDER_BASENAME', 'popupbuilder-platinum/popup-builder.php');
com/config/dataConfig.php CHANGED
@@ -802,6 +802,7 @@ class SgpbDataConfig
802
  $options[] = array('name' => 'sgpb-conditions', 'type' => 'array', 'defaultValue' => $conditionsDefaultData, 'min-version' => SGPB_POPUP_PRO_MIN_VERSION, 'min-pkg' => SGPB_POPUP_PKG_SILVER);
803
  $options[] = array('name' => 'sgpb-behavior-after-special-events', 'type' => 'array', 'defaultValue' => $specialEventsDefaultData);
804
  $options[] = array('name' => 'sgpb-type', 'type' => 'text', 'defaultValue' => 'html');
 
805
  $options[] = array('name' => 'sgpb-esc-key', 'type' => 'checkbox', 'defaultValue' => 'on');
806
  $options[] = array('name' => 'sgpb-enable-close-button', 'type' => 'checkbox', 'defaultValue' => 'on');
807
  $options[] = array('name' => 'sgpb-enable-content-scrolling', 'type' => 'checkbox', 'defaultValue' => 'on');
802
  $options[] = array('name' => 'sgpb-conditions', 'type' => 'array', 'defaultValue' => $conditionsDefaultData, 'min-version' => SGPB_POPUP_PRO_MIN_VERSION, 'min-pkg' => SGPB_POPUP_PKG_SILVER);
803
  $options[] = array('name' => 'sgpb-behavior-after-special-events', 'type' => 'array', 'defaultValue' => $specialEventsDefaultData);
804
  $options[] = array('name' => 'sgpb-type', 'type' => 'text', 'defaultValue' => 'html');
805
+ $options[] = array('name' => 'sgpb-popup-counting-disabled', 'type' => 'checkbox', 'defaultValue' => '');
806
  $options[] = array('name' => 'sgpb-esc-key', 'type' => 'checkbox', 'defaultValue' => 'on');
807
  $options[] = array('name' => 'sgpb-enable-close-button', 'type' => 'checkbox', 'defaultValue' => 'on');
808
  $options[] = array('name' => 'sgpb-enable-content-scrolling', 'type' => 'checkbox', 'defaultValue' => 'on');
com/helpers/AdminHelper.php CHANGED
@@ -1178,6 +1178,7 @@ class AdminHelper
1178
  {
1179
  $contentType = 'text/html';
1180
  $charset = 'UTF-8';
 
1181
 
1182
  if (!empty($args['contentType'])) {
1183
  $contentType = $args['contentType'];
@@ -1185,8 +1186,9 @@ class AdminHelper
1185
  if (!empty($args['charset'])) {
1186
  $charset = $args['charset'];
1187
  }
 
1188
  $headers = 'MIME-Version: 1.0'."\r\n";
1189
- $headers .= 'From: '.$fromEmail."\r\n";
1190
  $headers .= 'Content-type: '.$contentType.'; charset='.$charset.''."\r\n"; //set UTF-8
1191
 
1192
  return $headers;
@@ -1354,7 +1356,7 @@ class AdminHelper
1354
  }
1355
 
1356
  /**
1357
- * Update options
1358
  *
1359
  * @since 3.1.9
1360
  *
@@ -1362,44 +1364,17 @@ class AdminHelper
1362
  */
1363
  public static function updateOption($optionKey, $optionValue)
1364
  {
1365
- if (is_multisite()) {
1366
- if ($optionKey == SGPB_POPUP_BUILDER_REGISTERED_PLUGINS && !is_network_admin()) {
1367
- $blogId = get_current_blog_id();
1368
- update_network_option($blogId, $optionKey, $optionValue);
1369
- }
1370
- else {
1371
- update_site_option($optionKey, $optionValue);
1372
- }
1373
- }
1374
- else {
1375
- update_option($optionKey, $optionValue);
1376
- }
1377
  }
1378
 
1379
- public static function getOption($optionKey)
1380
  {
1381
-
1382
- if (is_multisite()) {
1383
- if ($optionKey == SGPB_POPUP_BUILDER_REGISTERED_PLUGINS && !is_network_admin()) {
1384
- $blogId = get_current_blog_id();
1385
- return get_network_option($blogId, $optionKey);
1386
- }
1387
- else {
1388
- return get_site_option($optionKey);
1389
- }
1390
- }
1391
-
1392
- return get_option($optionKey);
1393
  }
1394
 
1395
  public static function deleteOption($optionKey)
1396
  {
1397
- if (is_multisite()) {
1398
- delete_site_option($optionKey);
1399
- }
1400
- else {
1401
- delete_option($optionKey);
1402
- }
1403
  }
1404
 
1405
  /**
@@ -1912,9 +1887,8 @@ class AdminHelper
1912
  // finally get the correct version number
1913
  $known = array('Version', $ub, 'other');
1914
  $pattern = '#(?<browser>'.implode('|', $known).')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
1915
- if (!preg_match_all($pattern, $uAgent, $matches)) {
1916
- // we have no matching number just continue
1917
- }
1918
 
1919
  // see how many we have
1920
  $i = count($matches['browser']);
1178
  {
1179
  $contentType = 'text/html';
1180
  $charset = 'UTF-8';
1181
+ $blogname = get_bloginfo('name');
1182
 
1183
  if (!empty($args['contentType'])) {
1184
  $contentType = $args['contentType'];
1186
  if (!empty($args['charset'])) {
1187
  $charset = $args['charset'];
1188
  }
1189
+
1190
  $headers = 'MIME-Version: 1.0'."\r\n";
1191
+ $headers .= "From: ".$blogname ."\r\n";
1192
  $headers .= 'Content-type: '.$contentType.'; charset='.$charset.''."\r\n"; //set UTF-8
1193
 
1194
  return $headers;
1356
  }
1357
 
1358
  /**
1359
+ * Update option
1360
  *
1361
  * @since 3.1.9
1362
  *
1364
  */
1365
  public static function updateOption($optionKey, $optionValue)
1366
  {
1367
+ update_option($optionKey, $optionValue);
 
 
 
 
 
 
 
 
 
 
 
1368
  }
1369
 
1370
+ public static function getOption($optionKey, $default = false)
1371
  {
1372
+ return get_option($optionKey, $default);
 
 
 
 
 
 
 
 
 
 
 
1373
  }
1374
 
1375
  public static function deleteOption($optionKey)
1376
  {
1377
+ delete_option($optionKey);
 
 
 
 
 
1378
  }
1379
 
1380
  /**
1887
  // finally get the correct version number
1888
  $known = array('Version', $ub, 'other');
1889
  $pattern = '#(?<browser>'.implode('|', $known).')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
1890
+ $matches = array();
1891
+ preg_match_all($pattern, $uAgent, $matches);
 
1892
 
1893
  // see how many we have
1894
  $i = count($matches['browser']);
com/helpers/ConfigDataHelper.php CHANGED
@@ -870,7 +870,14 @@ class ConfigDataHelper
870
  'sgpb-fadeOut' => __('FadeOut', SG_POPUP_TEXT_DOMAIN)
871
  );
872
 
873
- $data['floatingButtonPositions'] = array(
 
 
 
 
 
 
 
874
  'top-left' => __('Top left', SG_POPUP_TEXT_DOMAIN),
875
  'top-right' => __('Top right', SG_POPUP_TEXT_DOMAIN),
876
  'bottom-left' => __('Bottom left', SG_POPUP_TEXT_DOMAIN),
870
  'sgpb-fadeOut' => __('FadeOut', SG_POPUP_TEXT_DOMAIN)
871
  );
872
 
873
+ $data['floatingButtonPositionsCorner'] = array(
874
+ 'top-left' => __('Top left', SG_POPUP_TEXT_DOMAIN),
875
+ 'top-right' => __('Top right', SG_POPUP_TEXT_DOMAIN),
876
+ 'bottom-left' => __('Bottom left', SG_POPUP_TEXT_DOMAIN),
877
+ 'bottom-right' => __('Bottom right', SG_POPUP_TEXT_DOMAIN)
878
+ );
879
+
880
+ $data['floatingButtonPositionsBasic'] = array(
881
  'top-left' => __('Top left', SG_POPUP_TEXT_DOMAIN),
882
  'top-right' => __('Top right', SG_POPUP_TEXT_DOMAIN),
883
  'bottom-left' => __('Bottom left', SG_POPUP_TEXT_DOMAIN),
com/helpers/Functions.php CHANGED
@@ -35,6 +35,7 @@ class Functions
35
  }
36
 
37
  $styles = '';
 
38
  $attrs = '';
39
  $label = '';
40
  $gdprWrapperStyles = '';
@@ -53,8 +54,11 @@ class Functions
53
  if (isset($formField['text'])) {
54
  $gdprText = $formField['text'];
55
  }
56
- $formField['style'] = array('color' => @$formField['style']['color'], 'width' => $formField['style']['width']);
57
- $gdprWrapperStyles = 'style="color:'.$formField['style']['color'].'"';
 
 
 
58
  }
59
 
60
  if ($type == 'checkbox') {
@@ -100,8 +104,8 @@ class Functions
100
  if (isset($formField['text'])) {
101
  $gdprText = $formField['text'];
102
  }
103
- $formField['style'] = array('color' => @$formField['style']['color'], 'width' => @$formField['style']['width']);
104
- $gdprWrapperStyles = 'style="color:'.@$formField['style']['color'].'"';
105
  $htmlElement = self::createGdprCheckbox($attrs, $styles, $label, $gdprWrapperStyles, $gdprText);
106
  }
107
  else if ($type == 'textarea') {
@@ -128,8 +132,12 @@ class Functions
128
  public static function createInputElement($attrs, $styles = '', $errorWrapperClassName = '', $errorMessageBoxStyles = '', $labelArgs = array())
129
  {
130
  $inputElement = "<input $attrs $styles>";
 
131
  if (!empty($labelArgs)) {
132
- $inputElement = '<label for="'.@$labelArgs['attrs']['sgpb-login-username'].'"><p class="sgpb-login-input-label '.@$labelArgs['attrs']['labelClass'].'">'.@$labelArgs['attrs']['hasLabel'].'</p>'.$inputElement.'</label>';
 
 
 
133
  }
134
  if (!empty($errorWrapperClassName)) {
135
  $inputElement .= "<div class='$errorWrapperClassName'></div>";
35
  }
36
 
37
  $styles = '';
38
+ $color = '';
39
  $attrs = '';
40
  $label = '';
41
  $gdprWrapperStyles = '';
54
  if (isset($formField['text'])) {
55
  $gdprText = $formField['text'];
56
  }
57
+ if (isset($color)) {
58
+ $color = $color;
59
+ }
60
+ $formField['style'] = array('color' => $color, 'width' => $formField['style']['width']);
61
+ $gdprWrapperStyles = 'style="color:'.$color.'"';
62
  }
63
 
64
  if ($type == 'checkbox') {
104
  if (isset($formField['text'])) {
105
  $gdprText = $formField['text'];
106
  }
107
+ $formField['style'] = array('color' => $color, 'width' => @$formField['style']['width']);
108
+ $gdprWrapperStyles = 'style="color:'.$color.'"';
109
  $htmlElement = self::createGdprCheckbox($attrs, $styles, $label, $gdprWrapperStyles, $gdprText);
110
  }
111
  else if ($type == 'textarea') {
132
  public static function createInputElement($attrs, $styles = '', $errorWrapperClassName = '', $errorMessageBoxStyles = '', $labelArgs = array())
133
  {
134
  $inputElement = "<input $attrs $styles>";
135
+ $loginUsername = '';
136
  if (!empty($labelArgs)) {
137
+ if (isset($labelArgs['attrs']['sgpb-login-username'])) {
138
+ $loginUsername = $labelArgs['attrs']['sgpb-login-username'];
139
+ }
140
+ $inputElement = '<label for="'.$loginUsername.'"><p class="sgpb-login-input-label '.@$labelArgs['attrs']['labelClass'].'">'.@$labelArgs['attrs']['hasLabel'].'</p>'.$inputElement.'</label>';
141
  }
142
  if (!empty($errorWrapperClassName)) {
143
  $inputElement .= "<div class='$errorWrapperClassName'></div>";
com/libs/parsers.php CHANGED
@@ -501,7 +501,7 @@ class WXR_Parser_Regex {
501
  }
502
 
503
  if ( ! $wxr_version )
504
- return new WP_Error( 'WXR_parse_error', __( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wordpress-importer' ) );
505
 
506
  return array(
507
  'authors' => $this->authors,
501
  }
502
 
503
  if ( ! $wxr_version )
504
+ return new \WP_Error( 'WXR_parse_error', __( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wordpress-importer' ) );
505
 
506
  return array(
507
  'authors' => $this->authors,
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.71
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.72
7
  * Author: Sygnoos
8
  * Author URI: https://sygnoos.com
9
  * License: GPLv2
public/css/popupAdminStyles.css CHANGED
@@ -1,5 +1,5 @@
1
  .sgpb-dashboard-popup-count-wrapper{display:inline-block;margin:5px
2
- 5px 0 0;float:left}.sgpb-counter-wrapper{max-width:90px}.sgpb-reset-count-btn{float:right}.sgpb-clear{clear:both}.sgpb-popup-content-direction-right .sgpb-contact-admin-wrapper,
3
  .sgpb-popup-content-direction-right .sgpb-subscription-admin-wrapper,
4
  .sgpb-forms-preview-direction,
5
  .sgpb-forms-preview-direction input[type="url"],
1
  .sgpb-dashboard-popup-count-wrapper{display:inline-block;margin:5px
2
+ 5px 0 0;float:left}.sgpb-counter-wrapper{max-width:90px}.sgpb-counter-wrapper .sgpb-reset-count-btn{float:right}.sgpb-popup-opening-analytics-option-value-span.badge{margin-top:5px}.sgpb-clear{clear:both}.sgpb-popup-content-direction-right .sgpb-contact-admin-wrapper,
3
  .sgpb-popup-content-direction-right .sgpb-subscription-admin-wrapper,
4
  .sgpb-forms-preview-direction,
5
  .sgpb-forms-preview-direction input[type="url"],
public/css/theme.css CHANGED
@@ -169,5 +169,5 @@ slideOutUp{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0
169
  slideOutUp{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.sgpb-slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}.sgpb-iframe-spiner{background:url('data:image/gif;base64,R0lGODlh8ABAAaIHALa2tmNjY8XFxdbW1oyMjO/v7+bm5v///yH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY0QTk5QUJDNTA1RDExRTA4NTIwQzAwMjQyRkFEMkEyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY0QTk5QUJENTA1RDExRTA4NTIwQzAwMjQyRkFEMkEyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjRBOTlBQkE1MDVEMTFFMDg1MjBDMDAyNDJGQUQyQTIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjRBOTlBQkI1MDVEMTFFMDg1MjBDMDAyNDJGQUQyQTIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87N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') center center no-repeat}.sgpb-alert{padding:15px;border:1px
170
  solid transparent;border-radius:4px;text-align:center}.sgpb-alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.sgpb-alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.sgpb-alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.sgpb-alert
171
  p{margin-bottom:0px}[id*="__lpform_sgpb-"]{position:fixed !important}.sgpb-floating-button{display:inline-block;text-decoration:none !important;z-index:99999999;position:fixed;text-align:center;padding:10px;font-family:sans-serif !important;font-weight:600 !important;box-shadow:none !important;-webkit-box-shadow:none !important;-moz-box-shadow:none !important;cursor:pointer !important;letter-spacing:0.05em !important;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#sgpb-floating-button{display:inline-block;text-decoration:none;font-family:sans-serif;font-weight:600;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;cursor:pointer !important;letter-spacing:0.05em !important;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#sgpb-floating-button:focus,.sgpb-floating-button:focus{outline:0
172
- !important}.sgpb-basic-left-center{transform:rotate(90deg) !important;transform-origin:left bottom 0px !important}.sgpb-basic-right-center{transform:rotate(-90deg);transform-origin:right bottom 0px}.sgpb-basic-bottom-right{right:0px;bottom:0px}.sgpb-basic-bottom-left{bottom:0px;left:0px}.sgpb-basic-top-right{right:0px;top:0px}.sgpb-basic-top-left{left:0px;top:0px}.sgpb-corner-bottom-right{right:-65px;bottom:-30px;transform:rotate(-45deg);transform-origin:right center 0px;width:160px;height:160px;display:inline-grid;border:none !important}.sgpb-corner-bottom-right:hover{right:-63px !important;bottom:-28px !important}.sgpb-corner-bottom-left{bottom:-145px;left:-115px;transform:rotate(45deg);transform-origin:right center 0px;width:160px;height:160px;display:inline-grid;border:none !important}.sgpb-corner-bottom-left:hover{bottom:-143px !important;left:-113px !important}.sgpb-corner-top-right{width:160px;height:160px;display:inline-grid;border:none !important;right:62px;top:-145px;transform:rotate(-140deg);transform-origin:right center 0px}.sgpb-corner-top-left .sgpb-corner-floating-button-text,
173
- .sgpb-corner-top-right .sgpb-corner-floating-button-text{transform:rotate(180deg);height:20px}.sgpb-corner-top-right:hover{right:-64px !important;top:-143px !important}.sgpb-corner-top-left{left:-220px;top:-40px;transform:rotate(140deg);transform-origin:right center 0px;width:155px;height:155px;display:inline-grid;border:none !important}.sgpb-corner-top-left:hover{left:-218px !important;top:-38px !important}.sgpb-corner-floating-button-text{margin-bottom:120px !important}
169
  slideOutUp{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.sgpb-slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}.sgpb-iframe-spiner{background:url('data:image/gif;base64,R0lGODlh8ABAAaIHALa2tmNjY8XFxdbW1oyMjO/v7+bm5v///yH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY0QTk5QUJDNTA1RDExRTA4NTIwQzAwMjQyRkFEMkEyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY0QTk5QUJENTA1RDExRTA4NTIwQzAwMjQyRkFEMkEyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjRBOTlBQkE1MDVEMTFFMDg1MjBDMDAyNDJGQUQyQTIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjRBOTlBQkI1MDVEMTFFMDg1MjBDMDAyNDJGQUQyQTIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87N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') center center no-repeat}.sgpb-alert{padding:15px;border:1px
170
  solid transparent;border-radius:4px;text-align:center}.sgpb-alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.sgpb-alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.sgpb-alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.sgpb-alert
171
  p{margin-bottom:0px}[id*="__lpform_sgpb-"]{position:fixed !important}.sgpb-floating-button{display:inline-block;text-decoration:none !important;z-index:99999999;position:fixed;text-align:center;padding:10px;font-family:sans-serif !important;font-weight:600 !important;box-shadow:none !important;-webkit-box-shadow:none !important;-moz-box-shadow:none !important;cursor:pointer !important;letter-spacing:0.05em !important;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#sgpb-floating-button{display:inline-block;text-decoration:none;font-family:sans-serif;font-weight:600;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;cursor:pointer !important;letter-spacing:0.05em !important;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#sgpb-floating-button:focus,.sgpb-floating-button:focus{outline:0
172
+ !important}.sgpb-basic-left-center{transform:rotate(90deg) !important;transform-origin:left bottom 0px !important}.sgpb-basic-right-center{transform:rotate(-90deg);transform-origin:right bottom 0px;right:0px}.sgpb-basic-bottom-right{right:0px;bottom:0px}.sgpb-basic-bottom-left{bottom:0px;left:0px}.sgpb-basic-top-right{right:0px;top:0px}.sgpb-basic-bottom-center{bottom:0}.sgpb-basic-top-left{left:0px;top:0px}.sgpb-corner-bottom-right{right:-65px;bottom:-30px;transform:rotate(-45deg);transform-origin:right center 0px;width:160px;height:160px;display:inline-grid;border:none !important}.sgpb-corner-bottom-right:hover{right:-63px !important;bottom:-28px !important}.sgpb-corner-bottom-left{bottom:-145px;left:-115px;transform:rotate(45deg);transform-origin:right center 0px;width:160px;height:160px;display:inline-grid;border:none !important}.sgpb-corner-bottom-left:hover{bottom:-143px !important;left:-113px !important}.sgpb-corner-top-right{width:160px;height:160px;display:inline-grid;border:none !important;right:62px;top:-145px;transform:rotate(-140deg);transform-origin:right center 0px}.sgpb-corner-top-left .sgpb-corner-floating-button-text,
173
+ .sgpb-corner-top-right .sgpb-corner-floating-button-text{transform:rotate(180deg);height:20px}.sgpb-corner-top-right:hover{right:64px !important;top:-143px !important}.sgpb-corner-top-left{left:-220px;top:-40px;transform:rotate(140deg);transform-origin:right center 0px;width:155px;height:155px;display:inline-grid;border:none !important}.sgpb-corner-top-left:hover{left:-218px !important;top:-38px !important}.sgpb-corner-floating-button-text{margin-bottom:120px !important}
public/js/Backend.js CHANGED
@@ -185,5 +185,6 @@ else{jQuery('.sg-rules-add-rule').removeClass('sgpb-events-spinner');jQuery('.sg
185
  responsiveModeSelector.change(function(){var selectedMode=jQuery(this).val();if(selectedMode=='fullScreen'){if(closeButtonCheckbox.is(':checked')){closeButtonCheckbox.click();}}});};SGPBBackend.hexToRgba=function(hex,opacity)
186
  {var c;if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)){c=hex.substring(1).split('');if(c.length==3){c=[c[0],c[0],c[1],c[1],c[2],c[2]];}
187
  c='0x'+c.join('');return'rgba('+[(c>>16)&255,(c>>8)&255,c&255].join(',')+','+opacity+')';}
188
- throw new Error('Bad Hex');};SGPBBackend.resetCount=function(popupId)
189
- {if(confirm(SGPB_JS_LOCALIZATION.areYouSure)){var data={nonce:SGPB_JS_PARAMS.nonce,action:'sgpb_reset_popup_opening_count',popupId:popupId};jQuery.post(ajaxurl,data,function(response){location.reload();});}};jQuery(document).ready(function(){sgpbBackendObj=new SGPBBackend();sgpbBackendObj.sgInit();});jQuery(window).on('load',function(){sgpbBackendObj.rangeSlider();});
 
185
  responsiveModeSelector.change(function(){var selectedMode=jQuery(this).val();if(selectedMode=='fullScreen'){if(closeButtonCheckbox.is(':checked')){closeButtonCheckbox.click();}}});};SGPBBackend.hexToRgba=function(hex,opacity)
186
  {var c;if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)){c=hex.substring(1).split('');if(c.length==3){c=[c[0],c[0],c[1],c[1],c[2],c[2]];}
187
  c='0x'+c.join('');return'rgba('+[(c>>16)&255,(c>>8)&255,c&255].join(',')+','+opacity+')';}
188
+ throw new Error('Bad Hex');};SGPBBackend.resetCount=function(popupId,refreshAfterReset)
189
+ {if(confirm(SGPB_JS_LOCALIZATION.areYouSure)){jQuery('.spinner').addClass('is-active');var data={nonce:SGPB_JS_PARAMS.nonce,action:'sgpb_reset_popup_opening_count',popupId:popupId};jQuery.post(ajaxurl,data,function(response){if(refreshAfterReset){location.reload();}
190
+ else{jQuery('.sgpb-popup-opening-analytics-option-value-span').text('0');jQuery('.spinner').removeClass('is-active');}});}};jQuery(document).ready(function(){sgpbBackendObj=new SGPBBackend();sgpbBackendObj.sgInit();});jQuery(window).on('load',function(){setTimeout(function(){sgpbBackendObj.rangeSlider();},200);});
public/js/FloatingButton.js CHANGED
@@ -5,16 +5,11 @@ function SGPBFloatingButton() {
5
  SGPBFloatingButton.prototype.adminInit = function()
6
  {
7
  var that = this;
8
- var buttonStyle = jQuery('#sgpb-floating-button-style');
9
- if (buttonStyle.length) {
10
- that.reorderOtherOptions(buttonStyle.val());
11
- that.reorderPositions(buttonStyle.val());
12
- }
13
  document.getElementById('sgpb-floating-btn-wrapper').addEventListener('change', function(){
14
  that.livePreview();
15
  });
16
  jQuery('#sgpb-floating-button-text').on('keyup keypress', function() {
17
- setTimeout(function(){
18
 
19
  that.livePreview();
20
  }, 100);
@@ -29,8 +24,7 @@ SGPBFloatingButton.prototype.adminInit = function()
29
  that.reorderOtherOptions(buttonStyle);
30
  });
31
  jQuery('#sgpb-floating-button-position').on('select2:close', function() {
32
- setTimeout(function(){
33
-
34
  that.livePreview();
35
  }, 100);
36
  });
@@ -39,9 +33,7 @@ SGPBFloatingButton.prototype.adminInit = function()
39
  var data = e.params.data;
40
  var buttonStyle = data.id;
41
  setTimeout(function(){
42
-
43
  that.livePreview();
44
- that.reorderPositions(buttonStyle);
45
  that.reorderOtherOptions(buttonStyle);
46
  }, 100);
47
  });
5
  SGPBFloatingButton.prototype.adminInit = function()
6
  {
7
  var that = this;
 
 
 
 
 
8
  document.getElementById('sgpb-floating-btn-wrapper').addEventListener('change', function(){
9
  that.livePreview();
10
  });
11
  jQuery('#sgpb-floating-button-text').on('keyup keypress', function() {
12
+ setTimeout(function() {
13
 
14
  that.livePreview();
15
  }, 100);
24
  that.reorderOtherOptions(buttonStyle);
25
  });
26
  jQuery('#sgpb-floating-button-position').on('select2:close', function() {
27
+ setTimeout(function() {
 
28
  that.livePreview();
29
  }, 100);
30
  });
33
  var data = e.params.data;
34
  var buttonStyle = data.id;
35
  setTimeout(function(){
 
36
  that.livePreview();
 
37
  that.reorderOtherOptions(buttonStyle);
38
  }, 100);
39
  });
public/js/PopupBuilder.js CHANGED
@@ -75,20 +75,18 @@ SGPBPopup.htmlCustomButton = function()
75
  SGPBPopup.closePopup();
76
  }
77
  if (behavior === 'copyToClipBoard') {
78
- var textAreaId = 1;
79
  var value = settings['sgpb-custom-button-copy-to-clipboard-text'];
80
- var textArea = jQuery('<textarea>', {
81
- id: textAreaId,
82
- value: value,
83
- style: 'position: absolute; right: -10000px'
84
- });
85
-
86
- if (!jQuery('#'+textAreaId).length) {
87
- jQuery('body').append(textArea);
88
  }
89
- jQuery('#'+textAreaId).select();
90
- document.execCommand('copy');
91
- jQuery('#'+textAreaId).remove();
92
 
93
  if (settings['sgpb-copy-to-clipboard-close-popup']) {
94
  SGPBPopup.closePopup();
@@ -1388,6 +1386,13 @@ SGPBPopup.prototype.popupTriggeringListeners = function()
1388
  if (closeButtonDelay) {
1389
  that.closeButtonDisplay(popupData['sgpb-post-id'], 'hide');
1390
  }
 
 
 
 
 
 
 
1391
  });
1392
 
1393
  sgAddEvent(window, 'sgpbShouldClose', function(e) {
@@ -1428,7 +1433,7 @@ SGPBPopup.prototype.sgpbDontShowPopup = function(popupId)
1428
 
1429
  SGPBPopup.prototype.addToCounter = function(popupOptions)
1430
  {
1431
- if (SGPB_POPUP_PARAMS.isPreview) {
1432
  return false;
1433
  }
1434
  var that = this;
@@ -1550,21 +1555,20 @@ SGPBPopup.prototype.contentCopyToClick = function()
1550
  {
1551
  var popupData = this.getPopupData();
1552
  var popupId = this.getPopupId();
1553
- var textAreaId = 'content-copy-to-click-'+popupId;
1554
 
 
1555
  var value = this.htmlDecode(popupData['sgpb-copy-to-clipboard-text']);
1556
- var textArea = jQuery('<textarea>', {
1557
- id: textAreaId,
1558
- value: value,
1559
- style: 'position: absolute; right: -10000px'
1560
- });
1561
-
1562
- if (!jQuery('#'+textAreaId).length) {
1563
- jQuery('body').append(textArea);
1564
  }
1565
- jQuery('#'+textAreaId).select();
1566
- document.execCommand('copy');
1567
- jQuery('#'+textAreaId).remove();
1568
  };
1569
 
1570
  SGPBPopup.prototype.htmlDecode = function(value)
@@ -2584,7 +2588,7 @@ SgpbEventListener.prototype.sgpbClick = function(listenerObj, eventData)
2584
  var attr = currentTarget.parent().attr('data-popup-id');
2585
  var attr2 = currentTarget.attr('data-popup-id');
2586
  if (jQuery(e.originalEvent.target).parents('li').length && typeof jQuery(e.originalEvent.target).parents('li').attr('data-popup-id') == 'undefined') {
2587
- return false;
2588
  }
2589
 
2590
  var allowToOpen = popupObj.forceCheckCurrentPopupType(popupObj);
75
  SGPBPopup.closePopup();
76
  }
77
  if (behavior === 'copyToClipBoard') {
78
+ var tempInputId = 1;
79
  var value = settings['sgpb-custom-button-copy-to-clipboard-text'];
80
+ var tempInput = document.createElement("input");
81
+ tempInput.id = tempInputId;
82
+ tempInput.value = value;
83
+ tempInput.style = 'position: absolute; right: -10000px';
84
+ console.log(tempInput);
85
+ if (!document.getElementById(tempInputId)) {
86
+ document.body.appendChild(tempInput);
 
87
  }
88
+ tempInput.select();
89
+ document.execCommand("copy");
 
90
 
91
  if (settings['sgpb-copy-to-clipboard-close-popup']) {
92
  SGPBPopup.closePopup();
1386
  if (closeButtonDelay) {
1387
  that.closeButtonDisplay(popupData['sgpb-post-id'], 'hide');
1388
  }
1389
+ /* extra checker for analytics */
1390
+ var settings = {
1391
+ popupId: popupData['sgpb-post-id'],
1392
+ disabledAnalytics: popupData['sgpb-popup-counting-disabled'],
1393
+ disabledInGeneral: SGPB_POPUP_PARAMS.disableAnalyticsGeneral
1394
+ };
1395
+ jQuery(window).trigger('sgpbDisableAnalytics', settings);
1396
  });
1397
 
1398
  sgAddEvent(window, 'sgpbShouldClose', function(e) {
1433
 
1434
  SGPBPopup.prototype.addToCounter = function(popupOptions)
1435
  {
1436
+ if (SGPB_POPUP_PARAMS.isPreview || (typeof popupOptions['sgpb-popup-counting-disabled'] != 'undefined')) {
1437
  return false;
1438
  }
1439
  var that = this;
1555
  {
1556
  var popupData = this.getPopupData();
1557
  var popupId = this.getPopupId();
 
1558
 
1559
+ var tempInputId = 'content-copy-to-click-'+popupId;
1560
  var value = this.htmlDecode(popupData['sgpb-copy-to-clipboard-text']);
1561
+ var tempInput = document.createElement("input");
1562
+ tempInput.id = tempInputId;
1563
+ tempInput.value = value;
1564
+ tempInput.style = 'position: absolute; right: -10000px';
1565
+ console.log(tempInput);
1566
+ if (!document.getElementById(tempInputId)) {
1567
+ document.body.appendChild(tempInput);
 
1568
  }
1569
+ tempInput.select();
1570
+ document.execCommand("copy");
1571
+ document.body.removeChild(tempInput);
1572
  };
1573
 
1574
  SGPBPopup.prototype.htmlDecode = function(value)
2588
  var attr = currentTarget.parent().attr('data-popup-id');
2589
  var attr2 = currentTarget.attr('data-popup-id');
2590
  if (jQuery(e.originalEvent.target).parents('li').length && typeof jQuery(e.originalEvent.target).parents('li').attr('data-popup-id') == 'undefined') {
2591
+ return true;
2592
  }
2593
 
2594
  var allowToOpen = popupObj.forceCheckCurrentPopupType(popupObj);
public/js/PopupConfig.js CHANGED
File without changes
public/views/floatingButton.php CHANGED
@@ -1,6 +1,10 @@
1
  <?php
2
  use sgpb\AdminHelper;
3
  $defaultData = ConfigDataHelper::defaultData();
 
 
 
 
4
  ?>
5
  <div class="sgpb-wrapper sgpb-floating-btn-wrapper" id="sgpb-floating-btn-wrapper">
6
  <div class="row form-group">
@@ -25,7 +29,7 @@ $defaultData = ConfigDataHelper::defaultData();
25
  <?php _e('Position', SG_POPUP_TEXT_DOMAIN)?>:
26
  </label>
27
  <div class="col-md-7">
28
- <?php echo AdminHelper::createSelectBox($defaultData['floatingButtonPositions'], $popupTypeObj->getOptionValue('sgpb-floating-button-position'), array('name' => 'sgpb-floating-button-position', 'class'=>'js-sg-select2', 'id' => 'sgpb-floating-button-position')); ?>
29
  </div>
30
  </div>
31
  <div class="row form-group">
@@ -39,7 +43,7 @@ $defaultData = ConfigDataHelper::defaultData();
39
  <span class="sgpb-restriction-unit">px</span>
40
  </div>
41
  </div>
42
- <div class="sgpb-basic-button-style-options-wrapper-js sgpb-hide">
43
  <div class="row form-group">
44
  <label class="col-md-5 sgpb-static-padding-top" for="sgpb-floating-button-position-top">
45
  <?php _e('Position top', SG_POPUP_TEXT_DOMAIN) ?>:
1
  <?php
2
  use sgpb\AdminHelper;
3
  $defaultData = ConfigDataHelper::defaultData();
4
+ $defaultPositions = $defaultData['floatingButtonPositionsCorner'];
5
+ if ($popupTypeObj->getOptionValue('sgpb-floating-button-style') == 'basic') {
6
+ $defaultPositions = $defaultData['floatingButtonPositionsBasic'];
7
+ }
8
  ?>
9
  <div class="sgpb-wrapper sgpb-floating-btn-wrapper" id="sgpb-floating-btn-wrapper">
10
  <div class="row form-group">
29
  <?php _e('Position', SG_POPUP_TEXT_DOMAIN)?>:
30
  </label>
31
  <div class="col-md-7">
32
+ <?php echo AdminHelper::createSelectBox($defaultPositions, $popupTypeObj->getOptionValue('sgpb-floating-button-position'), array('name' => 'sgpb-floating-button-position', 'class'=>'js-sg-select2', 'id' => 'sgpb-floating-button-position')); ?>
33
  </div>
34
  </div>
35
  <div class="row form-group">
43
  <span class="sgpb-restriction-unit">px</span>
44
  </div>
45
  </div>
46
+ <div class="sgpb-basic-button-style-options-wrapper-js<?php echo ($popupTypeObj->getOptionValue('sgpb-floating-button-position') == 'corner') ? ' sgpb-hide' : ''; ?>">
47
  <div class="row form-group">
48
  <label class="col-md-5 sgpb-static-padding-top" for="sgpb-floating-button-position-top">
49
  <?php _e('Position top', SG_POPUP_TEXT_DOMAIN) ?>:
public/views/htmlCustomButtonElement.php CHANGED
@@ -1,4 +1,3 @@
1
-
2
  <?php
3
  use sgpb\AdminHelper;
4
  $excludePostId = @$_GET['post'];
@@ -196,5 +195,6 @@ $allPopups = AdminHelper::getPopupsIdAndTitle($excludedPopups);
196
  <style type="text/css">
197
  .sgpb-popup-dialog-main-div-theme-wrapper-1 {
198
  top: 86px !important;
 
199
  }
200
- </style>
 
1
  <?php
2
  use sgpb\AdminHelper;
3
  $excludePostId = @$_GET['post'];
195
  <style type="text/css">
196
  .sgpb-popup-dialog-main-div-theme-wrapper-1 {
197
  top: 86px !important;
198
+ z-index: 999999 !important;
199
  }
200
+ </style>
public/views/popupOpeningCounter.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $popupId = $popupTypeObj->getOptionValue('sgpb-post-id');
3
+ $count = $popupTypeObj->getPopupOpeningCountById($popupId);
4
+ $counterReset = 'SGPBBackend.resetCount('.$popupId.', false)';
5
+ ?>
6
+ <div class="sgpb-wrapper sgpb-popup-opening-analytics-container">
7
+ <div class="row form-group">
8
+ <label for="sgpb-enable-floating-button" class="col-md-3 control-label sgpb-static-padding-top">
9
+ <?php _e('Views', SG_POPUP_TEXT_DOMAIN)?>:
10
+ </label>
11
+ <div class="col-md-3">
12
+ <span class="sgpb-popup-opening-analytics-option-value-span badge"><?php echo $count; ?></span>
13
+ </div>
14
+ <div class="col-md-3">
15
+ <input onclick="SGPBBackend.resetCount(<?php echo $popupId; ?>, false)" type="button" class="button sgpb-reset-count-btn" value="reset" <?php echo ($popupId && $count != 0) ? '' : ' disabled' ; ?>>
16
+ </div>
17
+ </div>
18
+ <div class="row form-group">
19
+ <label for="sgpb-enable-floating-button" class="col-md-3 control-label sgpb-static-padding-top">
20
+ <?php _e('Disable', SG_POPUP_TEXT_DOMAIN)?>:
21
+ </label>
22
+ <div class="col-md-4">
23
+ <label class="sgpb-switch">
24
+ <input name="sgpb-popup-counting-disabled" type="checkbox" <?php echo $popupTypeObj->getOptionValue('sgpb-popup-counting-disabled');?>>
25
+ <div class="sgpb-slider sgpb-round"></div>
26
+ </label>
27
+ </div>
28
+ </div>
29
+ </div>
public/views/settingsOptions.php CHANGED
@@ -1,17 +1,6 @@
1
  <?php
2
  use sgpb\AdminHelper;
3
  $defaultData = ConfigDataHelper::defaultData();
4
-
5
- $deleteData = '';
6
- if (get_option('sgpb-dont-delete-data')) {
7
- $deleteData = 'checked';
8
- }
9
-
10
- $enableDebugMode = '';
11
- if (get_option('sgpb-enable-debug-mode')) {
12
- $enableDebugMode = 'checked';
13
- }
14
-
15
  $systemInfo = AdminHelper::getSystemInfoText();
16
  $userSavedRoles = get_option('sgpb-user-roles');
17
  ?>
@@ -33,7 +22,7 @@
33
  <label for="sgpb-enable-debug-mode"><?php _e('Enable DEBUG MODE', SG_POPUP_TEXT_DOMAIN)?></label>
34
  </div>
35
  <div class="col-md-6">
36
- <input type="checkbox" name="sgpb-enable-debug-mode" class="sgpb-reset-checkbox-margin-top" id="sgpb-enable-debug-mode" <?php echo $enableDebugMode; ?>>
37
  </div>
38
  </div>
39
  <div class="row form-group">
@@ -41,13 +30,21 @@
41
  <label for="sgpb-dont-delete-data"><?php _e('Delete popup data', SG_POPUP_TEXT_DOMAIN)?></label>
42
  </div>
43
  <div class="col-md-6">
44
- <input type="checkbox" name="sgpb-dont-delete-data" class="sgpb-reset-checkbox-margin-top" id="sgpb-dont-delete-data" <?php echo $deleteData; ?>>
45
  <span class="dashicons dashicons-editor-help sgpb-info-icon"></span>
46
  <span class="infoSelectRepeat samefontStyle sgpb-info-text">
47
  <?php _e('All the popup data will be deleted after removing the plugin if this option is checked', SG_POPUP_TEXT_DOMAIN)?>.
48
  </span>
49
  </div>
50
  </div>
 
 
 
 
 
 
 
 
51
  <div class="row form-group">
52
  <div class="col-md-4 sgpb-label-align-with-select2">
53
  <label><?php _e('User role to access the plugin', SG_POPUP_TEXT_DOMAIN)?></label>
1
  <?php
2
  use sgpb\AdminHelper;
3
  $defaultData = ConfigDataHelper::defaultData();
 
 
 
 
 
 
 
 
 
 
 
4
  $systemInfo = AdminHelper::getSystemInfoText();
5
  $userSavedRoles = get_option('sgpb-user-roles');
6
  ?>
22
  <label for="sgpb-enable-debug-mode"><?php _e('Enable DEBUG MODE', SG_POPUP_TEXT_DOMAIN)?></label>
23
  </div>
24
  <div class="col-md-6">
25
+ <input type="checkbox" name="sgpb-enable-debug-mode" class="sgpb-reset-checkbox-margin-top" id="sgpb-enable-debug-mode"<?php echo (get_option('sgpb-enable-debug-mode')) ? ' checked' : ''; ?>>
26
  </div>
27
  </div>
28
  <div class="row form-group">
30
  <label for="sgpb-dont-delete-data"><?php _e('Delete popup data', SG_POPUP_TEXT_DOMAIN)?></label>
31
  </div>
32
  <div class="col-md-6">
33
+ <input type="checkbox" name="sgpb-dont-delete-data" class="sgpb-reset-checkbox-margin-top" id="sgpb-dont-delete-data"<?php echo (get_option('sgpb-dont-delete-data')) ? ' checked' : ''; ?>>
34
  <span class="dashicons dashicons-editor-help sgpb-info-icon"></span>
35
  <span class="infoSelectRepeat samefontStyle sgpb-info-text">
36
  <?php _e('All the popup data will be deleted after removing the plugin if this option is checked', SG_POPUP_TEXT_DOMAIN)?>.
37
  </span>
38
  </div>
39
  </div>
40
+ <div class="row form-group">
41
+ <div class="col-md-4 sgpb-static-padding-top">
42
+ <label for="sgpb-disable-analytics-general"><?php _e('Disable popup analytics', SG_POPUP_TEXT_DOMAIN)?></label>
43
+ </div>
44
+ <div class="col-md-6">
45
+ <input type="checkbox" name="sgpb-disable-analytics-general" class="sgpb-reset-checkbox-margin-top" id="sgpb-disable-analytics-general"<?php echo (get_option('sgpb-disable-analytics-general')) ? ' checked' : ''; ?>>
46
+ </div>
47
+ </div>
48
  <div class="row form-group">
49
  <div class="col-md-4 sgpb-label-align-with-select2">
50
  <label><?php _e('User role to access the plugin', SG_POPUP_TEXT_DOMAIN)?></label>
readme.txt CHANGED
@@ -9,7 +9,7 @@ Tags: popup, pop up, wordpress popup, popup maker, exit popup, popup builder, wo
9
  Requires at least: 4.2
10
  Tested up to: 5.6
11
  Requires PHP: 5.3.3
12
- Stable tag: 3.71
13
  License: GPLv2 or later
14
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
15
 
@@ -186,6 +186,16 @@ Go to the Popup Builder settings and set your desired options.
186
 
187
  == Changelog ==
188
 
 
 
 
 
 
 
 
 
 
 
189
  = Version 3.7 - 3.7.1 =
190
  * Improvement of "Display Rules" settings, showing popups on archive pages for all custom post types is added.
191
  * Bug fixed related to "Settings" button when popup's opening event is set to on load.
@@ -1254,7 +1264,7 @@ Leave us a good review :)
1254
 
1255
  == Upgrade Notice ==
1256
 
1257
- Current Version of Popup Builder is 3.7.1
1258
 
1259
  == Other Notes ==
1260
 
9
  Requires at least: 4.2
10
  Tested up to: 5.6
11
  Requires PHP: 5.3.3
12
+ Stable tag: 3.72
13
  License: GPLv2 or later
14
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
15
 
186
 
187
  == Changelog ==
188
 
189
+ = Version 3.72 =
190
+ * Option added to enable/disable AJAX for counting popup opening stats.
191
+ * Bug fixed related to multisite issue.
192
+ * Bug fixed related to floating button, when style is set to basic.
193
+ * Improvement of code, PHP errors are fixed.
194
+ * Bug fixed related to copy to clipboard functionality in action on popup click section.
195
+ * Bug fixed related to email notifications.
196
+ * Bug fixed related to white space that appears when popup is active.
197
+ * Added user compatibility check for AJAX requests.
198
+
199
  = Version 3.7 - 3.7.1 =
200
  * Improvement of "Display Rules" settings, showing popups on archive pages for all custom post types is added.
201
  * Bug fixed related to "Settings" button when popup's opening event is set to on load.
1264
 
1265
  == Upgrade Notice ==
1266
 
1267
+ Current Version of Popup Builder is 3.72
1268
 
1269
  == Other Notes ==
1270