Popup Builder – Responsive WordPress Pop up - Version 2.6.4

Version Description

Current Version of Popup Builder is 2.6.4

Download this release

Release Info

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

Code changes from version 2.6.3.3 to 2.6.4

config.php CHANGED
@@ -24,8 +24,8 @@ if(!class_exists('SgPopupBuilderConfig')) {
24
  define('SG_APP_POPUP_JS', SG_APP_POPUP_PATH . '/javascript');
25
  define('SG_APP_POPUP_HELPERS', SG_APP_POPUP_PATH . '/helpers/');
26
  define('SG_APP_POPUP_TABLE_LIMIT', 15);
27
- define('SG_POPUP_VERSION', 2.633);
28
- define('SG_POPUP_PRO_VERSION', 3.36);
29
  define('SG_POPUP_PRO_URL', 'https://popup-builder.com/');
30
  define('SG_POPUP_EXTENSION_URL', 'https://popup-builder.com/extensions');
31
  define('SG_MAILCHIMP_EXTENSION_URL', 'https://popup-builder.com/downloads/mailchimp/');
24
  define('SG_APP_POPUP_JS', SG_APP_POPUP_PATH . '/javascript');
25
  define('SG_APP_POPUP_HELPERS', SG_APP_POPUP_PATH . '/helpers/');
26
  define('SG_APP_POPUP_TABLE_LIMIT', 15);
27
+ define('SG_POPUP_VERSION', 2.64);
28
+ define('SG_POPUP_PRO_VERSION', 3.37);
29
  define('SG_POPUP_PRO_URL', 'https://popup-builder.com/');
30
  define('SG_POPUP_EXTENSION_URL', 'https://popup-builder.com/extensions');
31
  define('SG_MAILCHIMP_EXTENSION_URL', 'https://popup-builder.com/downloads/mailchimp/');
files/lib/popupOpenSound.wav ADDED
Binary file
files/sg_popup_create_new.php CHANGED
@@ -148,6 +148,8 @@ if (isset($_GET['id'])) {
148
  $sgPopupClosingTimer = @$jsonData['popupClosingTimer'];
149
  $sgAutoClosePopup = @$jsonData['autoClosePopup'];
150
  $sgRandomPopup = @$jsonData['randomPopup'];
 
 
151
  $sgCountryStatus = @$jsonData['countryStatus'];
152
  $sgAllSelectedPages = @$jsonData['allSelectedPages'];
153
  $sgAllSelectedCustomPosts = @$jsonData['allSelectedCustomPosts'];
@@ -242,6 +244,7 @@ if (isset($_GET['id'])) {
242
  $sgSubsSuccessPopupsList = @$subscriptionOptions['subs-success-popups-list'];
243
  $sgSubsFirstNameRequired = @$subscriptionOptions['subs-first-name-required'];
244
  $sgSubsLastNameRequired = @$subscriptionOptions['subs-last-name-required'];
 
245
  $contactFormOptions = json_decode(@$params, true);
246
  $sgContactNameLabel = @$contactFormOptions['contact-name'];
247
  $sgContactNameStatus = @$contactFormOptions['contact-name-status'];
@@ -278,6 +281,7 @@ if (isset($_GET['id'])) {
278
  $sgContactSuccessPopupsList = @$contactFormOptions['contact-success-popups-list'];
279
  $sgDontShowContentToContactedUser = @$contactFormOptions['dont-show-content-to-contacted-user'];
280
  $sgContactSuccessFrequencyDays = @$contactFormOptions['contact-success-frequency-days'];
 
281
  }
282
 
283
  $dataPopupId = @$id;
@@ -335,6 +339,8 @@ $popupProDefaultValues = array(
335
  'redirect-to-new-tab' => true,
336
  'autoClosePopup' => false,
337
  'randomPopup' => false,
 
 
338
  'fbStatus' => true,
339
  'twitterStatus' => true,
340
  'emailStatus' => true,
@@ -401,6 +407,7 @@ $popupProDefaultValues = array(
401
  'subs-success-popups-list' => '',
402
  'subs-first-name-required' => '',
403
  'subs-last-name-required' => '',
 
404
  'contact-name' => 'Name *',
405
  'contact-name-required' => true,
406
  'contact-name-status' => true,
@@ -419,7 +426,8 @@ $popupProDefaultValues = array(
419
  'contact-success-redirect-url' => '',
420
  'contact-success-popups-list' => 0,
421
  'dont-show-content-to-contacted-user' => '',
422
- 'contact-success-frequency-days' => 365
 
423
  );
424
 
425
  $escKey = sgBoolToChecked($sgPopup['escKey']);
@@ -450,6 +458,7 @@ $disablePopup = sgBoolToChecked($popupProDefaultValues['disablePopup']);
450
  $disablePopupOverlay = sgBoolToChecked($popupProDefaultValues['disablePopupOverlay']);
451
  $autoClosePopup = sgBoolToChecked($popupProDefaultValues['autoClosePopup']);
452
  $randomPopup = sgBoolToChecked($popupProDefaultValues['randomPopup']);
 
453
  $fbStatus = sgBoolToChecked($popupProDefaultValues['fbStatus']);
454
  $twitterStatus = sgBoolToChecked($popupProDefaultValues['twitterStatus']);
455
  $emailStatus = sgBoolToChecked($popupProDefaultValues['emailStatus']);
@@ -469,6 +478,7 @@ $allPostsStatus = sgBoolToChecked($popupProDefaultValues['allPostsStatus']);
469
  $allCustomPostsStatus = sgBoolToChecked($popupProDefaultValues['allCustomPostsStatus']);
470
  $contactNameStatus = sgBoolToChecked($popupProDefaultValues['contact-name-status']);
471
  $showFormToTop = sgBoolToChecked($popupProDefaultValues['show-form-to-top']);
 
472
  $contactNameRequired = sgBoolToChecked($popupProDefaultValues['contact-name-required']);
473
  $contactSubjectStatus = sgBoolToChecked($popupProDefaultValues['contact-subject-status']);
474
  $contactSubjectRequired = sgBoolToChecked($popupProDefaultValues['contact-subject-required']);
@@ -534,6 +544,8 @@ $contactSuccessPopupsList = $popupProDefaultValues['contact-success-popups-list'
534
  $redirectToNewTab = $popupProDefaultValues['redirect-to-new-tab'];
535
  $dontShowContentToContactedUser = sgBoolToChecked($popupProDefaultValues['dont-show-content-to-contacted-user']);
536
  $contactSuccessFrequencyDays = $popupProDefaultValues['contact-success-frequency-days'];
 
 
537
 
538
  function sgBoolToChecked($var)
539
  {
@@ -591,6 +603,7 @@ $sgDisablePopup = @sgSetChecked($sgDisablePopup, $disablePopup);
591
  $sgDisablePopupOverlay = @sgSetChecked($sgDisablePopupOverlay, $disablePopupOverlay);
592
  $sgAutoClosePopup = @sgSetChecked($sgAutoClosePopup, $autoClosePopup);
593
  $sgRandomPopup = @sgSetChecked($sgRandomPopup, $randomPopup);
 
594
  $sgFbStatus = @sgSetChecked($sgFbStatus, $fbStatus);
595
  $sgTwitterStatus = @sgSetChecked($sgTwitterStatus, $twitterStatus);
596
  $sgEmailStatus = @sgSetChecked($sgEmailStatus, $emailStatus);
@@ -604,6 +617,8 @@ $sgPushToBottom = @sgSetChecked($sgPushToBottom, $pushToBottom);
604
  $sgRestrictionCookeSavingLevel = @sgSetChecked($sgRestrictionCookeSavingLevel, $restrictionCookeSavingLevel);
605
  $sgSubsFirstNameRequired = @sgSetChecked($sgSubsFirstNameRequired, $subsFirstNameRequired);
606
  $sgSubsLastNameRequired = @sgSetChecked($sgSubsLastNameRequired, $subsLastNameRequired);
 
 
607
 
608
  $sgAllPagesStatus = @sgSetChecked($sgAllPagesStatus, $allPagesStatus);
609
  $sgAllPostsStatus = @sgSetChecked($sgAllPostsStatus, $allPostsStatus);
@@ -638,6 +653,7 @@ function sgSetChecked($optionsParam,$defaultOption)
638
  }
639
 
640
  $sgTheme3BorderRadius = @sgGetValue($sgTheme3BorderRadius, $theme3BorderRadius);
 
641
  $sgOpacity = @sgGetValue($sgOpacity, $opacityValue);
642
  $sgPopupBackgroundOpacity = @sgGetValue($sgPopupBackgroundOpacity, $popupBackgroundOpacity);
643
  $sgWidth = @sgGetValue($sgWidth, $width);
@@ -1250,6 +1266,19 @@ if (isset($_GET["titleError"])): ?>
1250
  <span class="liquid-width">Effect duration:</span>
1251
  <input class="input-width-static" type="text" name="duration" value="<?php echo esc_attr($duration); ?>" pattern = "\d+" title="It must be number" /><span class="dashicons dashicons-info contentClick infoImageDuration sameImageStyle"></span><span class="infoDuration samefontStyle">Specify how long the popup appearance animation should take (in sec).</span></br>
1252
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1253
  <span class="liquid-width">Popup opening delay:</span>
1254
  <input class="input-width-static" type="text" name="delay" value="<?php echo esc_attr($delay);?>" pattern = "\d+" title="It must be number"/><span class="dashicons dashicons-info contentClick infoImageDelay sameImageStyle"></span><span class="infoDelay samefontStyle">Specify how long the popup appearance should be delayed after loading the page (in sec).</span></br>
1255
  </div>
148
  $sgPopupClosingTimer = @$jsonData['popupClosingTimer'];
149
  $sgAutoClosePopup = @$jsonData['autoClosePopup'];
150
  $sgRandomPopup = @$jsonData['randomPopup'];
151
+ $sgPopupOpenSound = @$jsonData['popupOpenSound'];
152
+ $sgPopupOpenSoundFile = @$jsonData['popupOpenSoundFile'];
153
  $sgCountryStatus = @$jsonData['countryStatus'];
154
  $sgAllSelectedPages = @$jsonData['allSelectedPages'];
155
  $sgAllSelectedCustomPosts = @$jsonData['allSelectedCustomPosts'];
244
  $sgSubsSuccessPopupsList = @$subscriptionOptions['subs-success-popups-list'];
245
  $sgSubsFirstNameRequired = @$subscriptionOptions['subs-first-name-required'];
246
  $sgSubsLastNameRequired = @$subscriptionOptions['subs-last-name-required'];
247
+ $sgSubsSuccessRedirectNewTab = @$subscriptionOptions['subs-success-redirect-new-tab'];
248
  $contactFormOptions = json_decode(@$params, true);
249
  $sgContactNameLabel = @$contactFormOptions['contact-name'];
250
  $sgContactNameStatus = @$contactFormOptions['contact-name-status'];
281
  $sgContactSuccessPopupsList = @$contactFormOptions['contact-success-popups-list'];
282
  $sgDontShowContentToContactedUser = @$contactFormOptions['dont-show-content-to-contacted-user'];
283
  $sgContactSuccessFrequencyDays = @$contactFormOptions['contact-success-frequency-days'];
284
+ $sgContactSuccessRedirectNewTab = @$contactFormOptions['contact-success-redirect-new-tab'];
285
  }
286
 
287
  $dataPopupId = @$id;
339
  'redirect-to-new-tab' => true,
340
  'autoClosePopup' => false,
341
  'randomPopup' => false,
342
+ 'popupOpenSound' => false,
343
+ 'popupOpenSoundFile' => SG_APP_POPUP_URL.'/files/lib/popupOpenSound.wav',
344
  'fbStatus' => true,
345
  'twitterStatus' => true,
346
  'emailStatus' => true,
407
  'subs-success-popups-list' => '',
408
  'subs-first-name-required' => '',
409
  'subs-last-name-required' => '',
410
+ 'subs-success-redirect-new-tab' => false,
411
  'contact-name' => 'Name *',
412
  'contact-name-required' => true,
413
  'contact-name-status' => true,
426
  'contact-success-redirect-url' => '',
427
  'contact-success-popups-list' => 0,
428
  'dont-show-content-to-contacted-user' => '',
429
+ 'contact-success-frequency-days' => 365,
430
+ 'contact-success-redirect-new-tab' => false
431
  );
432
 
433
  $escKey = sgBoolToChecked($sgPopup['escKey']);
458
  $disablePopupOverlay = sgBoolToChecked($popupProDefaultValues['disablePopupOverlay']);
459
  $autoClosePopup = sgBoolToChecked($popupProDefaultValues['autoClosePopup']);
460
  $randomPopup = sgBoolToChecked($popupProDefaultValues['randomPopup']);
461
+ $popupOpenSound = sgBoolToChecked($popupProDefaultValues['popupOpenSound']);
462
  $fbStatus = sgBoolToChecked($popupProDefaultValues['fbStatus']);
463
  $twitterStatus = sgBoolToChecked($popupProDefaultValues['twitterStatus']);
464
  $emailStatus = sgBoolToChecked($popupProDefaultValues['emailStatus']);
478
  $allCustomPostsStatus = sgBoolToChecked($popupProDefaultValues['allCustomPostsStatus']);
479
  $contactNameStatus = sgBoolToChecked($popupProDefaultValues['contact-name-status']);
480
  $showFormToTop = sgBoolToChecked($popupProDefaultValues['show-form-to-top']);
481
+ $subsSuccessRedirectNewTab = sgBoolToChecked($popupProDefaultValues['subs-success-redirect-new-tab']);
482
  $contactNameRequired = sgBoolToChecked($popupProDefaultValues['contact-name-required']);
483
  $contactSubjectStatus = sgBoolToChecked($popupProDefaultValues['contact-subject-status']);
484
  $contactSubjectRequired = sgBoolToChecked($popupProDefaultValues['contact-subject-required']);
544
  $redirectToNewTab = $popupProDefaultValues['redirect-to-new-tab'];
545
  $dontShowContentToContactedUser = sgBoolToChecked($popupProDefaultValues['dont-show-content-to-contacted-user']);
546
  $contactSuccessFrequencyDays = $popupProDefaultValues['contact-success-frequency-days'];
547
+ $contactSuccessRedirectNewTab = $popupProDefaultValues['contact-success-redirect-new-tab'];
548
+ $popupOpenSoundFile = $popupProDefaultValues['popupOpenSoundFile'];
549
 
550
  function sgBoolToChecked($var)
551
  {
603
  $sgDisablePopupOverlay = @sgSetChecked($sgDisablePopupOverlay, $disablePopupOverlay);
604
  $sgAutoClosePopup = @sgSetChecked($sgAutoClosePopup, $autoClosePopup);
605
  $sgRandomPopup = @sgSetChecked($sgRandomPopup, $randomPopup);
606
+ $sgPopupOpenSound = @sgSetChecked($sgPopupOpenSound, $popupOpenSound);
607
  $sgFbStatus = @sgSetChecked($sgFbStatus, $fbStatus);
608
  $sgTwitterStatus = @sgSetChecked($sgTwitterStatus, $twitterStatus);
609
  $sgEmailStatus = @sgSetChecked($sgEmailStatus, $emailStatus);
617
  $sgRestrictionCookeSavingLevel = @sgSetChecked($sgRestrictionCookeSavingLevel, $restrictionCookeSavingLevel);
618
  $sgSubsFirstNameRequired = @sgSetChecked($sgSubsFirstNameRequired, $subsFirstNameRequired);
619
  $sgSubsLastNameRequired = @sgSetChecked($sgSubsLastNameRequired, $subsLastNameRequired);
620
+ $sgSubsSuccessRedirectNewTab = @sgSetChecked($sgSubsSuccessRedirectNewTab, $subsSuccessRedirectNewTab);
621
+ $sgContactSuccessRedirectNewTab = @sgSetChecked($sgContactSuccessRedirectNewTab, $contactSuccessRedirectNewTab);
622
 
623
  $sgAllPagesStatus = @sgSetChecked($sgAllPagesStatus, $allPagesStatus);
624
  $sgAllPostsStatus = @sgSetChecked($sgAllPostsStatus, $allPostsStatus);
653
  }
654
 
655
  $sgTheme3BorderRadius = @sgGetValue($sgTheme3BorderRadius, $theme3BorderRadius);
656
+ $sgPopupOpenSoundFile = @sgGetValue($sgPopupOpenSoundFile, $popupOpenSoundFile);
657
  $sgOpacity = @sgGetValue($sgOpacity, $opacityValue);
658
  $sgPopupBackgroundOpacity = @sgGetValue($sgPopupBackgroundOpacity, $popupBackgroundOpacity);
659
  $sgWidth = @sgGetValue($sgWidth, $width);
1266
  <span class="liquid-width">Effect duration:</span>
1267
  <input class="input-width-static" type="text" name="duration" value="<?php echo esc_attr($duration); ?>" pattern = "\d+" title="It must be number" /><span class="dashicons dashicons-info contentClick infoImageDuration sameImageStyle"></span><span class="infoDuration samefontStyle">Specify how long the popup appearance animation should take (in sec).</span></br>
1268
 
1269
+ <span class="liquid-width">Popup open sound:</span>
1270
+ <div class="input-width-static sg-display-inline">
1271
+ <input class="input-width-static js-checkbox-sound-option" type="checkbox" name="popupOpenSound" <?php echo $sgPopupOpenSound;?>></div><span class="dashicons dashicons-info repeatPopup same-image-style"></span><span class="infoSelectRepeat samefontStyle">If this option enabled a sound will play after popup opened.Sound option is not available on mobile devices, as there are restrictions on sound auto-play options for mobile devices.</span><br>
1272
+ <div class="acordion-main-div-content js-checkbox-sound-option-wrapper">
1273
+ <div class="sound-uploader-wrapper">
1274
+ <div class="liquid-width-div sg-vertical-top"><input id="js-upload-open-sound-button" class="button" type="button" value="Change the sound">
1275
+ <button data-default-song="<?php echo $popupOpenSoundFile; ?> " id="reset-to-default" class="button">Reset</button>
1276
+ </div>
1277
+ <input class="input-width-static sg-margin-top-0" id="js-upload-open-sound" type="text" size="36" name="popupOpenSoundFile" value="<?php echo esc_attr($sgPopupOpenSoundFile); ?>" required readonly>
1278
+ <span class="dashicons dashicons-controls-volumeon sg-preview-sound"></span>
1279
+ </div>
1280
+ </div>
1281
+
1282
  <span class="liquid-width">Popup opening delay:</span>
1283
  <input class="input-width-static" type="text" name="delay" value="<?php echo esc_attr($delay);?>" pattern = "\d+" title="It must be number"/><span class="dashicons dashicons-info contentClick infoImageDelay sameImageStyle"></span><span class="infoDelay samefontStyle">Specify how long the popup appearance should be delayed after loading the page (in sec).</span></br>
1284
  </div>
files/sg_popup_save.php CHANGED
@@ -147,7 +147,8 @@ function sgPopupSave()
147
  'subs-success-redirect-url' => esc_url_raw(@$_POST['subs-success-redirect-url']),
148
  'subs-success-popups-list' => sgSanitize('subs-success-popups-list'),
149
  'subs-first-name-required' => sgSanitize('subs-first-name-required'),
150
- 'subs-last-name-required' => sgSanitize('subs-last-name-required')
 
151
  );
152
 
153
  $contactFormOptions = array(
@@ -187,6 +188,7 @@ function sgPopupSave()
187
  'contact-success-popups-list' => sgSanitize('contact-success-popups-list'),
188
  'dont-show-content-to-contacted-user' => sgSanitize('dont-show-content-to-contacted-user'),
189
  'contact-success-frequency-days' => sgSanitize('contact-success-frequency-days'),
 
190
  );
191
 
192
  $fblikeOptions = array(
147
  'subs-success-redirect-url' => esc_url_raw(@$_POST['subs-success-redirect-url']),
148
  'subs-success-popups-list' => sgSanitize('subs-success-popups-list'),
149
  'subs-first-name-required' => sgSanitize('subs-first-name-required'),
150
+ 'subs-last-name-required' => sgSanitize('subs-last-name-required'),
151
+ 'subs-success-redirect-new-tab' => sgSanitize('subs-success-redirect-new-tab')
152
  );
153
 
154
  $contactFormOptions = array(
188
  'contact-success-popups-list' => sgSanitize('contact-success-popups-list'),
189
  'dont-show-content-to-contacted-user' => sgSanitize('dont-show-content-to-contacted-user'),
190
  'contact-success-frequency-days' => sgSanitize('contact-success-frequency-days'),
191
+ 'contact-success-redirect-new-tab' => sgSanitize('contact-success-redirect-new-tab')
192
  );
193
 
194
  $fblikeOptions = array(
helpers/Integrate_external_settings.php CHANGED
@@ -187,8 +187,9 @@ Class IntegrateExternalSettings {
187
  'fblikeOptions' => json_encode($params['fblikeOptions']),
188
  'repetitivePopup' => sgSanitize('repetitivePopup'),
189
  'repetitivePopupPeriod' => sgSanitize('repetitivePopupPeriod'),
190
- 'randomPopup' => sgSanitize('randomPopup')
191
-
 
192
  );
193
 
194
  return $options;
187
  'fblikeOptions' => json_encode($params['fblikeOptions']),
188
  'repetitivePopup' => sgSanitize('repetitivePopup'),
189
  'repetitivePopupPeriod' => sgSanitize('repetitivePopupPeriod'),
190
+ 'randomPopup' => sgSanitize('randomPopup'),
191
+ 'popupOpenSound' => sgSanitize('popupOpenSound'),
192
+ 'popupOpenSoundFile' => sgSanitize('popupOpenSoundFile')
193
  );
194
 
195
  return $options;
javascript/sg_popup_backend.js CHANGED
@@ -1 +1 @@
1
- function beckend() {
2
  this.titleNotEmpty(); /* Check title is Empty */
3
  this.showThemePicture(); /* Show themes pictures */
4
  this.showEffects(); /* Show effect type */
5
  this.pageAcordion(); /* For page accordion divs */
6
  this.fixedPostionSelection(); /* Functionality for selected position */
7
  this.showInfo(); /* Show description options */
8
  this.opacityRange();
9
  this.subOptionContents();
10
  this.addCountries();
11
  this.showCloseTextFieldForTheme();
12
  this.popupReview();
13
  this.colorPicekr(); /* Color picker */
14
  this.switchPopupActive();
15
  this.initAccordions();
16
  });
17
  jQuery('.sg-info-close').on('click', function() {
18
  jQuery( ".sg-info-panel-wrapper" ).hide(300);
19
  });
20
  this.radioButtonAcordion(jQuery("[name='subs-success-behavior']"),jQuery("[name='subs-success-behavior']:checked"),"showMessage", jQuery('.js-subs-success-message-content'));
21
  this.radioButtonAcordion(jQuery("[name='subs-success-behavior']"),jQuery("[name='subs-success-behavior']:checked"),"redirectToUrl", jQuery('.js-subs-success-redirect-content'));
22
  this.radioButtonAcordion(jQuery("[name='subs-success-behavior']"),jQuery("[name='subs-success-behavior']:checked"),"openPopup", jQuery('.js-subs-success-popups-list-content'));
23
  checkedElement.after(toggleContnet.css({'display':'inline-block'}));
 
24
  this.titleNotEmpty(); /* Check title is Empty */
25
  this.showThemePicture(); /* Show themes pictures */
26
  this.showEffects(); /* Show effect type */
27
  this.pageAcordion(); /* For page accordion divs */
28
  this.fixedPostionSelection(); /* Functionality for selected position */
29
  this.showInfo(); /* Show description options */
30
  this.opacityRange();
31
  this.subOptionContents();
32
  this.addCountries();
33
  this.showCloseTextFieldForTheme();
34
  this.popupReview();
35
  this.colorPicekr(); /* Color picker */
36
  this.switchPopupActive();
37
  this.initAccordions();
38
  });
