Popup by Supsystic - Version 1.8.8

Version Description

/ 21.02.2017 * Featured plugins updated - added Membership plugin * Minor issues fix

Download this release

Release Info

Developer supsystic.com
Plugin Icon 128x128 Popup by Supsystic
Version 1.8.8
Comparing to
See all releases

Code changes from version 1.9.1 to 1.8.8

config.php CHANGED
@@ -48,7 +48,7 @@
48
  define('PPS_EOL', "\n");
49
 
50
  define('PPS_PLUGIN_INSTALLED', true);
51
- define('PPS_VERSION', '1.9.1');
52
  define('PPS_USER', 'user');
53
 
54
  define('PPS_CLASS_PREFIX', 'ppsc');
48
  define('PPS_EOL', "\n");
49
 
50
  define('PPS_PLUGIN_INSTALLED', true);
51
+ define('PPS_VERSION', '1.8.8');
52
  define('PPS_USER', 'user');
53
 
54
  define('PPS_CLASS_PREFIX', 'ppsc');
js/admin.options.js CHANGED
@@ -301,7 +301,6 @@ function ppsInitStickyItem() {
301
  });
302
  }
303
  function ppsInitCustomCheckRadio(selector) {
304
- if(!jQuery.fn.iCheck) return;
305
  if(!selector)
306
  selector = document;
307
  jQuery(selector).find('input').iCheck('destroy').iCheck({
@@ -329,19 +328,15 @@ function ppsInitCustomCheckRadio(selector) {
329
  });
330
  }
331
  function ppsCheckDestroy(checkbox) {
332
- if(!jQuery.fn.iCheck) return;
333
  jQuery(checkbox).iCheck('destroy');
334
  }
335
  function ppsCheckDestroyArea(selector) {
336
- if(!jQuery.fn.iCheck) return;
337
  jQuery(selector).find('input[type=checkbox]').iCheck('destroy');
338
  }
339
  function ppsCheckUpdate(checkbox) {
340
- if(!jQuery.fn.iCheck) return;
341
  jQuery(checkbox).iCheck('update');
342
  }
343
  function ppsCheckUpdateArea(selector) {
344
- if(!jQuery.fn.iCheck) return;
345
  jQuery(selector).find('input[type=checkbox]').iCheck('update');
346
  }
347
  function ppsGetTxtEditorVal(id) {
301
  });
302
  }
303
  function ppsInitCustomCheckRadio(selector) {
 
304
  if(!selector)
305
  selector = document;
306
  jQuery(selector).find('input').iCheck('destroy').iCheck({
328
  });
329
  }
330
  function ppsCheckDestroy(checkbox) {
 
331
  jQuery(checkbox).iCheck('destroy');
332
  }
333
  function ppsCheckDestroyArea(selector) {
 
334
  jQuery(selector).find('input[type=checkbox]').iCheck('destroy');
335
  }
336
  function ppsCheckUpdate(checkbox) {
 
337
  jQuery(checkbox).iCheck('update');
338
  }
339
  function ppsCheckUpdateArea(selector) {
 
340
  jQuery(selector).find('input[type=checkbox]').iCheck('update');
341
  }
