Advanced AJAX Product Filters - Version 1.2.4

Version Description

  • Upgrade - WordPress 4.9 compatibility
Download this release

Release Info

Developer dholovnia
Plugin Icon wp plugin Advanced AJAX Product Filters
Version 1.2.4
Comparing to
See all releases

Code changes from version 1.2.3 to 1.2.4

contributors.txt ADDED
@@ -0,0 +1 @@
 
1
+ BeRocket
images/60p_sale.jpg ADDED
Binary file
images/70p_sale.jpg DELETED
Binary file
includes/admin_notices.php CHANGED
@@ -140,6 +140,7 @@ if( ! class_exists( 'berocket_admin_notices' ) ) {
140
  if( ! is_array($notices) ) {
141
  $notices = array();
142
  }
 
143
  $current_notice = &$notices;
144
  foreach($find_names as $find_name) {
145
  if( ! isset($current_notice[$find_name]) ) {
@@ -154,6 +155,7 @@ if( ! class_exists( 'berocket_admin_notices' ) ) {
154
  if( isset($array_diff['image']) ) {
155
  unset($array_diff['image']);
156
  }
 
157
  if( count($array_diff) == 0 ) {
158
  return true;
159
  }
@@ -290,8 +292,7 @@ if( ! class_exists( 'berocket_admin_notices' ) ) {
290
  }
291
  return $notice;
292
  }
293
- public static function get_notices_with_priority($array, $priority = 5, $count = 3) {
294
- $notice = false;
295
  if( empty($array) || ! is_array($array) ) {
296
  $array = array();
297
  }
@@ -306,10 +307,13 @@ if( ! class_exists( 'berocket_admin_notices' ) ) {
306
  $notices = array_merge($notices, $notice);
307
  } else {
308
  if( ! self::$subscribed || ! $item['subscribe'] ) {
309
- $notices[] = $item;
 
 
310
  }
311
  }
312
  }
 
313
  return $notices;
314
  }
315
  public static function display_admin_notice() {
@@ -324,7 +328,7 @@ if( ! class_exists( 'berocket_admin_notices' ) ) {
324
  unset($original_notice['start'], $original_notice['closed'], $original_notice['repeatcount']);
325
  $notice = $original_notice;
326
  }
327
-
328
  if( $notice !== false ) {
329
  self::echo_notice($notice);
330
  }
@@ -361,7 +365,7 @@ if( ! class_exists( 'berocket_admin_notices' ) ) {
361
  $time = $time%60;
362
  $time_left_str .= sprintf("%02d", $minutes) . ":";
363
  }
364
-
365
  $time_left_str .= sprintf("%02d", $time);
366
  $notice['rightwidth'] += 60;
367
  $notice['righthtml'] .= '<div class="berocket_time_left_block">Left<br><span class="berocket_time_left" data-time="' . $time_left . '">' . $time_left_str . '</span></div>';
@@ -393,7 +397,7 @@ if( ! class_exists( 'berocket_admin_notices' ) ) {
393
  <div class="berocket_notice_content">', $notice['html'], '</div>
394
  <div class="berocket_notice_after_content"></div>
395
  </div></div>';
396
- if( $settings_page ) {
397
  $notice['rightwidth'] -= $notice['nothankswidth'];
398
  }
399
  echo '<style>
@@ -419,6 +423,9 @@ if( ! class_exists( 'berocket_admin_notices' ) ) {
419
  overflow: auto;
420
  overflow-x: hidden;
421
  overflow-y: auto;
 
 
 
422
  }
423
  .berocket_admin_notice.berocket_admin_notice_', self::$notice_index, ' .berocket_notice_right_content {',
424
  ( $notice['rightwidth'] <= 20 ? ' display: none' :
@@ -430,7 +437,7 @@ if( ! class_exists( 'berocket_admin_notices' ) ) {
430
  padding-left: 10px;' ),
431
  '}
432
  .berocket_admin_notice.berocket_admin_notice_', self::$notice_index, ' .berocket_no_thanks {',
433
- ( $settings_page ? 'display: none!important;' : 'cursor: pointer;
434
  color: #0073aa;
435
  opacity: 0.5;
436
  display: inline-block;' ),
@@ -477,7 +484,15 @@ if( ! class_exists( 'berocket_admin_notices' ) ) {
477
  background: #ff6e68 none repeat scroll 0 0;
478
  color: white;
479
  }' ), '
480
- @media screen and (max-width: ', ($notice['image']['width'] * $notice['image']['scale'] + $notice['rightwidth'] + $notice['contentwidth'] + 10), 'px) {
 
 
 
 
 
 
 
 
481
  div.berocket_admin_notice.berocket_admin_notice_', self::$notice_index, ' .berocket_notice_content_wrap {
482
  margin-left: 0;
483
  margin-right: 0;
@@ -493,6 +508,7 @@ if( ! class_exists( 'berocket_admin_notices' ) ) {
493
  div.berocket_admin_notice.berocket_admin_notice_', self::$notice_index, ' {
494
  height: initial;
495
  text-align: center;
 
496
  }
497
  .berocket_admin_notice.berocket_admin_notice_', self::$notice_index, ' .berocket_notice_img {
498
  float: none;
@@ -505,6 +521,7 @@ if( ! class_exists( 'berocket_admin_notices' ) ) {
505
  width: 100%;
506
  -webkit-box-shadow: none;
507
  box-shadow: none;
 
508
  }
509
  }
510
  </style>
@@ -557,7 +574,7 @@ if( ! class_exists( 'berocket_admin_notices' ) ) {
557
  .berocket_admin_notice .berocket_notice_content {
558
  display: inline-block;
559
  vertical-align: middle;
560
- padding: 5px;
561
  max-width: 99%;
562
  box-sizing: border-box;
563
  }
@@ -579,8 +596,7 @@ if( ! class_exists( 'berocket_admin_notices' ) ) {
579
  .berocket_notice_content .berocket_button {
580
  margin: 0 0 0 10px;
581
  min-width: 80px;
582
- padding: 6px;
583
- display: inline;
584
  vertical-align: baseline;
585
  color: #fff;
586
  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);
@@ -599,6 +615,8 @@ if( ! class_exists( 'berocket_admin_notices' ) ) {
599
  white-space: nowrap;
600
  height: auto;
601
  display: inline-block;
 
 
602
  }
603
  </style>';
604
  }
@@ -667,7 +685,7 @@ if( ! class_exists( 'berocket_admin_notices' ) ) {
667
  event.preventDefault();
668
  jQuery(this).parents(".berocket_subscribe_form").trigger("berocket_subscribe_send");
669
  });
670
-
671
  </script>';
672
  }
673
  }
@@ -715,7 +733,7 @@ if( ! class_exists( 'berocket_admin_notices' ) ) {
715
  update_option('berocket_email_subscribed', true);
716
  curl_setopt($ch, CURLOPT_URL,"http://berocket.com/main/subscribe");
717
  curl_setopt($ch, CURLOPT_POST, 1);
718
- curl_setopt($ch, CURLOPT_POSTFIELDS, "type_sub=freeplugin&subs_email=" . $_POST['email'] . "&plugins=" . $plugins);
719
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
720
  echo curl_exec ($ch);
721
  curl_close ($ch);
@@ -740,4 +758,30 @@ if( ! class_exists( 'berocket_admin_notices' ) ) {
740
  add_action( 'wp_ajax_berocket_admin_close_notice', array('berocket_admin_notices', 'close_notice') );
741
  add_action( 'wp_ajax_berocket_subscribe_email', array('berocket_admin_notices', 'subscribe') );
742
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
743
  ?>
140
  if( ! is_array($notices) ) {
141
  $notices = array();
142
  }
143
+
144
  $current_notice = &$notices;
145
  foreach($find_names as $find_name) {
146
  if( ! isset($current_notice[$find_name]) ) {
155
  if( isset($array_diff['image']) ) {
156
  unset($array_diff['image']);
157
  }
158
+
159
  if( count($array_diff) == 0 ) {
160
  return true;
161
  }
292
  }
293
  return $notice;
294
  }
295
+ public static function get_notices_with_priority($array, $priority = 19, $count = 3) {
 
296
  if( empty($array) || ! is_array($array) ) {
297
  $array = array();
298
  }
307
  $notices = array_merge($notices, $notice);
308
  } else {
309
  if( ! self::$subscribed || ! $item['subscribe'] ) {
310
+ if( $item['priority'] < 5 || ! $item['closed'] ) {
311
+ $notices[] = $item;
312
+ }
313
  }
314
  }
315
  }
316
+
317
  return $notices;
318
  }
319
  public static function display_admin_notice() {
328
  unset($original_notice['start'], $original_notice['closed'], $original_notice['repeatcount']);
329
  $notice = $original_notice;
330
  }
331
+
332
  if( $notice !== false ) {
333
  self::echo_notice($notice);
334
  }
365
  $time = $time%60;
366
  $time_left_str .= sprintf("%02d", $minutes) . ":";
367
  }
368
+
369
  $time_left_str .= sprintf("%02d", $time);
370
  $notice['rightwidth'] += 60;
371
  $notice['righthtml'] .= '<div class="berocket_time_left_block">Left<br><span class="berocket_time_left" data-time="' . $time_left . '">' . $time_left_str . '</span></div>';
397
  <div class="berocket_notice_content">', $notice['html'], '</div>
398
  <div class="berocket_notice_after_content"></div>
399
  </div></div>';
400
+ if( $settings_page && $notice['priority'] <= 5 ) {
401
  $notice['rightwidth'] -= $notice['nothankswidth'];
402
  }
403
  echo '<style>
423
  overflow: auto;
424
  overflow-x: hidden;
425
  overflow-y: auto;
426
+ font-size: 16px;
427
+ line-height: 1em;
428
+ text-align: center;
429
  }
430
  .berocket_admin_notice.berocket_admin_notice_', self::$notice_index, ' .berocket_notice_right_content {',
431
  ( $notice['rightwidth'] <= 20 ? ' display: none' :
437
  padding-left: 10px;' ),
438
  '}
439
  .berocket_admin_notice.berocket_admin_notice_', self::$notice_index, ' .berocket_no_thanks {',
440
+ ( $settings_page && $notice['priority'] <= 5 ? 'display: none!important;' : 'cursor: pointer;
441
  color: #0073aa;
442
  opacity: 0.5;
443
  display: inline-block;' ),
484
  background: #ff6e68 none repeat scroll 0 0;
485
  color: white;
486
  }' ), '
487
+ @media screen and (min-width: 783px) and (max-width: ', round($notice['image']['width'] * $notice['image']['scale'] + $notice['rightwidth'] + $notice['contentwidth'] + 10 + 200), 'px) {
488
+ div.berocket_admin_notice.berocket_admin_notice_', self::$notice_index, ' .berocket_notice_content_wrap {
489
+ font-size: 14px;
490
+ }
491
+ div.berocket_admin_notice.berocket_admin_notice_', self::$notice_index, ' .berocket_button {
492
+ padding: 4px 15px;
493
+ }
494
+ }
495
+ @media screen and (max-width: 782px) {
496
  div.berocket_admin_notice.berocket_admin_notice_', self::$notice_index, ' .berocket_notice_content_wrap {
497
  margin-left: 0;
498
  margin-right: 0;
508
  div.berocket_admin_notice.berocket_admin_notice_', self::$notice_index, ' {
509
  height: initial;
510
  text-align: center;
511
+ padding: 20px;
512
  }
513
  .berocket_admin_notice.berocket_admin_notice_', self::$notice_index, ' .berocket_notice_img {
514
  float: none;
521
  width: 100%;
522
  -webkit-box-shadow: none;
523
  box-shadow: none;
524
+ padding: 0;
525
  }
526
  }
527
  </style>
574
  .berocket_admin_notice .berocket_notice_content {
575
  display: inline-block;
576
  vertical-align: middle;
577
+ padding: 2px 5px;
578
  max-width: 99%;
579
  box-sizing: border-box;
580
  }
596
  .berocket_notice_content .berocket_button {
597
  margin: 0 0 0 10px;
598
  min-width: 80px;
599
+ padding: 6px 16px;
 
600
  vertical-align: baseline;
601
  color: #fff;
602
  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);
615
  white-space: nowrap;
616
  height: auto;
617
  display: inline-block;
618
+ font-weight: bold;
619
+ line-height: 120%;
620
  }
621
  </style>';
622
  }
685
  event.preventDefault();
686
  jQuery(this).parents(".berocket_subscribe_form").trigger("berocket_subscribe_send");
687
  });
688
+
689
  </script>';
690
  }
691
  }
733
  update_option('berocket_email_subscribed', true);
734
  curl_setopt($ch, CURLOPT_URL,"http://berocket.com/main/subscribe");
735
  curl_setopt($ch, CURLOPT_POST, 1);
736
+ curl_setopt($ch, CURLOPT_POSTFIELDS, "email=" . $_POST['email'] . "&plugins=" . $plugins);
737
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
738
  echo curl_exec ($ch);
739
  curl_close ($ch);
758
  add_action( 'wp_ajax_berocket_admin_close_notice', array('berocket_admin_notices', 'close_notice') );
759
  add_action( 'wp_ajax_berocket_subscribe_email', array('berocket_admin_notices', 'subscribe') );
760
  }
761
+
762
+ /**
763
+ * Creating admin notice if it not added already
764
+ */
765
+ new berocket_admin_notices(array(
766
+ 'start' => 1511281980, // timestamp when notice start
767
+ 'end' => 1514764803, // timestamp when notice end
768
+ 'name' => 'SALE_LOAD_MORE2', //notice name must be unique for this time period
769
+ 'html' => 'Only <strong>$10</strong> for <strong>Premium</strong> WooCommerce Load More Products!
770
+ <a class="berocket_button" href="http://berocket.com/product/woocommerce-load-more-products" target="_blank">Buy Now</a>
771
+ &nbsp; <span>Get your <strong class="red">60% discount</strong> and save <strong>$15</strong> today</span>
772
+ ', //text or html code as content of notice
773
+ 'righthtml' => '<a class="berocket_no_thanks">No thanks</a>', //content in the right block, this is default value. This html code must be added to all notices
774
+ 'rightwidth' => 80, //width of right content is static and will be as this value. berocket_no_thanks block is 60px and 20px is additional
775
+ 'nothankswidth' => 60, //berocket_no_thanks width. set to 0 if block doesn't uses. Or set to any other value if uses other text inside berocket_no_thanks
776
+ 'contentwidth' => 910, //width that uses for mediaquery is image + contentwidth + rightwidth + 210 other elements
777
+ 'subscribe' => false, //add subscribe form to the righthtml
778
+ 'priority' => 7, //priority of notice. 1-5 is main priority and displays on settings page always
779
+ 'height' => 50, //height of notice. image will be scaled
780
+ 'repeat' => '+1 week', //repeat notice after some time. time can use any values that accept function strtotime
781
+ 'repeatcount' => 4, //repeat count. how many times notice will be displayed after close
782
+ 'image' => array(
783
+ 'local' => plugin_dir_url( __FILE__ ) . '../images/60p_sale.jpg', //notice will be used this image directly
784
+ ),
785
+ ));
786
+
787
  ?>
readme.txt CHANGED
@@ -4,8 +4,8 @@ Contributors: dholovnia, berocket
4
  Donate link: http://berocket.com/product/woocommerce-ajax-products-filter
5
  Tags: filters, product filters, ajax product filters, ajax filter, ajax filter widget, color filter, size filter, product onsale filter, product preview, product category filter, product reset filter, product sort by filter, stock filter, product tag filter, price range filter, price box filter, advanced product filters, woocommerce filters, woocommerce product filters, woocommerce products filter, woocommerce ajax product filters, widget, plugin, woocommerce item filters, filters plugin, ajax filters plugin, filter woocommerce products, filter woocommerce products plugin, wc filters, wc filters products, wc products filters, wc ajax products filters, wc product filters, wc advanced product filters, woocommerce layered nav, woocommerce layered navigation, ajax filtered nav, ajax filtered navigation, price filter, ajax price filter, woocommerce product sorting, sidebar filter, sidebar ajax filter, taxonomy filter, category filter, attribute filter, attributes filter, woocommerce product sort, ajax products filter plugin for woocommerce, rocket, berocket, berocket woocommerce ajax products filter
6
  Requires at least: 4.0
7
- Tested up to: 4.8.3
8
- Stable tag: 1.2.3
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -16,7 +16,8 @@ WooCommerce AJAX Product Filters - Advanced product filtering ability for your W
16
  WooCommerce AJAX Product Filters - Advanced product filtering ability for your WooCommerce shop. Add unlimited filters with one widget.
17
 
18
  = BeRocket Promotions: =
19
- [-60% discount for the Premium Load More Products - ONLY $10!](http://berocket.com/product/woocommerce-load-more-products)
 
20
 
21
  = Features: =
22
 
@@ -75,6 +76,7 @@ WooCommerce AJAX Product Filters - Advanced product filtering ability for your W
75
  [youtube https://youtu.be/yo0vx5kSlLU]
76
  *we don't have video with free plugin right now but we are working on it*
77
 
 
78
  Advanced AJAX Product Filters has been tested and compatibility is certain with the following WooCommerce plugins that you can add to your site:
79
 
80
  * [**Advanced Product Labels for WooCommerce**](https://wordpress.org/plugins/advanced-product-labels-for-woocommerce/)
@@ -88,22 +90,6 @@ Advanced AJAX Product Filters has been tested and compatibility is certain with
88
  Nevertheless, it could be compatible with many other WooCommerce plugins that have not been tested yet. If you want to inform us about compatibility with other plugins, please, [email to us](http://berocket.com/contact).
89
 
90
 
91
- = How It Works: =
92
- *check installation*
93
-
94
-
95
- = In recent updates: =
96
- * Scroll to the top
97
- * Hash for old browsers added for better support
98
- * Sort by default WooCommerce value
99
- * Fixed out-of-stock filter
100
- * Jump to first page when filter changed
101
- * Option to add text before and after price input fields
102
- * Now only used values must be shown, not all
103
- * Minor fixes
104
-
105
-
106
-
107
  = Shortcode: =
108
  * In editor `[br_filters attribute=price type=slider title="Price Filter"]`
109
  * In PHP `do_shortcode('[br_filters attribute=price type=slider title="Price Filter"]');`
@@ -165,6 +151,26 @@ Nevertheless, it could be compatible with many other WooCommerce plugins that ha
165
 
166
  == Frequently Asked Questions ==
167
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
168
  ---
169
 
170
  == Screenshots ==
@@ -176,6 +182,9 @@ Nevertheless, it could be compatible with many other WooCommerce plugins that ha
176
 
177
  == Changelog ==
178
 
 
 
 
179
  = 1.2.3 =
180
  * Upgrade - more useful subscribe
181
  * Fix - updater fix
4
  Donate link: http://berocket.com/product/woocommerce-ajax-products-filter
5
  Tags: filters, product filters, ajax product filters, ajax filter, ajax filter widget, color filter, size filter, product onsale filter, product preview, product category filter, product reset filter, product sort by filter, stock filter, product tag filter, price range filter, price box filter, advanced product filters, woocommerce filters, woocommerce product filters, woocommerce products filter, woocommerce ajax product filters, widget, plugin, woocommerce item filters, filters plugin, ajax filters plugin, filter woocommerce products, filter woocommerce products plugin, wc filters, wc filters products, wc products filters, wc ajax products filters, wc product filters, wc advanced product filters, woocommerce layered nav, woocommerce layered navigation, ajax filtered nav, ajax filtered navigation, price filter, ajax price filter, woocommerce product sorting, sidebar filter, sidebar ajax filter, taxonomy filter, category filter, attribute filter, attributes filter, woocommerce product sort, ajax products filter plugin for woocommerce, rocket, berocket, berocket woocommerce ajax products filter
6
  Requires at least: 4.0
7
+ Tested up to: 4.9
8
+ Stable tag: 1.2.4
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
16
  WooCommerce AJAX Product Filters - Advanced product filtering ability for your WooCommerce shop. Add unlimited filters with one widget.
17
 
18
  = BeRocket Promotions: =
19
+ [60% OFF Premium WooCommerce Currency Exchange ONLY $11 today!](https://berocket.com/product/woocommerce-currency-exchange)
20
+ [Try FREE version of WooCommerce Currency Exchange here](https://wordpress.org/plugins/currency-exchange-for-woocommerce/)
21
 
22
  = Features: =
23
 
76
  [youtube https://youtu.be/yo0vx5kSlLU]
77
  *we don't have video with free plugin right now but we are working on it*
78
 
79
+ = Compatibility with WooCommerce plugins =
80
  Advanced AJAX Product Filters has been tested and compatibility is certain with the following WooCommerce plugins that you can add to your site:
81
 
82
  * [**Advanced Product Labels for WooCommerce**](https://wordpress.org/plugins/advanced-product-labels-for-woocommerce/)
90
  Nevertheless, it could be compatible with many other WooCommerce plugins that have not been tested yet. If you want to inform us about compatibility with other plugins, please, [email to us](http://berocket.com/contact).
91
 
92
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
  = Shortcode: =
94
  * In editor `[br_filters attribute=price type=slider title="Price Filter"]`
95
  * In PHP `do_shortcode('[br_filters attribute=price type=slider title="Price Filter"]');`
151
 
152
  == Frequently Asked Questions ==
153
 
154
+ = Is it compatible with all WordPress themes? =
155
+ Compatibility with all themes is impossible, because they are too many, but generally if themes are developed according to WordPress and WooCommerce guidelines, BeRocket plugins are compatible with them.
156
+
157
+ = How can I get support if my WooCommerce plugin is not working? =
158
+ If you have problems with our plugins or something is not working as it should, first follow this preliminary steps:
159
+
160
+ * Test the plugin with a WordPress default theme, to be sure that the error is not caused by the theme you are currently using.
161
+ * Deactivate all plugins you are using and check if the problem is still occurring.
162
+ * Ensure that your plugin version, your theme version and your WordPress and WooCommerce version (if required) are updated and that the problem you are experiencing has not already been solved in a later plugin update.
163
+
164
+ If none of the previous listed actions helps you solve the problem, then, submit a ticket in the forum and describe your problem accurately, specify WordPress and WooCommerce versions you are using and any other information that might help us solve your problem as quickly as possible. Thanks!
165
+
166
+
167
+ = How can I get more features for my WooCommerce plugin? =
168
+ You can get more features with the premium version of Advanced AJAX Product Filters, available on [BeRocket page](http://berocket.com/product/woocommerce-ajax-products-filter). Here you can read more about the premium features of the plugin and make it give it its best shot!
169
+
170
+
171
+ = How can I try the full-featured plugin? =
172
+ You can try this plugin's admin side [here](http://berocket.com/product/woocommerce-ajax-products-filter#try-admin). Configure plugin the way you need to check the results.
173
+
174
  ---
175
 
176
  == Screenshots ==
182
 
183
  == Changelog ==
184
 
185
+ = 1.2.4 =
186
+ * Upgrade - WordPress 4.9 compatibility
187
+
188
  = 1.2.3 =
189
  * Upgrade - more useful subscribe
190
  * Fix - updater fix
templates/admin-settings.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
- $dplugin_name = 'WooCommerce AJAX Products Filter';
3
- $dplugin_link = 'http://berocket.com/product/woocommerce-ajax-products-filter';
4
  $dplugin_price = 26;
5
- $dplugin_desc = '';
 
6
  @ include 'settings_head.php';
7
  @ include 'discount.php';
8
  ?>
@@ -214,15 +215,17 @@ $dplugin_desc = '';
214
  */
215
  $feature_list = array(
216
  'Filter by Tag and Custom Taxonomy',
 
217
  'Nice URLs for SEO Friendly URLs',
 
 
 
218
  'Customization for text, checkbox, radio, slider and other elements',
219
  'Filters Can be Collapsed, Option to Collapse Filter on Start',
220
  'Shortcode Builder for Easy Shortcode Creation',
221
- 'Optimization to Handle up to 5 000 Products Total',
222
  'Price Filter Custom Min and Max Values',
223
  'Option to Set Values for the Price Slider Manually',
224
  'Description for Widgets',
225
- 'Support 99% of the Themes',
226
  'Selected Filters Area',
227
  'Reset button widget',
228
  'Search box widget',
@@ -230,8 +233,6 @@ $feature_list = array(
230
  'Color and Image Type of Widgets',
231
  'Custom CSS Styles',
232
  'Filters Visibility by Pages',
233
- 'Icons Before and After Title',
234
- 'Icons Before and After Values',
235
  'Count of Products with Attribute Values',
236
  'Show amount of products before update',
237
  'Price as checkbox with min and max values',
1
  <?php
2
+ $dplugin_name = 'WooCommerce AJAX Products Filter';
3
+ $dplugin_link = 'http://berocket.com/product/woocommerce-ajax-products-filter';
4
  $dplugin_price = 26;
5
+ $dplugin_lic = 1;
6
+ $dplugin_desc = '';
7
  @ include 'settings_head.php';
8
  @ include 'discount.php';
9
  ?>
215
  */
216
  $feature_list = array(
217
  'Filter by Tag and Custom Taxonomy',
218
+ 'Support 99% of the Themes',
219
  'Nice URLs for SEO Friendly URLs',
220
+ 'Icons Before and After Title',
221
+ 'Optimization to Handle up to 5,000 Products Total',
222
+ 'Icons Before and After Values',
223
  'Customization for text, checkbox, radio, slider and other elements',
224
  'Filters Can be Collapsed, Option to Collapse Filter on Start',
225
  'Shortcode Builder for Easy Shortcode Creation',
 
226
  'Price Filter Custom Min and Max Values',
227
  'Option to Set Values for the Price Slider Manually',
228
  'Description for Widgets',
 
229
  'Selected Filters Area',
230
  'Reset button widget',
231
  'Search box widget',
233
  'Color and Image Type of Widgets',
234
  'Custom CSS Styles',
235
  'Filters Visibility by Pages',
 
 
236
  'Count of Products with Attribute Values',
237
  'Show amount of products before update',
238
  'Price as checkbox with min and max values',
templates/discount.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
  $start_time = 1490705082;
3
- $end_time = 1496275200;
4
  $promo_price = '$7.00';
5
  $discount = '70%';
6
  $save_amount = '$15.00';
1
  <?php
2
  $start_time = 1490705082;
3
+ $end_time = 0;
4
  $promo_price = '$7.00';
5
  $discount = '70%';
6
  $save_amount = '$15.00';
templates/settings_footer.php CHANGED
@@ -5,18 +5,31 @@
5
  foreach ( $feature_list as $feature ) {
6
  $feature_text .= '<li>' . $feature . '</li>';
7
  }
8
- $text = '<h3>Unlock all the features with Paid version!</h3>
9
  <div>
10
  <ul>
11
  %feature_list%
12
  </ul>
13
  </div>
14
- <div><a class="get_premium_version" href="%link%">PREMIUM VERSION</a></div>
 
 
 
 
 
 
15
  <p>Support the plugin by purchasing paid version. This will provide faster growth,
16
  better support and much more functionality for the plugin</p>';
17
 
 
 
 
 
 
18
  $text = str_replace( '%feature_list%', $feature_text, $text );
19
  $text = str_replace( '%link%', $dplugin_link, $text );
 
 
20
  $text = str_replace( '%plugin_name%', @ $plugin_info['Name'], $text );
21
  $text = str_replace( '%plugin_link%', @ $plugin_info['PluginURI'], $text );
22
  echo $text;
@@ -24,152 +37,209 @@
24
  </div>
25
 
26
  <style>
27
- .paid_features {
28
- border-radius: 3px;
29
- box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.06);
30
- overflow: auto;
31
- position: relative;
32
- background-color: white;
33
- color: rgba(0, 0, 0, 0.87);
34
- padding: 0 25px;
35
- margin-bottom: 30px;
36
- box-sizing: border-box;
37
- text-align: center;
38
- float: right;
39
- clear: right;
40
- width: 28%;
41
- }
42
- .berocket_subscribe {
43
- background: white;
44
- float: right;
45
- clear: right;
46
- width: 28%;
47
- box-sizing: border-box;
48
- text-align: center;
49
- padding: 0 25px;
50
- margin-bottom: 30px;
51
- border-radius: 3px;
52
- box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.06);
53
- }
54
- .paid_features ul li {
55
- text-align: left;
56
- }
57
- .berocket_subscribe {
58
- background-color: #2c3644;
59
- background-image: url(<?php echo plugin_dir_url( __FILE__ ) . 'mail.png'; ?>);
60
- background-position: right top;
61
- background-repeat: no-repeat;
62
- color: #aaa;
63
- font-size: 16px;
64
- overflow: hidden;
65
- }
66
- .berocket_subscribe h3 {
67
- color: white;
68
- }
69
- .berocket_subscribe p {
70
- font-size: 15px;
71
- text-align: center;
72
- }
73
- .berocket_subscribe .berocket_subscribe_email {
74
- background-color: #404c5d;
75
- border: 0;
76
- outline: 0;
77
- color: #aaa;
78
- width: 100%;
79
- line-height: 2em;
80
- font-size: 16px;
81
- padding-left: 15px;
82
- padding-right: 15px;
83
- }
84
- .berocket_subscribe .berocket_notice_submit,
85
- .get_premium_version {
86
- margin-top: 30px;
87
- margin-bottom: 20px;
88
- color: #fff;
89
- box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);
90
- text-shadow: none;
91
- border: 0 none;
92
- min-width: 120px;
93
- width: 90%;
94
- -moz-user-select: none;
95
- background: #ff5252 none repeat scroll 0 0;
96
- box-sizing: border-box;
97
- cursor: pointer;
98
- display: inline-block;
99
- font-size: 14px;
100
- font-weight: normal;
101
- outline: 0 none;
102
- padding: 8px;
103
- position: relative;
104
- text-align: center;
105
- text-decoration: none;
106
- transition: box-shadow 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) 0s, background-color 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) 0s;
107
- white-space: nowrap;
108
- height: auto;
109
- vertical-align: top;
110
- line-height: 26px;
111
- border-radius: 3px;
112
- font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
113
- }
114
- .berocket_subscribe .berocket_notice_submit{
115
- width: 100%;
116
- margin-top: 20px;
117
- }
118
- .berocket_subscribe .berocket_notice_submit:hover,
119
- .berocket_subscribe .berocket_notice_submit:focus,
120
- .berocket_subscribe .berocket_notice_submit:active,
121
- .get_premium_version:hover,
122
- .get_premium_version:focus,
123
- .get_premium_version:active {
124
- background: #ff6e68 none repeat scroll 0 0;
125
- color: white;
126
- }
127
-
128
- .berocket_subscribe .berocket_notice_submit:hover {
129
- color: white;
130
- background-color: rgb(222, 72, 72);
131
- box-shadow: none;
132
- border: none;
133
- }
134
- .berocket_subscribe .berocket_notice_submit:focus,
135
- .berocket_subscribe .berocket_notice_submit:active {
136
- color: white;
137
- background-color: rgb(222, 72, 72);
138
- -webkit-box-shadow: 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30,140,190,.8);
139
- box-shadow: 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30,140,190,.8);
140
- }
141
- .paid_features ul li{
142
- list-style: initial;
143
- margin-left: 2em;
144
- }
145
- .show_premium {
146
- float: left;
147
- width: 68%;
148
- box-sizing: border-box;
149
- }
150
- @media screen and (min-width: 901px) and (max-width: 1200px) {
151
- .paid_features,
152
  .berocket_subscribe {
153
- padding-left: 10px;
154
- padding-right: 10px;
 
 
 
 
 
 
 
 
 
 
 
155
  }
156
-
157
- }
158
- @media screen and (max-width: 900px) {
159
- .show_premium,
160
- .paid_features,
161
- .get_premium_version,
162
  .berocket_subscribe {
163
- float: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
164
  width: 100%;
 
 
 
 
165
  }
166
-
167
- .paid_features,
168
- .berocket_subscribe {
169
  margin-top: 30px;
170
- margin-bottom: 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
171
  }
172
- }
173
  </style>
174
  <?php
175
  $subscribed = get_option('berocket_email_subscribed');
@@ -196,7 +266,7 @@
196
  }
197
  $text = '<h4 style="clear:both;">Both <a href="%plugin_link%" target="_blank">Free</a> and <a href="%link%" target="_blank">Paid</a> versions of %plugin_name% developed by <a href="http://berocket.com" target="_blank">BeRocket</a></h4>';
198
  } else {
199
- $text = '<h4 style="clear:both;"><a href="%plugin_link%" target="_blank">%plugin_name%</a> developed by <a href="http://berocket.com" target="_blank">BeRocket</a></h4>';
200
  }
201
 
202
  $text = str_replace( '%link%', $dplugin_link, $text );
5
  foreach ( $feature_list as $feature ) {
6
  $feature_text .= '<li>' . $feature . '</li>';
7
  }
8
+ $text = '<h3>Unlock all the features with Premium version!</h3>
9
  <div>
10
  <ul>
11
  %feature_list%
12
  </ul>
13
  </div>
14
+ <div class="premium_buttons">
15
+ <span>Read more about</span>
16
+ <a class="get_premium_version" href="%link%" target="_blank">PREMIUM VERSION</a>
17
+ <span class="divider">OR</span>
18
+ <a class="buy_premium_version" href="http://berocket.com/checkout/%licence%/promo/SAVE15" target="_blank">BUY NOW</a>
19
+ <span>and get <b>%discount% discount</b></span>
20
+ </div>
21
  <p>Support the plugin by purchasing paid version. This will provide faster growth,
22
  better support and much more functionality for the plugin</p>';
23
 
24
+ $dpdiscount = '15%';
25
+ if ( isset( $start_time ) and isset( $end_time ) and isset( $discount ) and time() > $start_time && time() < $end_time and (int) $discount > 15 ) {
26
+ $dpdiscount = $discount;
27
+ }
28
+
29
  $text = str_replace( '%feature_list%', $feature_text, $text );
30
  $text = str_replace( '%link%', $dplugin_link, $text );
31
+ $text = str_replace( '%licence%', $dplugin_lic, $text );
32
+ $text = str_replace( '%discount%', $dpdiscount, $text );
33
  $text = str_replace( '%plugin_name%', @ $plugin_info['Name'], $text );
34
  $text = str_replace( '%plugin_link%', @ $plugin_info['PluginURI'], $text );
35
  echo $text;
37
  </div>
38
 
39
  <style>
40
+ .paid_features {
41
+ border-radius: 3px;
42
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.06);
43
+ overflow: auto;
44
+ position: relative;
45
+ background-color: white;
46
+ color: rgba(0, 0, 0, 0.87);
47
+ padding: 0 25px;
48
+ margin-bottom: 30px;
49
+ box-sizing: border-box;
50
+ text-align: center;
51
+ float: right;
52
+ clear: right;
53
+ width: 28%;
54
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  .berocket_subscribe {
56
+ background: white;
57
+ float: right;
58
+ clear: right;
59
+ width: 28%;
60
+ box-sizing: border-box;
61
+ text-align: center;
62
+ padding: 0 25px;
63
+ margin-bottom: 30px;
64
+ border-radius: 3px;
65
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.06);
66
+ }
67
+ .paid_features ul li {
68
+ text-align: left;
69
  }
 
 
 
 
 
 
70
  .berocket_subscribe {
71
+ background-color: #2c3644;
72
+ background-image: url(<?php echo plugin_dir_url( __FILE__ ) . 'mail.png'; ?>);
73
+ background-position: right top;
74
+ background-repeat: no-repeat;
75
+ color: #aaa;
76
+ font-size: 16px;
77
+ overflow: hidden;
78
+ }
79
+ .berocket_subscribe h3 {
80
+ color: white;
81
+ }
82
+ .berocket_subscribe p {
83
+ font-size: 15px;
84
+ text-align: center;
85
+ }
86
+ .berocket_subscribe .berocket_subscribe_email {
87
+ background-color: #404c5d;
88
+ border: 0;
89
+ outline: 0;
90
+ color: #aaa;
91
  width: 100%;
92
+ line-height: 2em;
93
+ font-size: 16px;
94
+ padding-left: 15px;
95
+ padding-right: 15px;
96
  }
97
+ .berocket_subscribe .berocket_notice_submit,
98
+ .get_premium_version,
99
+ .buy_premium_version {
100
  margin-top: 30px;
101
+ margin-bottom: 20px;
102
+ color: #fff;
103
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);
104
+ text-shadow: none;
105
+ border: 0 none;
106
+ min-width: 120px;
107
+ width: 90%;
108
+ -moz-user-select: none;
109
+ background: #ff5252 none repeat scroll 0 0;
110
+ box-sizing: border-box;
111
+ cursor: pointer;
112
+ display: inline-block;
113
+ font-size: 14px;
114
+ outline: 0 none;
115
+ padding: 8px;
116
+ position: relative;
117
+ text-align: center;
118
+ text-decoration: none;
119
+ transition: box-shadow 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) 0s, background-color 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) 0s;
120
+ white-space: nowrap;
121
+ height: auto;
122
+ vertical-align: top;
123
+ line-height: 25px;
124
+ border-radius: 3px;
125
+ font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
126
+ font-weight: bold;
127
+ }
128
+ .get_premium_version {
129
+ margin: 5px 0;
130
+ background: transparent;
131
+ border: 2px solid #97b9cf;
132
+ color: #7496ad;
133
+ }
134
+ .buy_premium_version {
135
+ margin: 5px 0 15px;
136
+ padding: 10px;
137
+ }
138
+ .premium_buttons {
139
+ margin-top: 30px;
140
+ margin-bottom: 20px;
141
+ }
142
+ .premium_buttons span {
143
+ display: block;
144
+ color: #7496ad;
145
+ }
146
+ .premium_buttons span.divider {
147
+ line-height: 2.4em;
148
+ font-size: 20px;
149
+ font-weight: bold;
150
+ position: relative;
151
+ }
152
+ .premium_buttons span.divider:before,
153
+ .premium_buttons span.divider:after{
154
+ position: absolute;
155
+ top: 50%;
156
+ left: 5%;
157
+ right: 60%;
158
+ height: 1px;
159
+ background: #97b9cf;
160
+ content: "";
161
+ }
162
+ .premium_buttons span.divider:after{
163
+ left: 60%;
164
+ right: 5%;
165
+ }
166
+ .premium_buttons span:last-child b{
167
+ font-size: 16px;
168
+ }
169
+ .berocket_subscribe .berocket_notice_submit{
170
+ width: 100%;
171
+ margin-top: 20px;
172
+ }
173
+ .berocket_subscribe .berocket_notice_submit:hover,
174
+ .berocket_subscribe .berocket_notice_submit:focus,
175
+ .berocket_subscribe .berocket_notice_submit:active,
176
+ .buy_premium_version:hover,
177
+ .buy_premium_version:focus,
178
+ .buy_premium_version:active {
179
+ background: #ff6e68 none repeat scroll 0 0;
180
+ color: white;
181
+ }
182
+ .get_premium_version:hover,
183
+ .get_premium_version:focus,
184
+ .get_premium_version:active{
185
+ background: #97b9cf;
186
+ color: white;
187
+ }
188
+
189
+ .berocket_subscribe .berocket_notice_submit:hover {
190
+ color: white;
191
+ background-color: rgb(222, 72, 72);
192
+ box-shadow: none;
193
+ border: none;
194
+ }
195
+ .berocket_subscribe .berocket_notice_submit:focus,
196
+ .berocket_subscribe .berocket_notice_submit:active {
197
+ color: white;
198
+ background-color: rgb(222, 72, 72);
199
+ -webkit-box-shadow: 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30,140,190,.8);
200
+ box-shadow: 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30,140,190,.8);
201
+ }
202
+ .paid_features ul li{
203
+ list-style: initial;
204
+ margin-left: 2em;
205
+ }
206
+ .show_premium {
207
+ float: left;
208
+ width: 68%;
209
+ box-sizing: border-box;
210
+ }
211
+ @media screen and (min-width: 901px) and (max-width: 1200px) {
212
+ .paid_features,
213
+ .berocket_subscribe {
214
+ padding-left: 10px;
215
+ padding-right: 10px;
216
+ }
217
+
218
+ }
219
+ @media screen and (max-width: 900px) {
220
+ .show_premium,
221
+ .paid_features,
222
+ .get_premium_version,
223
+ .berocket_subscribe,
224
+ .buy_premium_version{
225
+ float: none;
226
+ width: 100%;
227
+ }
228
+
229
+ .paid_features,
230
+ .berocket_subscribe {
231
+ margin-top: 30px;
232
+ margin-bottom: 0;
233
+ }
234
+
235
+ .premium_buttons span.divider:before{
236
+ left: 0;
237
+ }
238
+
239
+ .premium_buttons span.divider:after{
240
+ right: 0;
241
+ }
242
  }
 
243
  </style>
244
  <?php
245
  $subscribed = get_option('berocket_email_subscribed');
266
  }
267
  $text = '<h4 style="clear:both;">Both <a href="%plugin_link%" target="_blank">Free</a> and <a href="%link%" target="_blank">Paid</a> versions of %plugin_name% developed by <a href="http://berocket.com" target="_blank">BeRocket</a></h4>';
268
  } else {
269
+ $text = '<h4 style="clear:both;"><a href="%plugin_link%" target="_blank">%plugin_name%</a> developed by <a href="http://berocket.com" target="_blank">BeRocket</a></h4>';
270
  }
271
 
272
  $text = str_replace( '%link%', $dplugin_link, $text );
woocommerce-filters.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Advanced AJAX Product Filters for WooCommerce
4
  * Plugin URI: https://wordpress.org/plugins/woocommerce-ajax-filters/
5
  * Description: Advanced product filtering ability for your WooCommerce shop. Add unlimited filters with one widget.
6
- * Version: 1.2.3
7
  * Author: BeRocket
8
  * Requires at least: 4.0
9
  * Author URI: http://berocket.com
@@ -11,7 +11,7 @@
11
  * Domain Path: /languages/
12
  */
13
 
14
- define( "BeRocket_AJAX_filters_version", '1.2.3' );
15
  define( "BeRocket_AJAX_domain", 'BeRocket_AJAX_domain' );
16
 
17
  define( "AAPF_TEMPLATE_PATH", plugin_dir_path( __FILE__ ) . "templates/" );
3
  * Plugin Name: Advanced AJAX Product Filters for WooCommerce
4
  * Plugin URI: https://wordpress.org/plugins/woocommerce-ajax-filters/
5
  * Description: Advanced product filtering ability for your WooCommerce shop. Add unlimited filters with one widget.
6
+ * Version: 1.2.4
7
  * Author: BeRocket
8
  * Requires at least: 4.0
9
  * Author URI: http://berocket.com
11
  * Domain Path: /languages/
12
  */
13
 
14
+ define( "BeRocket_AJAX_filters_version", '1.2.4' );
15
  define( "BeRocket_AJAX_domain", 'BeRocket_AJAX_domain' );
16
 
17
  define( "AAPF_TEMPLATE_PATH", plugin_dir_path( __FILE__ ) . "templates/" );