Popup Builder – Responsive WordPress Pop up - Version 4.0.6

Version Description

Download this release

Release Info

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

Code changes from version 4.0.5 to 4.0.6

com/classes/Actions.php CHANGED
@@ -70,7 +70,6 @@ class Actions
70
  }
71
 
72
  private function checkIfLicenseIsActive($license, $itemId, $storeURL, $key) {
73
- /* TODO change the domain to a valid domain name! from store url before the production */
74
  $transient = 'sgpb-license-key-'.$key.'-requested';
75
  if ( false !== ( $value = get_transient( $transient ) ) ) {
76
  return;
70
  }
71
 
72
  private function checkIfLicenseIsActive($license, $itemId, $storeURL, $key) {
 
73
  $transient = 'sgpb-license-key-'.$key.'-requested';
74
  if ( false !== ( $value = get_transient( $transient ) ) ) {
75
  return;
com/config/config.php CHANGED
@@ -18,41 +18,41 @@ class SgpbPopupConfig
18
  self::addDefine('SGPB_POPUP_PKG_SILVER', 2);
19
  self::addDefine('SGPB_POPUP_PKG_GOLD', 3);
20
  self::addDefine('SGPB_POPUP_PKG_PLATINUM', 4);
21
- self::addDefine('SG_POPUP_PRO_URL', 'https://popup-builder.com/#prices');
22
- self::addDefine('SG_POPUP_BUNDLE_URL', 'https://popup-builder.com/bundle/');
23
- self::addDefine('SG_POPUP_EXTENSIONS_URL', 'https://popup-builder.com/#extensions');
24
  self::addDefine('SG_POPUP_SUPPORT_URL', 'https://wordpress.org/support/plugin/popup-builder');
25
  self::addDefine('SG_POPUP_TICKET_URL', 'https://help.popup-builder.com');
26
  self::addDefine('SG_POPUP_RATE_US_URL', 'https://wordpress.org/support/plugin/popup-builder/reviews/');
27
- self::addDefine('SG_POPUP_IFRAME_URL', 'https://popup-builder.com/downloads/iframe/');
28
- self::addDefine('SG_POPUP_SCROLL_URL', 'https://popup-builder.com/downloads/scroll/');
29
- self::addDefine('SG_POPUP_AD_BLOCK_URL', 'https://popup-builder.com/downloads/adblock/');
30
- self::addDefine('SG_POPUP_ANALYTICS_URL', 'https://popup-builder.com/downloads/analytics/');
31
- self::addDefine('SG_POPUP_EXIT_INTENT_URL', 'https://popup-builder.com/downloads/exit-intent/');
32
- self::addDefine('SG_POPUP_MAILCHIMP_URL', 'https://popup-builder.com/downloads/mailchimp/');
33
- self::addDefine('SG_POPUP_AWEBER_URL', 'https://popup-builder.com/downloads/aweber/');
34
- self::addDefine('SG_POPUP_WOOCOMMERCE_URL', 'https://popup-builder.com/downloads/woocommerce/');
35
- self::addDefine('SG_POPUP_RECENT_SALES_URL', 'https://popup-builder.com/downloads/recent-sales/');
36
- self::addDefine('SG_POPUP_VIDEO_URL', 'https://popup-builder.com/downloads/video/');
37
- self::addDefine('SG_POPUP_SOCIAL_URL', 'https://popup-builder.com/downloads/social/');
38
- self::addDefine('SG_POPUP_COUNTDOWN_URL', 'https://popup-builder.com/downloads/countdown/');
39
- self::addDefine('SG_POPUP_RESTRICTION_URL', 'https://popup-builder.com/downloads/yes-no-button-popup/');
40
- self::addDefine('SG_POPUP_CONTACT_FORM_URL', 'https://popup-builder.com/downloads/contact-popup/');
41
- self::addDefine('SG_POPUP_INACTIVITY_URL', 'https://popup-builder.com/downloads/inactivity/');
42
- self::addDefine('SG_POPUP_SCHEDULING_URL', 'https://popup-builder.com/downloads/scheduling/');
43
- self::addDefine('SG_POPUP_GEO_TARGETING_URL', 'https://popup-builder.com/downloads/geo-targeting/');
44
- self::addDefine('SG_POPUP_RANDOM_URL', 'https://popup-builder.com/downloads/random/');
45
- self::addDefine('SG_POPUP_ADVANCED_CLOSING_URL', 'https://popup-builder.com/downloads/advanced-closing/');
46
- self::addDefine('SG_POPUP_ADVANCED_TARGETING_URL', 'https://popup-builder.com/downloads/advanced-targeting/');
47
- self::addDefine('SG_POPUP_ALL_EXTENSIONS_URL', 'https://popup-builder.com/downloads/category/extensions/');
48
- self::addDefine('SG_POPUP_LOGIN_URL', 'https://popup-builder.com/downloads/login-popup/');
49
- self::addDefine('SG_POPUP_REGISTRATION_URL', 'https://popup-builder.com/downloads/registration-popup/');
50
- self::addDefine('SG_POPUP_SUBSCRIPTION_PLUS_URL', 'https://popup-builder.com/downloads/subscription-plus-popup/');
51
- self::addDefine('SG_POPUP_PUSH_NOTIFICATION_URL', 'https://popup-builder.com/downloads/web-push-notification-popup/');
52
- self::addDefine('SGPB_EDD_PLUGIN_URL', 'https://popup-builder.com/downloads/easy-digital-downloads-edd-popup/');
53
- self::addDefine('SGPB_PDF_PLUGIN_URL', 'https://popup-builder.com/downloads/pdf-popup/');
54
- self::addDefine('SGPB_GAMIFICATION_PLUGIN_URL', 'https://popup-builder.com/downloads/pick-a-gift-popup/');
55
- self::addDefine('SGPB_AGE_VERIFICATION_PLUGIN_URL', 'https://popup-builder.com/downloads/age-restriction-popup/');
56
  self::addDefine('SG_POPUP_ADMIN_URL', admin_url());
57
  self::addDefine('SG_POPUP_BUILDER_URL', plugins_url().'/'.SG_POPUP_FOLDER_NAME.'/');
58
  self::addDefine('SG_POPUP_PLUGIN_PATH', WP_PLUGIN_DIR.'/');
18
  self::addDefine('SGPB_POPUP_PKG_SILVER', 2);
19
  self::addDefine('SGPB_POPUP_PKG_GOLD', 3);
20
  self::addDefine('SGPB_POPUP_PKG_PLATINUM', 4);
21
+ self::addDefine('SG_POPUP_PRO_URL', 'https://popup-builder.com/pricing/');
22
+ self::addDefine('SG_POPUP_BUNDLE_URL', 'https://popup-builder.com/pricing/');
23
+ self::addDefine('SG_POPUP_EXTENSIONS_URL', 'https://popup-builder.com/extensions/');
24
  self::addDefine('SG_POPUP_SUPPORT_URL', 'https://wordpress.org/support/plugin/popup-builder');
25
  self::addDefine('SG_POPUP_TICKET_URL', 'https://help.popup-builder.com');
26
  self::addDefine('SG_POPUP_RATE_US_URL', 'https://wordpress.org/support/plugin/popup-builder/reviews/');
27
+ self::addDefine('SG_POPUP_IFRAME_URL', 'https://popup-builder.com/product/iframe-popup//');
28
+ self::addDefine('SG_POPUP_SCROLL_URL', 'https://popup-builder.com/product/scroll-triggered-popup/');
29
+ self::addDefine('SG_POPUP_AD_BLOCK_URL', 'https://popup-builder.com/product/ad-block/');
30
+ self::addDefine('SG_POPUP_ANALYTICS_URL', 'https://popup-builder.com/product/analytics/');
31
+ self::addDefine('SG_POPUP_EXIT_INTENT_URL', 'https://popup-builder.com/product/exit-intent/');
32
+ self::addDefine('SG_POPUP_MAILCHIMP_URL', 'https://popup-builder.com/product/mailchimp-popup/');
33
+ self::addDefine('SG_POPUP_AWEBER_URL', 'https://popup-builder.com/product/aweber-popup/');
34
+ self::addDefine('SG_POPUP_WOOCOMMERCE_URL', 'https://popup-builder.com/product/woocommerce/');
35
+ self::addDefine('SG_POPUP_RECENT_SALES_URL', 'https://popup-builder.com/product/recent-sales/');
36
+ self::addDefine('SG_POPUP_VIDEO_URL', 'https://popup-builder.com/product/video-popup/');
37
+ self::addDefine('SG_POPUP_SOCIAL_URL', 'https://popup-builder.com/product/social-popup/');
38
+ self::addDefine('SG_POPUP_COUNTDOWN_URL', 'https://popup-builder.com/product/countdown-popup/');
39
+ self::addDefine('SG_POPUP_RESTRICTION_URL', 'https://popup-builder.com/product/yes-no-button-popup/');
40
+ self::addDefine('SG_POPUP_CONTACT_FORM_URL', 'https://popup-builder.com/product/contact-form-popup/');
41
+ self::addDefine('SG_POPUP_INACTIVITY_URL', 'https://popup-builder.com/product/inactivity-event/');
42
+ self::addDefine('SG_POPUP_SCHEDULING_URL', 'https://popup-builder.com/product/scheduling/');
43
+ self::addDefine('SG_POPUP_GEO_TARGETING_URL', 'https://popup-builder.com/product/geo-targeting/');
44
+ self::addDefine('SG_POPUP_RANDOM_URL', 'https://popup-builder.com/product/random-popup/');
45
+ self::addDefine('SG_POPUP_ADVANCED_CLOSING_URL', 'https://popup-builder.com/product/advanced-closing/');
46
+ self::addDefine('SG_POPUP_ADVANCED_TARGETING_URL', 'https://popup-builder.com/product/advanced-targeting/');
47
+ self::addDefine('SG_POPUP_ALL_EXTENSIONS_URL', 'https://popup-builder.com/extensions/');
48
+ self::addDefine('SG_POPUP_LOGIN_URL', 'https://popup-builder.com/product/login-popup/');
49
+ self::addDefine('SG_POPUP_REGISTRATION_URL', 'https://popup-builder.com/product/registration-popup/');
50
+ self::addDefine('SG_POPUP_SUBSCRIPTION_PLUS_URL', 'https://popup-builder.com/product/subscription-plus-popup/');
51
+ self::addDefine('SG_POPUP_PUSH_NOTIFICATION_URL', 'https://popup-builder.com/product/web-push-notification-popup/');
52
+ self::addDefine('SGPB_EDD_PLUGIN_URL', 'https://popup-builder.com/product/easy-digital-download-edd-popup/');
53
+ self::addDefine('SGPB_PDF_PLUGIN_URL', 'https://popup-builder.com/product/pdf-popup/');
54
+ self::addDefine('SGPB_GAMIFICATION_PLUGIN_URL', 'https://popup-builder.com/product/gamification-popup-pick-a-gift-popup/');
55
+ self::addDefine('SGPB_AGE_VERIFICATION_PLUGIN_URL', 'https://popup-builder.com/product/age-restriction-popup/');
56
  self::addDefine('SG_POPUP_ADMIN_URL', admin_url());
57
  self::addDefine('SG_POPUP_BUILDER_URL', plugins_url().'/'.SG_POPUP_FOLDER_NAME.'/');
58
  self::addDefine('SG_POPUP_PLUGIN_PATH', WP_PLUGIN_DIR.'/');
com/config/configPackage.php CHANGED
@@ -3,6 +3,6 @@ if (!defined('ABSPATH')) {
3
  exit();
4
  }
5
 
6
- define('SG_POPUP_VERSION', '4.0.5');
7
  define('SGPB_POPUP_PKG', SGPB_POPUP_PKG_FREE);
8
  define('POPUP_BUILDER_BASENAME', 'popupbuilder-platinum/popup-builder.php');
3
  exit();
4
  }
5
 
6
+ define('SG_POPUP_VERSION', '4.0.6');
7
  define('SGPB_POPUP_PKG', SGPB_POPUP_PKG_FREE);
8
  define('POPUP_BUILDER_BASENAME', 'popupbuilder-platinum/popup-builder.php');
com/libs/EDD_SL_Plugin_Updater.php DELETED
@@ -1,372 +0,0 @@
1
- <?php
2
- namespace sgpb;
3
-
4
- // Exit if accessed directly
5
- if ( ! defined( 'ABSPATH' ) ) exit;
6
- /**
7
- * Allows plugins to use their own update API.
8
- * Note: This updater is not used for Community/Hosted version of the plugin.
9
- * This class is included in addons to have an update system in a single file rather than including it in each extension.
10
- * @author Easy Digital Downloads
11
- * @version 1.6.14
12
- */
13
- class EDD_SL_Plugin_Updater {
14
- private $api_url = '';
15
- private $api_data = array();
16
- private $name = '';
17
- private $slug = '';
18
- private $version = '';
19
- private $wp_override = false;
20
- private $cache_key = '';
21
- /**
22
- * Class constructor.
23
- *
24
- * @uses plugin_basename()
25
- * @uses hook()
26
- *
27
- * @param string $_api_url The URL pointing to the custom API endpoint.
28
- * @param string $_plugin_file Path to the plugin file.
29
- * @param array $_api_data Optional data to send with API calls.
30
- */
31
- public function __construct( $_api_url, $_plugin_file, $_api_data = null ) {
32
- global $edd_plugin_data;
33
- $this->api_url = trailingslashit( $_api_url );
34
- $this->api_data = $_api_data;
35
- $this->name = plugin_basename( $_plugin_file );
36
- $this->slug = basename( $_plugin_file, '.php' );
37
- $this->version = $_api_data['version'];
38
- $this->wp_override = isset( $_api_data['wp_override'] ) ? (bool) $_api_data['wp_override'] : false;
39
- $this->beta = ! empty( $this->api_data['beta'] ) ? true : false;
40
- $this->cache_key = md5( serialize( $this->slug . $this->api_data['license'] . $this->beta ) );
41
- $edd_plugin_data[ $this->slug ] = $this->api_data;
42
- // Set up hooks.
43
- $this->init();
44
- }
45
- /**
46
- * Set up WordPress filters to hook into WP's update process.
47
- *
48
- * @uses add_filter()
49
- *
50
- * @return void
51
- */
52
- public function init() {
53
- add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) );
54
- add_filter( 'plugins_api', array( $this, 'plugins_api_filter' ), 10, 3 );
55
- remove_action( 'after_plugin_row_' . $this->name, 'wp_plugin_update_row', 10 );
56
- add_action( 'after_plugin_row_' . $this->name, array( $this, 'show_update_notification' ), 10, 2 );
57
- add_action( 'admin_init', array( $this, 'show_changelog' ) );
58
- }
59
- /**
60
- * Check for Updates at the defined API endpoint and modify the update array.
61
- *
62
- * This function dives into the update API just when WordPress creates its update array,
63
- * then adds a custom API call and injects the custom plugin data retrieved from the API.
64
- * It is reassembled from parts of the native WordPress plugin update code.
65
- * See wp-includes/update.php line 121 for the original wp_update_plugins() function.
66
- *
67
- * @uses api_request()
68
- *
69
- * @param array $_transient_data Update array build by WordPress.
70
- * @return array Modified update array with custom plugin data.
71
- */
72
- public function check_update( $_transient_data ) {
73
- global $pagenow;
74
- if ( ! is_object( $_transient_data ) ) {
75
- $_transient_data = new \stdClass;
76
- }
77
- if ( 'plugins.php' == $pagenow && is_multisite() ) {
78
- return $_transient_data;
79
- }
80
- if ( ! empty( $_transient_data->response ) && ! empty( $_transient_data->response[ $this->name ] ) && false === $this->wp_override ) {
81
- return $_transient_data;
82
- }
83
- $version_info = $this->get_cached_version_info();
84
- if ( false === $version_info ) {
85
- $version_info = $this->api_request( 'plugin_latest_version', array( 'slug' => $this->slug, 'beta' => $this->beta ) );
86
- $this->set_version_info_cache( $version_info );
87
- }
88
- if ( false !== $version_info && is_object( $version_info ) && isset( $version_info->new_version ) ) {
89
- if ( version_compare( $this->version, $version_info->new_version, '<' ) ) {
90
- $_transient_data->response[ $this->name ] = $version_info;
91
- }
92
- $_transient_data->last_checked = current_time( 'timestamp' );
93
- $_transient_data->checked[ $this->name ] = $this->version;
94
- }
95
- return $_transient_data;
96
- }
97
- /**
98
- * show update nofication row -- needed for multisite subsites, because WP won't tell you otherwise!
99
- *
100
- * @param string $file
101
- * @param array $plugin
102
- */
103
- public function show_update_notification( $file, $plugin ) {
104
- if ( is_network_admin() ) {
105
- return;
106
- }
107
- if( ! current_user_can( 'update_plugins' ) ) {
108
- return;
109
- }
110
- if( ! is_multisite() ) {
111
- return;
112
- }
113
- if ( $this->name != $file ) {
114
- return;
115
- }
116
- // Remove our filter on the site transient
117
- remove_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ), 10 );
118
- $update_cache = get_site_transient( 'update_plugins' );
119
- $update_cache = is_object( $update_cache ) ? $update_cache : new \stdClass();
120
- if ( empty( $update_cache->response ) || empty( $update_cache->response[ $this->name ] ) ) {
121
- $version_info = $this->get_cached_version_info();
122
- if ( false === $version_info ) {
123
- $version_info = $this->api_request( 'plugin_latest_version', array( 'slug' => $this->slug, 'beta' => $this->beta ) );
124
- $this->set_version_info_cache( $version_info );
125
- }
126
- if ( ! is_object( $version_info ) ) {
127
- return;
128
- }
129
- if ( version_compare( $this->version, $version_info->new_version, '<' ) ) {
130
- $update_cache->response[ $this->name ] = $version_info;
131
- }
132
- $update_cache->last_checked = current_time( 'timestamp' );
133
- $update_cache->checked[ $this->name ] = $this->version;
134
- set_site_transient( 'update_plugins', $update_cache );
135
- } else {
136
- $version_info = $update_cache->response[ $this->name ];
137
- }
138
- // Restore our filter
139
- add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) );
140
- if ( ! empty( $update_cache->response[ $this->name ] ) && version_compare( $this->version, $version_info->new_version, '<' ) ) {
141
- // build a plugin list row, with update notification
142
- $wp_list_table = _get_list_table( 'WP_Plugins_List_Table' );
143
- # <tr class="plugin-update-tr"><td colspan="' . $wp_list_table->get_column_count() . '" class="plugin-update colspanchange">
144
- echo '<tr class="plugin-update-tr" id="' . $this->slug . '-update" data-slug="' . $this->slug . '" data-plugin="' . $this->slug . '/' . $file . '">';
145
- echo '<td colspan="3" class="plugin-update colspanchange">';
146
- echo '<div class="update-message notice inline notice-warning notice-alt">';
147
- $changelog_link = self_admin_url( 'index.php?edd_sl_action=view_plugin_changelog&plugin=' . $this->name . '&slug=' . $this->slug . '&TB_iframe=true&width=772&height=911' );
148
- if ( empty( $version_info->download_link ) ) {
149
- printf(
150
- __( 'There is a new version of %1$s available. %2$sView version %3$s details%4$s.', 'easy-digital-downloads' ),
151
- esc_html( $version_info->name ),
152
- '<a target="_blank" class="thickbox" href="' . esc_url( $changelog_link ) . '">',
153
- esc_html( $version_info->new_version ),
154
- '</a>'
155
- );
156
- } else {
157
- printf(
158
- __( 'There is a new version of %1$s available. %2$sView version %3$s details%4$s or %5$supdate now%6$s.', 'easy-digital-downloads' ),
159
- esc_html( $version_info->name ),
160
- '<a target="_blank" class="thickbox" href="' . esc_url( $changelog_link ) . '">',
161
- esc_html( $version_info->new_version ),
162
- '</a>',
163
- '<a href="' . esc_url( wp_nonce_url( self_admin_url( 'update.php?action=upgrade-plugin&plugin=' ) . $this->name, 'upgrade-plugin_' . $this->name ) ) .'">',
164
- '</a>'
165
- );
166
- }
167
- do_action( "in_plugin_update_message-{$file}", $plugin, $version_info );
168
- echo '</div></td></tr>';
169
- }
170
- }
171
- /**
172
- * Updates information on the "View version x.x details" page with custom data.
173
- *
174
- * @uses api_request()
175
- *
176
- * @param mixed $_data
177
- * @param string $_action
178
- * @param object $_args
179
- * @return object $_data
180
- */
181
- public function plugins_api_filter( $_data, $_action = '', $_args = null ) {
182
- if ( $_action != 'plugin_information' ) {
183
- return $_data;
184
- }
185
- if ( ! isset( $_args->slug ) || ( $_args->slug != $this->slug ) ) {
186
- return $_data;
187
- }
188
- $to_send = array(
189
- 'slug' => $this->slug,
190
- 'is_ssl' => is_ssl(),
191
- 'fields' => array(
192
- 'banners' => array(),
193
- 'reviews' => false
194
- )
195
- );
196
- $cache_key = 'edd_api_request_' . md5( serialize( $this->slug . $this->api_data['license'] . $this->beta ) );
197
- // Get the transient where we store the api request for this plugin for 24 hours
198
- $edd_api_request_transient = $this->get_cached_version_info( $cache_key );
199
- //If we have no transient-saved value, run the API, set a fresh transient with the API value, and return that value too right now.
200
- if ( empty( $edd_api_request_transient ) ) {
201
- $api_response = $this->api_request( 'plugin_information', $to_send );
202
- // Expires in 3 hours
203
- $this->set_version_info_cache( $api_response, $cache_key );
204
- if ( false !== $api_response ) {
205
- $_data = $api_response;
206
- }
207
- } else {
208
- $_data = $edd_api_request_transient;
209
- }
210
- // Convert sections into an associative array, since we're getting an object, but Core expects an array.
211
- if ( isset( $_data->sections ) && ! is_array( $_data->sections ) ) {
212
- $new_sections = array();
213
- foreach ( $_data->sections as $key => $value ) {
214
- $new_sections[ $key ] = $value;
215
- }
216
- $_data->sections = $new_sections;
217
- }
218
- // Convert banners into an associative array, since we're getting an object, but Core expects an array.
219
- if ( isset( $_data->banners ) && ! is_array( $_data->banners ) ) {
220
- $new_banners = array();
221
- foreach ( $_data->banners as $key => $value ) {
222
- $new_banners[ $key ] = $value;
223
- }
224
- $_data->banners = $new_banners;
225
- }
226
- return $_data;
227
- }
228
- /**
229
- * Disable SSL verification in order to prevent download update failures
230
- *
231
- * @param array $args
232
- * @param string $url
233
- * @return object $array
234
- */
235
- public function http_request_args( $args, $url ) {
236
- $verify_ssl = $this->verify_ssl();
237
- if ( strpos( $url, 'https://' ) !== false && strpos( $url, 'edd_action=package_download' ) ) {
238
- $args['sslverify'] = $verify_ssl;
239
- }
240
- return $args;
241
- }
242
- /**
243
- * Calls the API and, if successfull, returns the object delivered by the API.
244
- *
245
- * @uses get_bloginfo()
246
- * @uses wp_remote_post()
247
- * @uses is_wp_error()
248
- *
249
- * @param string $_action The requested action.
250
- * @param array $_data Parameters for the API action.
251
- * @return false|object
252
- */
253
- private function api_request( $_action, $_data ) {
254
- global $wp_version;
255
- $data = array_merge( $this->api_data, $_data );
256
- if ( $data['slug'] != $this->slug ) {
257
- return;
258
- }
259
- if( $this->api_url == trailingslashit (home_url() ) ) {
260
- return false; // Don't allow a plugin to ping itself
261
- }
262
- $api_params = array(
263
- 'edd_action' => 'get_version',
264
- 'license' => ! empty( $data['license'] ) ? $data['license'] : '',
265
- 'item_name' => isset( $data['item_name'] ) ? $data['item_name'] : false,
266
- 'item_id' => isset( $data['item_id'] ) ? $data['item_id'] : false,
267
- 'version' => isset( $data['version'] ) ? $data['version'] : false,
268
- 'slug' => $data['slug'],
269
- 'author' => $data['author'],
270
- 'url' => home_url(),
271
- 'beta' => ! empty( $data['beta'] ),
272
- );
273
- $verify_ssl = $this->verify_ssl();
274
- $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => $verify_ssl, 'body' => $api_params ) );
275
- if ( ! is_wp_error( $request ) ) {
276
- $request = json_decode( wp_remote_retrieve_body( $request ) );
277
- }
278
- if ( $request && isset( $request->sections ) ) {
279
- $request->sections = maybe_unserialize( $request->sections );
280
- } else {
281
- $request = false;
282
- }
283
- if ( $request && isset( $request->banners ) ) {
284
- $request->banners = maybe_unserialize( $request->banners );
285
- }
286
- if( ! empty( $request->sections ) ) {
287
- foreach( $request->sections as $key => $section ) {
288
- $request->$key = (array) $section;
289
- }
290
- }
291
- return $request;
292
- }
293
- public function show_changelog() {
294
- global $edd_plugin_data;
295
- if( empty( $_REQUEST['edd_sl_action'] ) || 'view_plugin_changelog' != $_REQUEST['edd_sl_action'] ) {
296
- return;
297
- }
298
- if( empty( $_REQUEST['plugin'] ) ) {
299
- return;
300
- }
301
- if( empty( $_REQUEST['slug'] ) ) {
302
- return;
303
- }
304
- if( ! current_user_can( 'update_plugins' ) ) {
305
- wp_die( __( 'You do not have permission to install plugin updates', 'easy-digital-downloads' ), __( 'Error', 'easy-digital-downloads' ), array( 'response' => 403 ) );
306
- }
307
- $data = $edd_plugin_data[ $_REQUEST['slug'] ];
308
- $beta = ! empty( $data['beta'] ) ? true : false;
309
- $cache_key = md5( 'edd_plugin_' . sanitize_key( $_REQUEST['plugin'] ) . '_' . $beta . '_version_info' );
310
- $version_info = $this->get_cached_version_info( $cache_key );
311
- if( false === $version_info ) {
312
- $api_params = array(
313
- 'edd_action' => 'get_version',
314
- 'item_name' => isset( $data['item_name'] ) ? $data['item_name'] : false,
315
- 'item_id' => isset( $data['item_id'] ) ? $data['item_id'] : false,
316
- 'slug' => $_REQUEST['slug'],
317
- 'author' => $data['author'],
318
- 'url' => home_url(),
319
- 'beta' => ! empty( $data['beta'] )
320
- );
321
- $verify_ssl = $this->verify_ssl();
322
- $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => $verify_ssl, 'body' => $api_params ) );
323
- if ( ! is_wp_error( $request ) ) {
324
- $version_info = json_decode( wp_remote_retrieve_body( $request ) );
325
- }
326
- if ( ! empty( $version_info ) && isset( $version_info->sections ) ) {
327
- $version_info->sections = maybe_unserialize( $version_info->sections );
328
- } else {
329
- $version_info = false;
330
- }
331
- if( ! empty( $version_info ) ) {
332
- foreach( $version_info->sections as $key => $section ) {
333
- $version_info->$key = (array) $section;
334
- }
335
- }
336
- $this->set_version_info_cache( $version_info, $cache_key );
337
- }
338
- if( ! empty( $version_info ) && isset( $version_info->sections['changelog'] ) ) {
339
- echo '<div style="background:#fff;padding:10px;">' . $version_info->sections['changelog'] . '</div>';
340
- }
341
- exit;
342
- }
343
- public function get_cached_version_info( $cache_key = '' ) {
344
- if( empty( $cache_key ) ) {
345
- $cache_key = $this->cache_key;
346
- }
347
- $cache = get_option( $cache_key );
348
- if( empty( $cache['timeout'] ) || current_time( 'timestamp' ) > $cache['timeout'] ) {
349
- return false; // Cache is expired
350
- }
351
- return json_decode( $cache['value'] );
352
- }
353
- public function set_version_info_cache( $value = '', $cache_key = '' ) {
354
- if( empty( $cache_key ) ) {
355
- $cache_key = $this->cache_key;
356
- }
357
- $data = array(
358
- 'timeout' => strtotime( '+3 hours', current_time( 'timestamp' ) ),
359
- 'value' => json_encode( $value )
360
- );
361
- update_option( $cache_key, $data, 'no' );
362
- }
363
- /**
364
- * Returns if the SSL of the store should be verified.
365
- *
366
- * @since 1.6.13
367
- * @return bool
368
- */
369
- private function verify_ssl() {
370
- return (bool) apply_filters( 'edd_sl_api_request_verify_ssl', true, $this );
371
- }
372
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
popup-builder.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Popup Builder
4
  * Plugin URI: https://popup-builder.com