39
  jQuery('.sg-info-close').on('click', function() {
40
  jQuery( ".sg-info-panel-wrapper" ).hide(300);
41
  });
42
  this.radioButtonAcordion(jQuery("[name='subs-success-behavior']"),jQuery("[name='subs-success-behavior']:checked"),"showMessage", jQuery('.js-subs-success-message-content'));
43
  this.radioButtonAcordion(jQuery("[name='subs-success-behavior']"),jQuery("[name='subs-success-behavior']:checked"),"redirectToUrl", jQuery('.js-subs-success-redirect-content'));
44
  this.radioButtonAcordion(jQuery("[name='subs-success-behavior']"),jQuery("[name='subs-success-behavior']:checked"),"openPopup", jQuery('.js-subs-success-popups-list-content'));
45
  checkedElement.after(toggleContnet.css({'display':'inline-block'}));
 
1
  this.titleNotEmpty(); /* Check title is Empty */
2
  this.showThemePicture(); /* Show themes pictures */
3
  this.showEffects(); /* Show effect type */
4
  this.pageAcordion(); /* For page accordion divs */
5
  this.fixedPostionSelection(); /* Functionality for selected position */
6
  this.showInfo(); /* Show description options */
7
  this.opacityRange();
8
  this.subOptionContents();
9
  this.addCountries();