342
  function ppsGetTxtEditorVal(id) {
modules/mail/engines/class.phpmailer.php CHANGED
@@ -31,7 +31,7 @@ class PHPMailer
31
  * The PHPMailer Version number.
32
  * @var string
33
  */
34
- public $Version = '5.2.22';
35
 
36
  /**
37
  * Email priority.
@@ -692,7 +692,7 @@ class PHPMailer
692
  $subject = $this->encodeHeader($this->secureHeader($subject));
693
  }
694
 
695
- //Can't use additional_parameters in safe_mode, calling mail() with null params breaks
696
  //@link http://php.net/manual/en/function.mail.php
697
  if (ini_get('safe_mode') or !$this->UseSendmailOptions or is_null($params)) {
698
  $result = @mail($to, $subject, $body, $header);
@@ -1364,24 +1364,19 @@ class PHPMailer
1364
  */
1365
  protected function sendmailSend($header, $body)
1366
  {
1367
- // CVE-2016-10033, CVE-2016-10045: Don't pass -f if characters will be escaped.
1368
- if (!empty($this->Sender) and self::isShellSafe($this->Sender)) {
1369
  if ($this->Mailer == 'qmail') {
1370
- $sendmailFmt = '%s -f%s';
1371
  } else {
1372
- $sendmailFmt = '%s -oi -f%s -t';
1373
  }
1374
  } else {
1375
  if ($this->Mailer == 'qmail') {
1376
- $sendmailFmt = '%s';
1377
  } else {
1378
- $sendmailFmt = '%s -oi -t';
1379
  }
1380
  }
1381
-
1382
- // TODO: If possible, this should be changed to escapeshellarg. Needs thorough testing.
1383
- $sendmail = sprintf($sendmailFmt, escapeshellcmd($this->Sendmail), $this->Sender);
1384
-
1385
  if ($this->SingleTo) {
1386
  foreach ($this->SingleToArray as $toAddr) {
1387
  if (!@$mail = popen($sendmail, 'w')) {
@@ -1427,40 +1422,6 @@ class PHPMailer
1427
  return true;
1428
  }
1429
 
1430
- /**
1431
- * Fix CVE-2016-10033 and CVE-2016-10045 by disallowing potentially unsafe shell characters.
1432
- *
1433
- * Note that escapeshellarg and escapeshellcmd are inadequate for our purposes, especially on Windows.
1434
- * @param string $string The string to be validated
1435
- * @see https://github.com/PHPMailer/PHPMailer/issues/924 CVE-2016-10045 bug report
1436
- * @access protected
1437
- * @return boolean
1438
- */
1439
- protected static function isShellSafe($string)
1440
- {
1441
- // Future-proof
1442
- if (escapeshellcmd($string) !== $string
1443
- or !in_array(escapeshellarg($string), array("'$string'", "\"$string\""))
1444
- ) {
1445
- return false;
1446
- }
1447
-
1448
- $length = strlen($string);
1449
-
1450
- for ($i = 0; $i < $length; $i++) {
1451
- $c = $string[$i];
1452
-
1453
- // All other characters have a special meaning in at least one common shell, including = and +.
1454
- // Full stop (.) has a special meaning in cmd.exe, but its impact should be negligible here.
1455
- // Note that this does permit non-Latin alphanumeric characters based on the current locale.
1456
- if (!ctype_alnum($c) && strpos('@_-.', $c) === false) {
1457
- return false;
1458
- }
1459
- }
1460
-
1461
- return true;
1462
- }
1463
-
1464
  /**
1465
  * Send mail using the PHP mail() function.
1466
  * @param string $header The message headers
@@ -1480,13 +1441,10 @@ class PHPMailer
1480
 
1481
  $params = null;
1482
  //This sets the SMTP envelope sender which gets turned into a return-path header by the receiver
1483
- if (!empty($this->Sender) and $this->validateAddress($this->Sender)) {
1484
- // CVE-2016-10033, CVE-2016-10045: Don't pass -f if characters will be escaped.
1485
- if (self::isShellSafe($this->Sender)) {
1486
- $params = sprintf('-f%s', $this->Sender);
1487
- }
1488
  }
1489
- if (!empty($this->Sender) and !ini_get('safe_mode') and $this->validateAddress($this->Sender)) {
1490
  $old_from = ini_get('sendmail_from');
1491
  ini_set('sendmail_from', $this->Sender);
1492
  }
@@ -1540,10 +1498,10 @@ class PHPMailer
1540
  if (!$this->smtpConnect($this->SMTPOptions)) {
1541
  throw new phpmailerException($this->lang('smtp_connect_failed'), self::STOP_CRITICAL);
1542
  }
1543
- if (!empty($this->Sender) and $this->validateAddress($this->Sender)) {
1544
- $smtp_from = $this->Sender;
1545
- } else {
1546
  $smtp_from = $this->From;
 
 
1547
  }
1548
  if (!$this->smtp->mail($smtp_from)) {
1549
  $this->setError($this->lang('from_failed') . $smtp_from . ' : ' . implode(',', $this->smtp->getError()));
@@ -2492,7 +2450,6 @@ class PHPMailer
2492
 
2493
  /**
2494
  * Add an attachment from a path on the filesystem.
2495
- * Never use a user-supplied path to a file!
2496
  * Returns false if the file could not be found or read.
2497
  * @param string $path Path to the attachment.
2498
  * @param string $name Overrides the attachment name.
@@ -3018,7 +2975,6 @@ class PHPMailer
3018
  * displayed inline with the message, not just attached for download.
3019
  * This is used in HTML messages that embed the images
3020
  * the HTML refers to using the $cid value.
3021
- * Never use a user-supplied path to a file!
3022
  * @param string $path Path to the attachment.
3023
  * @param string $cid Content ID of the attachment; Use this to reference
3024
  * the content when using an embedded image in HTML.
@@ -3382,14 +3338,12 @@ class PHPMailer
3382
  * Create a message body from an HTML string.
3383
  * Automatically inlines images and creates a plain-text version by converting the HTML,
3384
  * overwriting any existing values in Body and AltBody.
3385
- * Do not source $message content from user input!
3386
- * $basedir is prepended when handling relative URLs, e.g. <img src="/images/a.png"> and must not be empty
3387
  * will look for an image file in $basedir/images/a.png and convert it to inline.
3388
- * If you don't provide a $basedir, relative paths will be left untouched (and thus probably break in email)
3389
- * If you don't want to apply these transformations to your HTML, just set Body and AltBody directly.
3390
  * @access public
3391
  * @param string $message HTML message string
3392
- * @param string $basedir Absolute path to a base directory to prepend to relative paths to images
3393
  * @param boolean|callable $advanced Whether to use the internal HTML to text converter
3394
  * or your own custom converter @see PHPMailer::html2text()
3395
  * @return string $message The transformed message Body
@@ -3398,10 +3352,6 @@ class PHPMailer
3398
  {
3399
  preg_match_all('/(src|background)=["\'](.*)["\']/Ui', $message, $images);
3400
  if (array_key_exists(2, $images)) {
3401
- if (strlen($basedir) > 1 && substr($basedir, -1) != '/') {
3402
- // Ensure $basedir has a trailing /
3403
- $basedir .= '/';
3404
- }
3405
  foreach ($images[2] as $imgindex => $url) {
3406
  // Convert data URIs into embedded images
3407
  if (preg_match('#^data:(image[^;,]*)(;base64)?,#', $url, $match)) {
@@ -3419,24 +3369,18 @@ class PHPMailer
3419
  $message
3420
  );
3421
  }
3422
- continue;
3423
- }
3424
- if (
3425
- // Only process relative URLs if a basedir is provided (i.e. no absolute local paths)
3426
- !empty($basedir)
3427
- // Ignore URLs containing parent dir traversal (..)
3428
- && (strpos($url, '..') === false)
3429
  // Do not change urls that are already inline images
3430
- && substr($url, 0, 4) !== 'cid:'
3431
- // Do not change absolute URLs, including anonymous protocol
3432
- && !preg_match('#^[a-z][a-z0-9+.-]*:?//#i', $url)
3433
- ) {
3434
  $filename = basename($url);
3435
  $directory = dirname($url);
3436
  if ($directory == '.') {
3437
  $directory = '';
3438
  }
3439
  $cid = md5($url) . '@phpmailer.0'; // RFC2392 S 2
 
 
 
3440
  if (strlen($directory) > 1 && substr($directory, -1) != '/') {
3441
  $directory .= '/';
3442
  }
31
  * The PHPMailer Version number.
32
  * @var string
33
  */
34
+ public $Version = '5.2.17';
35
 
36
  /**
37
  * Email priority.
692
  $subject = $this->encodeHeader($this->secureHeader($subject));
693
  }
694
 
695
+ //Can't use additional_parameters in safe_mode
696
  //@link http://php.net/manual/en/function.mail.php
697
  if (ini_get('safe_mode') or !$this->UseSendmailOptions or is_null($params)) {
698
  $result = @mail($to, $subject, $body, $header);
1364
  */
1365
  protected function sendmailSend($header, $body)
1366
  {
1367
+ if ($this->Sender != '') {
 
1368
  if ($this->Mailer == 'qmail') {
1369
+ $sendmail = sprintf('%s -f%s', escapeshellcmd($this->Sendmail), escapeshellarg($this->Sender));
1370
  } else {
1371
+ $sendmail = sprintf('%s -oi -f%s -t', escapeshellcmd($this->Sendmail), escapeshellarg($this->Sender));
1372
  }
1373
  } else {
1374
  if ($this->Mailer == 'qmail') {
1375
+ $sendmail = sprintf('%s', escapeshellcmd($this->Sendmail));
1376
  } else {
1377
+ $sendmail = sprintf('%s -oi -t', escapeshellcmd($this->Sendmail));
1378
  }
1379
  }
 
 
 
 
1380
  if ($this->SingleTo) {
1381
  foreach ($this->SingleToArray as $toAddr) {
1382
  if (!@$mail = popen($sendmail, 'w')) {
1422
  return true;
1423
  }
1424
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1425
  /**
1426
  * Send mail using the PHP mail() function.
1427
  * @param string $header The message headers
1441
 
1442
  $params = null;
1443
  //This sets the SMTP envelope sender which gets turned into a return-path header by the receiver
1444
+ if (!empty($this->Sender)) {
1445
+ $params = sprintf('-f%s', $this->Sender);
 
 
 
1446
  }
1447
+ if ($this->Sender != '' and !ini_get('safe_mode')) {
1448
  $old_from = ini_get('sendmail_from');
1449
  ini_set('sendmail_from', $this->Sender);
1450
  }
1498
  if (!$this->smtpConnect($this->SMTPOptions)) {
1499
  throw new phpmailerException($this->lang('smtp_connect_failed'), self::STOP_CRITICAL);
1500
  }
1501
+ if ('' == $this->Sender) {
 
 
1502
  $smtp_from = $this->From;
1503
+ } else {
1504
+ $smtp_from = $this->Sender;
1505
  }
1506
  if (!$this->smtp->mail($smtp_from)) {
1507
  $this->setError($this->lang('from_failed') . $smtp_from . ' : ' . implode(',', $this->smtp->getError()));
2450
 
2451
  /**
2452
  * Add an attachment from a path on the filesystem.
 
2453
  * Returns false if the file could not be found or read.
2454
  * @param string $path Path to the attachment.
2455
  * @param string $name Overrides the attachment name.
2975
  * displayed inline with the message, not just attached for download.
2976
  * This is used in HTML messages that embed the images
2977
  * the HTML refers to using the $cid value.
 
2978
  * @param string $path Path to the attachment.
2979
  * @param string $cid Content ID of the attachment; Use this to reference
2980
  * the content when using an embedded image in HTML.
3338
  * Create a message body from an HTML string.
3339
  * Automatically inlines images and creates a plain-text version by converting the HTML,
3340
  * overwriting any existing values in Body and AltBody.
3341
+ * $basedir is used when handling relative image paths, e.g. <img src="images/a.png">
 
3342
  * will look for an image file in $basedir/images/a.png and convert it to inline.
3343
+ * If you don't want to apply these transformations to your HTML, just set Body and AltBody yourself.
 
3344
  * @access public
3345
  * @param string $message HTML message string
3346
+ * @param string $basedir base directory for relative paths to images
3347
  * @param boolean|callable $advanced Whether to use the internal HTML to text converter
3348
  * or your own custom converter @see PHPMailer::html2text()
3349
  * @return string $message The transformed message Body
3352
  {
3353
  preg_match_all('/(src|background)=["\'](.*)["\']/Ui', $message, $images);
3354
  if (array_key_exists(2, $images)) {
 
 
 
 
3355
  foreach ($images[2] as $imgindex => $url) {
3356
  // Convert data URIs into embedded images
3357
  if (preg_match('#^data:(image[^;,]*)(;base64)?,#', $url, $match)) {
3369
  $message
3370
  );
3371
  }
3372
+ } elseif (substr($url, 0, 4) !== 'cid:' && !preg_match('#^[a-z][a-z0-9+.-]*://#i', $url)) {
3373
+ // Do not change urls for absolute images (thanks to corvuscorax)
 
 
 
 
 
3374
  // Do not change urls that are already inline images
 
 
 
 
3375
  $filename = basename($url);
3376
  $directory = dirname($url);
3377
  if ($directory == '.') {
3378
  $directory = '';
3379
  }
3380
  $cid = md5($url) . '@phpmailer.0'; // RFC2392 S 2
3381
+ if (strlen($basedir) > 1 && substr($basedir, -1) != '/') {
3382
+ $basedir .= '/';
3383
+ }
3384
  if (strlen($directory) > 1 && substr($directory, -1) != '/') {
3385
  $directory .= '/';
3386
  }
modules/popup/js/frontend.popup.js CHANGED
@@ -1,8 +1,7 @@
1
  var g_ppsWindowLoaded = false
2
  , g_ppsIsPageCached = false
3
  , g_ppsIsPageCachedChecked = false
4
- , g_ppsShowCallbacks = {}
5
- , g_ppsClks = {};
6
  jQuery(document).ready(function(){
7
  if(typeof(ppsPopupsFromFooter) !== 'undefined' && ppsPopupsFromFooter && ppsPopupsFromFooter.length) {
8
  ppsPopups = typeof(ppsPopups) === 'undefined' ? [] : ppsPopups;
@@ -50,12 +49,6 @@ jQuery(window).load(function(){
50
  }
51
  }
52
  });
53
- function _ppsAddPopUpClick( popupId, btn ) {
54
- g_ppsClks[ popupId ] = btn;
55
- }
56
- function _ppsGetPopUpClick( popupId ) {
57
- return g_ppsClks[ popupId ];
58
- }
59
  function _ppsCheckPopupOnFollowClk( lnk ) {
60
  var href = lnk.href
61
  , hash = lnk.hash
@@ -96,7 +89,6 @@ function _ppsBindOnElementClickPopups() {
96
  _ppsCheckPopupOnFollowClk( this );
97
  return true;
98
  }
99
- _ppsAddPopUpClick( popupId, this );
100
  if(!_ppsPopupBindDelay(popupId, 'show_on_click_on_el_delay', 'show_on_click_on_el_enb_delay')) {
101
  ppsShowPopup( popupId );
102
  }
@@ -122,7 +114,6 @@ function _ppsBindOnElementClickPopups() {
122
  .attr('title', str_replace(title, matched[0], ''))
123
  .click(function(){
124
  var popupId = jQuery(this).data('popup-id');
125
- _ppsAddPopUpClick( popupId, this );
126
  if(!_ppsPopupBindDelay(popupId, 'show_on_click_on_el_delay', 'show_on_click_on_el_enb_delay')) {
127
  ppsShowPopup( popupId );
128
  }
@@ -493,8 +484,6 @@ function _ppsPopupSetActionDone( popup, action, smType, params ) {
493
  jQuery(document).trigger('ppsAfterPopupsActionDone', {popup: popup, action: action, smType: smType});
494
  }
495
  function _ppsPopupAddStat( popup, action, smType, isUnique ) {
496
- if(popup && popup.params && popup.params.tpl.dsbl_stats) // Stats is disabled
497
- return;
498
  jQuery.sendFormPps({
499
  msgElID: 'noMessages'
500
  , data: {mod: 'statistics', action: 'add', id: popup.id, type: action, sm_type: smType, is_unique: isUnique, 'connect_hash': popup.connect_hash}
@@ -591,10 +580,8 @@ function _ppsIframesForReload(params) {
591
  if(shell.find('iframe')) {
592
  shell.find('iframe').each(function(){
593
  var src = jQuery(this).attr('src');
594
- if(src) {
595
- if(src.indexOf('www.google.com/maps/embed') !== -1) {
596
- this.src = this.src; // Reoad iframe
597
- }
598
  }
599
  });
600
  }
1
  var g_ppsWindowLoaded = false
2
  , g_ppsIsPageCached = false
3
  , g_ppsIsPageCachedChecked = false
4
+ , g_ppsShowCallbacks = {};
 
5
  jQuery(document).ready(function(){
6
  if(typeof(ppsPopupsFromFooter) !== 'undefined' && ppsPopupsFromFooter && ppsPopupsFromFooter.length) {
7
  ppsPopups = typeof(ppsPopups) === 'undefined' ? [] : ppsPopups;
49
  }
50
  }
51
  });
 
 
 
 
 
 
52
  function _ppsCheckPopupOnFollowClk( lnk ) {
53
  var href = lnk.href
54
  , hash = lnk.hash
89
  _ppsCheckPopupOnFollowClk( this );
90
  return true;
91
  }
 
92
  if(!_ppsPopupBindDelay(popupId, 'show_on_click_on_el_delay', 'show_on_click_on_el_enb_delay')) {
93
  ppsShowPopup( popupId );
94
  }
114
  .attr('title', str_replace(title, matched[0], ''))
115
  .click(function(){
116
  var popupId = jQuery(this).data('popup-id');
 
117
  if(!_ppsPopupBindDelay(popupId, 'show_on_click_on_el_delay', 'show_on_click_on_el_enb_delay')) {
118
  ppsShowPopup( popupId );
119
  }
484
  jQuery(document).trigger('ppsAfterPopupsActionDone', {popup: popup, action: action, smType: smType});
485
  }
486
  function _ppsPopupAddStat( popup, action, smType, isUnique ) {
 
 
487
  jQuery.sendFormPps({
488
  msgElID: 'noMessages'
489
  , data: {mod: 'statistics', action: 'add', id: popup.id, type: action, sm_type: smType, is_unique: isUnique, 'connect_hash': popup.connect_hash}
580
  if(shell.find('iframe')) {
581
  shell.find('iframe').each(function(){
582
  var src = jQuery(this).attr('src');
583
+ if(src.indexOf('www.google.com/maps/embed') !== -1) {
584
+ this.src = this.src; // Reoad iframe
 
 
585
  }
586
  });
587
  }
modules/popup/mod.php CHANGED
@@ -8,8 +8,7 @@ class popupPps extends modulePps {
8
 
9
  public function init() {
10
  dispatcherPps::addFilter('mainAdminTabs', array($this, 'addAdminTab'));
11
- $mainCheckActionName = (defined('WP_USE_THEMES') && WP_USE_THEMES) ? 'template_redirect' : 'get_header';
12
- add_action($mainCheckActionName, array($this, 'checkPopupShow'));
13
  add_shortcode(PPS_SHORTCODE_CLICK, array($this, 'showPopupOnClick'));
14
  add_action('wp_footer', array($this, 'collectFooterRender'), 0);
15
  add_filter('wp_nav_menu_objects', array($this, 'checkMenuItemsForPopUps'));
8
 
9
  public function init() {
10
  dispatcherPps::addFilter('mainAdminTabs', array($this, 'addAdminTab'));
11
+ add_action('template_redirect', array($this, 'checkPopupShow'));
 
12
  add_shortcode(PPS_SHORTCODE_CLICK, array($this, 'showPopupOnClick'));
13
  add_action('wp_footer', array($this, 'collectFooterRender'), 0);
14
  add_filter('wp_nav_menu_objects', array($this, 'checkMenuItemsForPopUps'));
modules/popup/views/popup.php CHANGED
@@ -787,9 +787,6 @@ class popupViewPps extends viewPps {
787
  ? $popup['params']['tpl']['fb_like_opts'][ $fKey ]
788
  : (isset($fData['def']) ? $fData['def'] : '');
789
  }
790
- if(is_array($value)) {
791
- $value = implode(',', $value);
792
- }
793
  $res .= ' '. $dataKey.'="'. $value. '"';
794
  }
795
  if(isset($popup['params']['tpl']['width']) && !empty($popup['params']['tpl']['width'])) {
787
  ? $popup['params']['tpl']['fb_like_opts'][ $fKey ]
788
  : (isset($fData['def']) ? $fData['def'] : '');
789
  }
 
 
 
790
  $res .= ' '. $dataKey.'="'. $value. '"';
791
  }
792
  if(isset($popup['params']['tpl']['width']) && !empty($popup['params']['tpl']['width'])) {
modules/statistics/views/tpl/statPopupEditTab.php CHANGED
@@ -88,16 +88,3 @@
88
  <?php } else { ?>
89
  <h4><?php printf(__('You have no statistics for "%s" PopUp for now. Setup its options and wait until users will view it on your site.', PPS_LANG_CODE), $this->popup['label'])?></h4>
90
  <?php }?>
91
- <table class="form-table" style="width: auto;">
92
- <tr>
93
- <th scope="row" style="min-width: 250px;">
94
- <?php _e('Disable Statistics', PPS_LANG_CODE)?>
95
- <i class="fa fa-question supsystic-tooltip" title="<?php echo esc_html(__('You can disable collecting all statistics at all. This is not recomended, but if you need this - you can do it.', PPS_LANG_CODE))?>"></i>
96
- </th>
97
- <td>
98
- <?php echo htmlPps::checkbox('params[tpl][dsbl_stats]', array(
99
- 'checked' => (isset($this->popup['params']['tpl']['dsbl_stats']) ? $this->popup['params']['tpl']['dsbl_stats'] : false),
100
- ))?>
101
- </td>
102
- </tr>
103
- </table>
88
  <?php } else { ?>
89
  <h4><?php printf(__('You have no statistics for "%s" PopUp for now. Setup its options and wait until users will view it on your site.', PPS_LANG_CODE), $this->popup['label'])?></h4>
90
  <?php }?>
 
 
 
 
 
 
 
 
 
 
 
 
 
pps.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Popup by Supsystic
4
  * Plugin URI: https://supsystic.com/plugins/popup-plugin/
5
  * Description: The Best WordPress popup plugin to help you gain more subscribers, social followers or advertisement. Responsive popups with friendly options
6
- * Version: 1.9.1
7
  * Author: supsystic.com
8
  * Author URI: https://supsystic.com
9
  **/
3
  * Plugin Name: Popup by Supsystic
4
  * Plugin URI: https://supsystic.com/plugins/popup-plugin/
5
  * Description: The Best WordPress popup plugin to help you gain more subscribers, social followers or advertisement. Responsive popups with friendly options
6
+ * Version: 1.8.8
7
  * Author: supsystic.com
8
  * Author URI: https://supsystic.com
9
  **/
readme.txt CHANGED
@@ -1,46 +1,46 @@
1
  === Popup by Supsystic ===
2
  Contributors: supsystic.com
3
- Donate link: https://supsystic.com/plugins/popup-plugin
4
  Tags: popup, full screen popup, html popup, wordpress popup, popup contact form, popup builder, modal popup, video popup, youtube popup, social popup, facebook popup, christmas
5
- Tested up to: 4.7.3
6
- Stable tag: 1.9.1
7
 
8
  Popup by Supsystic the best way to convert visitors into subscribers, followers & customers. Create any type of popup with preset popup builder templates
9
 
10
  == Description ==
11
 
12
- [Popup by Supsystic](https://supsystic.com/plugins/popup-plugin?utm_source=wordpress&utm_medium=description&utm_campaign=popup "Popup WordPress Plugin") get more newsletter subscribers, promote new products, deliver special offers anf get more social followers.
13
 
14
  = Christmas special popup templates pack! =
15
 
16
- Grab visitors attention with Christmas templates. The highest conversion with positive amotions. More about [Christmas popup templates](https://supsystic.com/blog/christmas-popup-templates-pack "Christmas popup templates").
17
 
18
  Popup types:
19
 
20
- * [Subscription / Mail List Building](https://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_127 "Mail List Building Popup")
21
- * [Contact Form](https://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_206 "Contact Form Popup")
22
- * [Facebook](https://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_104 "Facebook Popup")
23
- * [Video](https://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_103 "Video Popup")
24
- * [Social Buttons](https://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_186 "Social Buttons Popup")
25
- * [Full Screen](https://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_157 "Full Screen Popup")
26
- * [HTML](https://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_208 "HTML Popup")
27
- * [Notification Bar](https://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_157 "Notification Bar")
28
- * [Age Verivication](https://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_158 "Age Verification Popup")
29
 
30
  = Main Features =
31
 
32
- * 30+ Mobile-ready [Popup Templates](https://supsystic.com/popup-examples/ "WordPress Plugin Popup Templates")
33
- * [Popup Placement](https://supsystic.com/popup-placement/ "Popup Placement"). Modal Popup, Fullscreen Popup, Info Bar, Fly-in, Slide In Popup
34
- * [Popup Triggers](https://supsystic.com/displaying-popup-configuration/ "Popup Triggers"). When to show / close popup, whom to show, show on next pages, time to display
35
  * Different Popup types. Subscriptions, Contact Form, YouTube Popup, Google Maps, Full Screen, Image Popup, Login/Registration, Age Verification
36
 
37
  = More Popup Options =
38
 
39
- * [Optin, Social and Link Locks](https://supsystic.com/lock-content/ "Content Lock")
40
  * Subscription Services Integration (WordPress, MailChimp, Aweber and more)
41
- * [A/B Split Tests](https://supsystic.com/what-is-ab-testing/ "A / B Split Test")
42
- * [Real Time Statistic](https://supsystic.com/statistics/ "Real Time Popup Statistic")
43
- * [20+ Popup Opening Animations](https://supsystic.com/popup-opening-animations/ "Popup Openin Animation")
44
 
45
  = Popup Builder =
46
 
@@ -54,7 +54,7 @@ In order to make visitors feel comfortable with popup on the site, in our Popup
54
 
55
  = Layered Popup Style =
56
 
57
- Lots of first time popup users think where to place popup or at least how to place popuping popup as they want, because everybody understand that popup must be both gentle and appropriate. New technologies of popup builders and methodologies of popup masters inspired us to provide [Layered PopUp Style]( https://supsystic.com/popup-placement/
58
  "Layered PopUp Style").
59
 
60
  You can find this popup option following the pass: Popup plugin> Create new popup> Design> Popup Location. Here you see gratified Popup Layout with name of the site places for popup to appear.
@@ -100,7 +100,7 @@ Locking content with popup builder can be also successfully practised for shops
100
 
101
  = Popup Plugin Support =
102
 
103
- Popup Customers Support is the only one tool to help you survive in Popup Plugins World. [Contact us](https://supsystic.com/plugins/popup-plugin?utm_source=wordpress&utm_medium=contactus&utm_campaign=popup "Contact Us"), if your Popup Lifes come down or you need a Powerful Popup Advice from experienced Popup Backing Masters and your dreams come true!
104
 
105
  = Popup Translations =
106
 
@@ -181,11 +181,11 @@ To get more popup custom fields in new popup:
181
  * The default Popup fields (Name and Email) is stable. New Popup fields created independently in Popup – you can edit or delete in any moment.
182
 
183
  Save your New Popup changes to popup purchases.
184
- To know more detail of popup fields builder go [here](https://supsystic.com/subscribe-custom-fields-builder/ "here").
185
 
186
  = How to add Contact Form into Popup? =
187
 
188
- Supsystic [PopUp](https://supsystic.com/plugins/popup-plugin/ "PopUp") and [Contact Form](https://supsystic.com/plugins/contact-form-plugin/ "Contact Form") are lightly customizable. Beginners and Seniors will find advantages like user-friendly interface and a great number of functionality.
189
 
190
  Contact Form can be integrated in Popup by several clicks, while this popup builder mix will give you a great popuping result. With Popup plugin Contact Form will fascinate your eyes focus to make you rich popup site owner. Such Popup mutation can be inserted in anywhere on your site. Note, that all Popup functions of will be accessible in your Contact Form. It’s an ideal way for those clients who want to gather the emails of the users, but not popup subscribers.
191
 
@@ -224,9 +224,9 @@ Yes. Light compliant Popup plugin backup can close the Popup window, just set th
224
 
225
  == Screenshots ==
226
 
227
- 1. [Christmas popup templates pack](https://supsystic.com/blog/christmas-popup-templates-pack "Christmas popup templates")
228
 
229
- 2. Subscription popup templates. All [Popup Examples](https://supsystic.com/popup-examples?utm_source=wordpress&utm_medium=second_screenshot&utm_campaign=popup "Popup Examples")
230
 
231
  3. Facebook like popup
232
 
@@ -238,7 +238,7 @@ Yes. Light compliant Popup plugin backup can close the Popup window, just set th
238
 
239
  7. Social Buttons and contact form with popup
240
 
241
- 8. [Popup WordPress plugin](https://supsystic.com/plugins/popup-plugin?utm_source=wordpress&utm_medium=first_screenshot&utm_campaign=popup "Popup WordPress plugin")
242
 
243
  == Other Notes ==
244
 
@@ -279,25 +279,6 @@ Working with adult site content, sometimes is needed to be sure kids not watchin
279
 
280
  == Changelog ==
281
 
282
- = 1.9.1 / 11.04.2017
283
- * ActiveCampaign - fix Tags functionality
284
- * Minor issues fix
285
- * Code improvements
286
-
287
- = 1.9.0 / 23.03.2017
288
- * Possibility to show PopUp right near clicked element (or any other element on page)
289
- * Small code improvements
290
- * Access module improvements
291
- * Compatibility with other WordPress plugins, that modify/remove iCheck library
292
- * Compatibility with plugins/themes/WordPress setup when WP_USE_THEMES is not defined, or defined as "false"
293
-
294
- = 1.8.9 / 14.03.2017
295
- * Updated PHP Mailer library to latest version
296
- * Fix issues with some Facebook PopUp settings output
297
- * Possibility to disable PopUp Statistics
298
- * Fix possible issue with iframe without src in PopUp
299
- * Minor fix for SendGrid updated API integration
300
-
301
  = 1.8.8 / 21.02.2017
302
  * Featured plugins updated - added Membership plugin
303
  * Minor issues fix
@@ -352,7 +333,7 @@ Working with adult site content, sometimes is needed to be sure kids not watchin
352
  * Forgot Password link for Login PopUps functionality added
353
 
354
  = 1.8.2 / 29.11.2016 =
355
- * Added [Christmas popup templates pack](https://supsystic.com/blog/christmas-popup-templates-pack "Christmas popup templates")
356
  * Minor issues fix
357
 
358
  = 1.8.1 / 23.11.2016 =
@@ -800,7 +781,7 @@ Working with adult site content, sometimes is needed to be sure kids not watchin
800
  * Added new template "Girl"
801
  * Added Italian language
802
  * Fix of English language strings in the plugin code
803
- * Fix Custom Subscribe fields for Aweber - PRO https://supsystic.com/plugins/popup-plugin/
804
  * Fix Name field submit for MailChimp (added full value in submit request - with First Name and Last Name)
805
  * Correct translations for plugin Settings admin tab
806
  * Added hide for IPs list functionality
@@ -892,10 +873,10 @@ Working with adult site content, sometimes is needed to be sure kids not watchin
892
  * Fixed popup conflict with Twig autoloaded re-defining in other plugins or themes
893
  * Facebook PopUp - correct language detection
894
  * Correct displaying usual embed iframes with Google Maps in PopUp
895
- * PRO popup - added options: Close only after action, after time passed - https://supsystic.com/plugins/popup-plugin/
896
- * PRO popup - added options: Show at the bottom of the page, after Inactivity, after User Comment option, after Purchasing (Checkout) - https://supsystic.com/plugins/popup-plugin/
897
- * PRO popup - Possibility to subscribe with Facebook - https://supsystic.com/plugins/popup-plugin/
898
- * PRO popup - Possibility to set user role for plugin usage (not just admin) - https://supsystic.com/plugins/popup-plugin/
899
  * Some popup minor spelling issues fix
900
  * Core popup code improvements
901
 
@@ -939,7 +920,7 @@ Working with adult site content, sometimes is needed to be sure kids not watchin
939
  * Added popup link to documentation about usage code - HTML and CSS - editor
940
  * Correct popup process shortcode from any place (not only from post/page content) - sidebars, external themes/plugins, etc.
941
  * Minor fixes for base templates
942
- * PRO - On Exit functionality integration - https://supsystic.com/plugins/popup-plugin/
943
  * Fix issue - with multiple time showing when "On Click" mode is enabled and animation is added
944
  * Added usual posts to list where show or not popup
945
 
@@ -965,9 +946,9 @@ Working with adult site content, sometimes is needed to be sure kids not watchin
965
  * Main PopUp edit tabs sticky functionality - make it work with some standard notifications
966
  * Show PopUp label always on top of edit tabs on PopUp edit screen - more user-friendly
967
  * Option to show PopUp - after scroll window - right after scroll or with delay
968
- * Layered popup integration - https://supsystic.com/plugins/popup-plugin/
969
  * Additional popup modification for "Click On" show mode - to make sure it work with more content editor systems
970
- * A/B popup testing - tests should stay tests even after whole design change - fixed - https://supsystic.com/plugins/popup-plugin/
971
  * Admin popup list table - do not stick header line (call too much problems and don't need this)
972
  * Correct show popup on mobile devices - every size, every type
973
  * Fix sticky edit PopUp tabs scroll position
1
  === Popup by Supsystic ===
2
  Contributors: supsystic.com
3
+ Donate link: http://supsystic.com/plugins/popup-plugin
4
  Tags: popup, full screen popup, html popup, wordpress popup, popup contact form, popup builder, modal popup, video popup, youtube popup, social popup, facebook popup, christmas
5
+ Tested up to: 4.7.2
6
+ Stable tag: 1.8.8
7
 
8
  Popup by Supsystic the best way to convert visitors into subscribers, followers & customers. Create any type of popup with preset popup builder templates
9
 
10
  == Description ==
11
 
12
+ [Popup by Supsystic](http://supsystic.com/plugins/popup-plugin?utm_source=wordpress&utm_medium=description&utm_campaign=popup "Popup WordPress Plugin") get more newsletter subscribers, promote new products, deliver special offers anf get more social followers.
13
 
14
  = Christmas special popup templates pack! =
15
 
16
+ Grab visitors attention with Christmas templates. The highest conversion with positive amotions. More about [Christmas popup templates](http://supsystic.com/blog/christmas-popup-templates-pack "Christmas popup templates").
17
 
18
  Popup types:
19
 
20
+ * [Subscription / Mail List Building](http://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_127 "Mail List Building Popup")
21
+ * [Contact Form](http://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_206 "Contact Form Popup")
22
+ * [Facebook](http://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_104 "Facebook Popup")
23
+ * [Video](http://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_103 "Video Popup")
24
+ * [Social Buttons](http://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_186 "Social Buttons Popup")
25
+ * [Full Screen](http://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_157 "Full Screen Popup")
26
+ * [HTML](http://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_208 "HTML Popup")
27
+ * [Notification Bar](http://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_157 "Notification Bar")
28
+ * [Age Verivication](http://supsystic.com/plugins/popup-plugin/#ppsShowPopUp_158 "Age Verification Popup")
29
 
30
  = Main Features =
31
 
32
+ * 30+ Mobile-ready [Popup Templates](http://supsystic.com/popup-examples/ "WordPress Plugin Popup Templates")
33
+ * [Popup Placement](http://supsystic.com/popup-placement/ "Popup Placement"). Modal Popup, Fullscreen Popup, Info Bar, Fly-in, Slide In Popup
34
+ * [Popup Triggers](http://supsystic.com/displaying-popup-configuration/ "Popup Triggers"). When to show / close popup, whom to show, show on next pages, time to display
35
  * Different Popup types. Subscriptions, Contact Form, YouTube Popup, Google Maps, Full Screen, Image Popup, Login/Registration, Age Verification
36
 
37
  = More Popup Options =
38
 
39
+ * [Optin, Social and Link Locks](http://supsystic.com/lock-content/ "Content Lock")
40
  * Subscription Services Integration (WordPress, MailChimp, Aweber and more)
41
+ * [A/B Split Tests](http://supsystic.com/what-is-ab-testing/ "A / B Split Test")
42
+ * [Real Time Statistic](http://supsystic.com/statistics/ "Real Time Popup Statistic")
43
+ * [20+ Popup Opening Animations](http://supsystic.com/popup-opening-animations/ "Popup Openin Animation")
44
 
45
  = Popup Builder =
46
 
54
 
55
  = Layered Popup Style =
56
 
57
+ Lots of first time popup users think where to place popup or at least how to place popuping popup as they want, because everybody understand that popup must be both gentle and appropriate. New technologies of popup builders and methodologies of popup masters inspired us to provide [Layered PopUp Style]( http://supsystic.com/popup-placement/
58
  "Layered PopUp Style").
59
 
60
  You can find this popup option following the pass: Popup plugin> Create new popup> Design> Popup Location. Here you see gratified Popup Layout with name of the site places for popup to appear.
100
 
101
  = Popup Plugin Support =
102
 
103
+ Popup Customers Support is the only one tool to help you survive in Popup Plugins World. [Contact us](http://supsystic.com/plugins/popup-plugin?utm_source=wordpress&utm_medium=contactus&utm_campaign=popup "Contact Us"), if your Popup Lifes come down or you need a Powerful Popup Advice from experienced Popup Backing Masters and your dreams come true!
104
 
105
  = Popup Translations =
106
 
181
  * The default Popup fields (Name and Email) is stable. New Popup fields created independently in Popup – you can edit or delete in any moment.
182
 
183
  Save your New Popup changes to popup purchases.
184
+ To know more detail of popup fields builder go [here](http://supsystic.com/subscribe-custom-fields-builder/ "here").
185
 
186
  = How to add Contact Form into Popup? =
187
 
188
+ Supsystic [PopUp](http://http//supsystic.com/plugins/popup-plugin/ "PopUp") and [Contact Form](http://http//supsystic.com/plugins/contact-form-plugin/ "Contact Form") are lightly customizable. Beginners and Seniors will find advantages like user-friendly interface and a great number of functionality.
189
 
190
  Contact Form can be integrated in Popup by several clicks, while this popup builder mix will give you a great popuping result. With Popup plugin Contact Form will fascinate your eyes focus to make you rich popup site owner. Such Popup mutation can be inserted in anywhere on your site. Note, that all Popup functions of will be accessible in your Contact Form. It’s an ideal way for those clients who want to gather the emails of the users, but not popup subscribers.
191
 
224
 
225
  == Screenshots ==
226
 
227
+ 1. [Christmas popup templates pack](http://supsystic.com/blog/christmas-popup-templates-pack "Christmas popup templates")
228
 
229
+ 2. Subscription popup templates. All [Popup Examples](http://supsystic.com/popup-examples?utm_source=wordpress&utm_medium=second_screenshot&utm_campaign=popup "Popup Examples")
230
 
231
  3. Facebook like popup
232
 
238
 
239
  7. Social Buttons and contact form with popup
240
 
241
+ 8. [Popup WordPress plugin](http://supsystic.com/plugins/popup-plugin?utm_source=wordpress&utm_medium=first_screenshot&utm_campaign=popup "Popup WordPress plugin")
242
 
243
  == Other Notes ==
244
 
279
 
280
  == Changelog ==
281
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
282
  = 1.8.8 / 21.02.2017
283
  * Featured plugins updated - added Membership plugin
284
  * Minor issues fix
333
  * Forgot Password link for Login PopUps functionality added
334
 
335
  = 1.8.2 / 29.11.2016 =
336
+ * Added [Christmas popup templates pack](http://supsystic.com/blog/christmas-popup-templates-pack "Christmas popup templates")
337
  * Minor issues fix
338
 
339
  = 1.8.1 / 23.11.2016 =
781
  * Added new template "Girl"
782
  * Added Italian language
783
  * Fix of English language strings in the plugin code
784
+ * Fix Custom Subscribe fields for Aweber - PRO http://supsystic.com/plugins/popup-plugin/
785
  * Fix Name field submit for MailChimp (added full value in submit request - with First Name and Last Name)
786
  * Correct translations for plugin Settings admin tab
787
  * Added hide for IPs list functionality
873
  * Fixed popup conflict with Twig autoloaded re-defining in other plugins or themes
874
  * Facebook PopUp - correct language detection
875
  * Correct displaying usual embed iframes with Google Maps in PopUp
876
+ * PRO popup - added options: Close only after action, after time passed - http://supsystic.com/plugins/popup-plugin/
877
+ * PRO popup - added options: Show at the bottom of the page, after Inactivity, after User Comment option, after Purchasing (Checkout) - http://supsystic.com/plugins/popup-plugin/
878
+ * PRO popup - Possibility to subscribe with Facebook - http://supsystic.com/plugins/popup-plugin/
879
+ * PRO popup - Possibility to set user role for plugin usage (not just admin) - http://supsystic.com/plugins/popup-plugin/
880
  * Some popup minor spelling issues fix
881
  * Core popup code improvements
882
 
920
  * Added popup link to documentation about usage code - HTML and CSS - editor
921
  * Correct popup process shortcode from any place (not only from post/page content) - sidebars, external themes/plugins, etc.
922
  * Minor fixes for base templates
923
+ * PRO - On Exit functionality integration - http://supsystic.com/plugins/popup-plugin/
924
  * Fix issue - with multiple time showing when "On Click" mode is enabled and animation is added
925
  * Added usual posts to list where show or not popup
926
 
946
  * Main PopUp edit tabs sticky functionality - make it work with some standard notifications
947
  * Show PopUp label always on top of edit tabs on PopUp edit screen - more user-friendly
948
  * Option to show PopUp - after scroll window - right after scroll or with delay
949
+ * Layered popup integration - http://supsystic.com/plugins/popup-plugin/
950
  * Additional popup modification for "Click On" show mode - to make sure it work with more content editor systems
951
+ * A/B popup testing - tests should stay tests even after whole design change - fixed - http://supsystic.com/plugins/popup-plugin/
952
  * Admin popup list table - do not stick header line (call too much problems and don't need this)
953
  * Correct show popup on mobile devices - every size, every type
954
  * Fix sticky edit PopUp tabs scroll position