5
  * Description: The most complete popup plugin. Html, image, iframe, shortcode, video and many other popup types. Manage popup dimensions, effects, themes and more.
6
- * Version: 4.0.5
7
  * Author: Sygnoos
8
  * Author URI: https://sygnoos.com
9
  * License: GPLv2
3
  * Plugin Name: Popup Builder
4
  * Plugin URI: https://popup-builder.com
5
  * Description: The most complete popup plugin. Html, image, iframe, shortcode, video and many other popup types. Manage popup dimensions, effects, themes and more.
6
+ * Version: 4.0.6
7
  * Author: Sygnoos
8
  * Author URI: https://sygnoos.com
9
  * License: GPLv2
public/views/emailTemplates/takeReviewAfterSubscribe.html CHANGED
@@ -183,7 +183,7 @@
183
  <td align="center" class="esd-empty-container">
184
  <p>
185
  If you want to get this kind of notifications from now, please get our new
186
- <a target="_blank" href="https://popup-builder.com/downloads/subscription-plus-popup/">Subscription Plus extension</a>.
187
  </p>
188
  </td>
189
  </tr>
183
  <td align="center" class="esd-empty-container">
184
  <p>
185
  If you want to get this kind of notifications from now, please get our new
186
+ <a target="_blank" href="https://popup-builder.com/product/subscription-plus-popup/">Subscription Plus extension</a>.
187
  </p>
188
  </td>
189
  </tr>
readme.txt CHANGED
@@ -8,7 +8,7 @@ Tags: popup, pop up, wordpress popup, popup maker, exit popup, popup builder, wo
8
  Requires at least: 4.2
9
  Tested up to: 5.8
10
  Requires PHP: 5.3.3
11
- Stable tag: 4.0.5
12
  License: GPLv2 or later
13
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
14
 
@@ -145,6 +145,9 @@ Go to the Popup Builder settings and set your desired options.
145
 
146
  == Changelog ==
147
 
 
 
 
148
  = Version 4.0.5 =
149
  * Bug fixes and improvements
150
 
8
  Requires at least: 4.2
9
  Tested up to: 5.8
10
  Requires PHP: 5.3.3
11
+ Stable tag: 4.0.6
12
  License: GPLv2 or later
13
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
14
 
145
 
146
  == Changelog ==
147
 
148
+ = Version 4.0.6 =
149
+ * Bug fixed related to our products' url
150
+
151
  = Version 4.0.5 =
152
  * Bug fixes and improvements
153