10
  this.showCloseTextFieldForTheme();
11
  this.popupReview();
12
  this.colorPicekr(); /* Color picker */
13
  this.switchPopupActive();
14
  this.initAccordions();
15
  });
16
  jQuery('.sg-info-close').on('click', function() {
17
  jQuery( ".sg-info-panel-wrapper" ).hide(300);
18
  });
19
  this.radioButtonAcordion(jQuery("[name='subs-success-behavior']"),jQuery("[name='subs-success-behavior']:checked"),"showMessage", jQuery('.js-subs-success-message-content'));
20
  this.radioButtonAcordion(jQuery("[name='subs-success-behavior']"),jQuery("[name='subs-success-behavior']:checked"),"redirectToUrl", jQuery('.js-subs-success-redirect-content'));
21
  this.radioButtonAcordion(jQuery("[name='subs-success-behavior']"),jQuery("[name='subs-success-behavior']:checked"),"openPopup", jQuery('.js-subs-success-popups-list-content'));
22
  checkedElement.after(toggleContnet.css({'display':'inline-block'}));
23
+ function beckend() {
24
  this.titleNotEmpty(); /* Check title is Empty */
25
  this.showThemePicture(); /* Show themes pictures */
26
  this.showEffects(); /* Show effect type */
27
  this.pageAcordion(); /* For page accordion divs */
28
  this.fixedPostionSelection(); /* Functionality for selected position */
29
  this.showInfo(); /* Show description options */
30
  this.opacityRange();
31
  this.subOptionContents();
32
  this.addCountries();
33
  this.showCloseTextFieldForTheme();
34
  this.popupReview();
35
  this.colorPicekr(); /* Color picker */
36
  this.switchPopupActive();
37
  this.initAccordions();
38
  });
39
  jQuery('.sg-info-close').on('click', function() {
40
  jQuery( ".sg-info-panel-wrapper" ).hide(300);
41
  });
42
  this.radioButtonAcordion(jQuery("[name='subs-success-behavior']"),jQuery("[name='subs-success-behavior']:checked"),"showMessage", jQuery('.js-subs-success-message-content'));
43
  this.radioButtonAcordion(jQuery("[name='subs-success-behavior']"),jQuery("[name='subs-success-behavior']:checked"),"redirectToUrl", jQuery('.js-subs-success-redirect-content'));
44
  this.radioButtonAcordion(jQuery("[name='subs-success-behavior']"),jQuery("[name='subs-success-behavior']:checked"),"openPopup", jQuery('.js-subs-success-popups-list-content'));
45
  checkedElement.after(toggleContnet.css({'display':'inline-block'}));
javascript/sg_popup_frontend.js CHANGED
@@ -570,7 +570,7 @@ SGPopup.prototype.resizePopup = function (settings) {
570
  if (that.resizeTimer) clearTimeout(that.resizeTimer);
571
  that.resizeTimer = setTimeout(function() {
572
  if (jQuery('#sgcboxOverlay').is(':visible')) {
573
-
574
  if (maxWidth.indexOf("%") != -1) {
575
  maxWidth = that.percentToPx(maxWidth, windowWidth);
576
  }
@@ -595,9 +595,21 @@ SGPopup.prototype.resizePopup = function (settings) {
595
 
596
  settings.maxWidth = maxWidth;
597
  settings.maxHeight = maxHeight;
 
 
598
 
599
- jQuery.sgcolorbox(settings);
600
- jQuery('#sgcboxLoadingGraphic').css({'display': 'none'});
 
 
 
 
 
 
 
 
 
 
601
  }
602
  }, 500);
603
  }
@@ -606,8 +618,6 @@ SGPopup.prototype.resizePopup = function (settings) {
606
  window.addEventListener("orientationchange", resizeColorBox, false);
607
  };
608
 
609
-
610
-
611
  SGPopup.prototype.resizeAfterContentResizing = function () {
612
 
613
  var visibilityClasses = [".js-validate-required", ".js-sgpb-visibility"];
@@ -680,11 +690,15 @@ SGPopup.prototype.colorboxEventsListener = function () {
680
 
681
  var that = this;
682
  var disablePageScrolling = this.varToBool(this.popupData['disable-page-scrolling']);
 
 
683
  var repetitivePopup = this.popupData['repetitivePopup'];
684
  var repetitivePopupPeriod = this.popupData['repetitivePopupPeriod'];
685
  repetitivePopupPeriod = parseInt(repetitivePopupPeriod)*1000;
686
  var repetitiveTimeout = null;
687
-
 
 
688
  jQuery('#sgcolorbox').on("sgColorboxOnOpen", function () {
689
  if(disablePageScrolling) {
690
  jQuery('body').css({ overflow: 'hidden' });
@@ -693,6 +707,10 @@ SGPopup.prototype.colorboxEventsListener = function () {
693
 
694
  jQuery('#sgcolorbox').on("sgColorboxOnCompleate", function () {
695
  clearInterval(repetitiveTimeout);
 
 
 
 
696
  });
697
 
698
  jQuery('#sgcolorbox').on("sgPopupCleanup", function () {
@@ -702,6 +720,9 @@ SGPopup.prototype.colorboxEventsListener = function () {
702
  sgPoupFrontendObj.popupOpenById(that.popupData['id']);
703
  }, repetitivePopupPeriod);
704
  }
 
 
 
705
  });
706
 
707
  jQuery('#sgcolorbox').on("sgPopupClose", function () {
570
  if (that.resizeTimer) clearTimeout(that.resizeTimer);
571
  that.resizeTimer = setTimeout(function() {
572
  if (jQuery('#sgcboxOverlay').is(':visible')) {
573
+ var shouldResize = true;
574
  if (maxWidth.indexOf("%") != -1) {
575
  maxWidth = that.percentToPx(maxWidth, windowWidth);
576
  }
595
 
596
  settings.maxWidth = maxWidth;
597
  settings.maxHeight = maxHeight;
598
+ var hasFocusedInput = false;
599
+ jQuery('#sgcboxLoadedContent input,#sgcboxLoadedContent textarea').each(function() {
600
 
601
+ if(jQuery(this).is(':focus')) {
602
+ hasFocusedInput = true;
603
+ }
604
+ });
605
+ /*For mobile when has some focused input popup does not resize*/
606
+ if( /Android|webOS|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) && hasFocusedInput ) {
607
+ shouldResize = false;
608
+ }
609
+ if(shouldResize) {
610
+ jQuery.sgcolorbox(settings);
611
+ jQuery('#sgcboxLoadingGraphic').css({'display': 'none'});
612
+ }
613
  }
614
  }, 500);
615
  }
618
  window.addEventListener("orientationchange", resizeColorBox, false);
619
  };
620
 
 
 
621
  SGPopup.prototype.resizeAfterContentResizing = function () {
622
 
623
  var visibilityClasses = [".js-validate-required", ".js-sgpb-visibility"];
690
 
691
  var that = this;
692
  var disablePageScrolling = this.varToBool(this.popupData['disable-page-scrolling']);
693
+ var popupOpenSound = this.varToBool(this.popupData['popupOpenSound']);
694
+ var popupOpenSoundFile = this.popupData['popupOpenSoundFile'];
695
  var repetitivePopup = this.popupData['repetitivePopup'];
696
  var repetitivePopupPeriod = this.popupData['repetitivePopupPeriod'];
697
  repetitivePopupPeriod = parseInt(repetitivePopupPeriod)*1000;
698
  var repetitiveTimeout = null;
699
+ if(popupOpenSound && popupOpenSoundFile) {
700
+ var audio = new Audio(popupOpenSoundFile);
701
+ }
702
  jQuery('#sgcolorbox').on("sgColorboxOnOpen", function () {
703
  if(disablePageScrolling) {
704
  jQuery('body').css({ overflow: 'hidden' });
707
 
708
  jQuery('#sgcolorbox').on("sgColorboxOnCompleate", function () {
709
  clearInterval(repetitiveTimeout);
710
+ if(popupOpenSound && popupOpenSoundFile) {
711
+ audio.play()
712
+ }
713
+
714
  });
715
 
716
  jQuery('#sgcolorbox').on("sgPopupCleanup", function () {
720
  sgPoupFrontendObj.popupOpenById(that.popupData['id']);
721
  }, repetitivePopupPeriod);
722
  }
723
+ if(popupOpenSound && popupOpenSoundFile) {
724
+ audio.pause();
725
+ }
726
  });
727
 
728
  jQuery('#sgcolorbox').on("sgPopupClose", function () {
popup-builder.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Popup Builder
4
  * Plugin URI: http://sygnoos.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: 2.6.3.3
7
  * Author: Popup Builder
8
  * Author URI: http://www.sygnoos.com
9
  * License: GPLv2
3
  * Plugin Name: Popup Builder
4
  * Plugin URI: http://sygnoos.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: 2.6.4
7
  * Author: Popup Builder
8
  * Author URI: http://www.sygnoos.com
9
  * License: GPLv2
readme.txt CHANGED
@@ -38,9 +38,10 @@ With popup builder plugin you can insert any type of content, right into your Po
38
  * Customize popup overlay color and opacity
39
  * Add custom class for popup overlay
40
  * Add custom class for popup content
41
- * Repetitive pop-up - show popup every X period of time
42
  * Redirect user to another page when he/she clicks on popup content
43
  * Show/Hide Popup for selected User Roles (Admin panel)
 
44
  * Responsive popup
45
  * Scale popup for desktop sizes
46
  * Network/Multisite popup
@@ -164,6 +165,10 @@ Go to the Popup Builder settings and set your desired options.
164
 
165
  == Changelog ==
166
 
 
 
 
 
167
  = Version 2.6.3.3 =
168
  * Bug fixed for Safari browser when the popup loads automatically.
169
 
@@ -274,11 +279,11 @@ Go to the Popup Builder settings and set your desired options.
274
  * Bug fixed connected to extensions manager.
275
 
276
  = Version 2.4.7 =
277
- * Added extension logic
278
- * Code optimization
279
- * Bug fixes
280
- * Exit-Intent extension (PRO)
281
- * AdBlock extension (PRO)
282
 
283
  = Version 2.4.6 =
284
  * UX modifications.
@@ -667,6 +672,11 @@ We made it very easy for you! All you need to do is:
667
 
668
  That's all! And you don't need to delete your Free version manually before upgrading to Pro!
669
 
 
 
 
 
 
670
  **Can I create a popup and make it invisible for some countries? (PRO)**
671
 
672
  Our plugin has an option for such cases. You can select "Filter popup for selected countries" option, which allows you to select the countries in which you want the popup to be shown or hidden, because there can be some popups which you make for specific countries and you may not want them to be seen in some other countries in cases of targeting groups for your marketing. (Allow/Disallow)
@@ -686,7 +696,7 @@ Leave us a good review :)
686
 
687
  == Upgrade Notice ==
688
 
689
- Current Version of Popup Builder is 2.6.3.2
690
 
691
  == Other Notes ==
692
 
38
  * Customize popup overlay color and opacity
39
  * Add custom class for popup overlay
40
  * Add custom class for popup content
41
+ * Repetitive pop up - show popup every X period of time
42
  * Redirect user to another page when he/she clicks on popup content
43
  * Show/Hide Popup for selected User Roles (Admin panel)
44
+ * Popup opening sound
45
  * Responsive popup
46
  * Scale popup for desktop sizes
47
  * Network/Multisite popup
165
 
166
  == Changelog ==
167
 
168
+ = Version 2.6.4 =
169
+ * Added new option to play sound on popup opening.
170
+ * Minor fixes and improvements.
171
+
172
  = Version 2.6.3.3 =
173
  * Bug fixed for Safari browser when the popup loads automatically.
174
 
279
  * Bug fixed connected to extensions manager.
280
 
281
  = Version 2.4.7 =
282
+ * Added extension logic.
283
+ * Code optimization.
284
+ * Bug fixes.
285
+ * Exit-Intent extension (PRO).
286
+ * AdBlock extension (PRO).
287
 
288
  = Version 2.4.6 =
289
  * UX modifications.
672
 
673
  That's all! And you don't need to delete your Free version manually before upgrading to Pro!
674
 
675
+ **How can I add a sound on popup opening?**
676
+
677
+ From the 'Effects' panel enable 'Popup open sound' option and choose the sound you would like to be played on the popup opening.
678
+ Please be noted that browser's don't support all the formats. We recommend to use the WAV format.
679
+
680
  **Can I create a popup and make it invisible for some countries? (PRO)**
681
 
682
  Our plugin has an option for such cases. You can select "Filter popup for selected countries" option, which allows you to select the countries in which you want the popup to be shown or hidden, because there can be some popups which you make for specific countries and you may not want them to be seen in some other countries in cases of targeting groups for your marketing. (Allow/Disallow)
696
 
697
  == Upgrade Notice ==
698
 
699
+ Current Version of Popup Builder is 2.6.4
700
 
701
  == Other Notes ==
702
 
style/sg_popup_style.css CHANGED
@@ -3,10 +3,26 @@
3
  margin-right: 1px;
4
  }
5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  .sg-hide-element {
7
  display: none !important;
8
  }
9
 
 
 
 
10
  .sg-margin0 {
11
  margin: 0;
12
  }
@@ -1557,6 +1573,16 @@ input:checked + .sg-slider:before {
1557
  margin-right: 15px;
1558
  }
1559
 
 
 
 
 
 
 
 
 
 
 
1560
  @media(max-width: 1042px) {
1561
  .sg-black-info {
1562
  width: 200px;
3
  margin-right: 1px;
4
  }
5
 
6
+ .liquid-width-div {
7
+ width: 39%;
8
+ display: inline-block;
9
+ }
10
+
11
+ .sg-vertical-top {
12
+ vertical-align: top;
13
+ }
14
+
15
+ .sg-margin-top-0 {
16
+ margin-top: 0px;
17
+ }
18
+
19
  .sg-hide-element {
20
  display: none !important;
21
  }
22
 
23
+ .sg-display-inline {
24
+ display: inline-block;
25
+ }
26
  .sg-margin0 {
27
  margin: 0;
28
  }
1573
  margin-right: 15px;
1574
  }
1575
 
1576
+ .sg-preview-sound {
1577
+ color: #3879D9;
1578
+ margin: 1px -2px;
1579
+ cursor: pointer;
1580
+ }
1581
+
1582
+ .sound-uploader-wrapper {
1583
+ padding: 6px 0px 6px 0px;
1584
+ }
1585
+
1586
  @media(max-width: 1042px) {
1587
  .sg-black-info {
1588
  width: 200px;