Version Description
- Enhancement - Features tab added
- Fix - Font Awesome 5 on some themes
- Fix - Customizer do not save WooCommerce settings
- Fix - Hook to add filtering on some theme
Download this release
Release Info
Developer | RazyRx |
Plugin | Advanced AJAX Product Filters |
Version | 1.3.0.2 |
Comparing to | |
See all releases |
Code changes from version 1.3.0.1 to 1.3.0.2
- assets/assets/screenshot-1.png +0 -0
- assets/assets/screenshot-2.png +0 -0
- assets/assets/screenshot-3.png +0 -0
- assets/screenshot-1.png +0 -0
- assets/screenshot-2.png +0 -0
- assets/screenshot-3.png +0 -0
- berocket/framework.php +16 -8
- includes/addons/woocommerce-variation.php +3 -0
- includes/free.php +37 -0
- includes/widget.php +12 -11
- main.php +6 -2
- readme.txt +7 -1
- templates/free/feature.php +146 -0
- templates/free/free/feature.php +146 -0
- woocommerce-filters.php +2 -2
assets/assets/screenshot-1.png
DELETED
Binary file
|
assets/assets/screenshot-2.png
DELETED
Binary file
|
assets/assets/screenshot-3.png
DELETED
Binary file
|
assets/screenshot-1.png
DELETED
Binary file
|
assets/screenshot-2.png
DELETED
Binary file
|
assets/screenshot-3.png
DELETED
Binary file
|
berocket/framework.php
CHANGED
@@ -240,10 +240,8 @@ if( ! class_exists( 'BeRocket_Framework' ) ) {
|
|
240 |
public function init() {
|
241 |
$global_option = $this->get_global_option();
|
242 |
wp_enqueue_script( "jquery" );
|
243 |
-
wp_register_style( 'font-awesome', plugins_url( 'berocket/css/font-awesome.min.css', $this->cc->info[ 'plugin_file' ] ) );
|
244 |
-
wp_register_style( 'font-awesome-5', plugins_url( 'berocket/css/fontawesome5.min.css', $this->cc->info[ 'plugin_file' ] ) );
|
245 |
-
wp_register_style( 'font-awesome-5-compat', plugins_url( 'berocket/css/fontawesome4-compat.min.css', $this->cc->info[ 'plugin_file' ] ) );
|
246 |
if( is_admin() ) {
|
|
|
247 |
wp_enqueue_style( 'font-awesome' );
|
248 |
} elseif( ! empty($this->framework_data['fontawesome_frontend']) ) {
|
249 |
$this->enqueue_fontawesome();
|
@@ -273,20 +271,18 @@ if( ! class_exists( 'BeRocket_Framework' ) ) {
|
|
273 |
}
|
274 |
|
275 |
public function enqueue_fontawesome($force = false) {
|
276 |
-
if( ! wp_style_is('font-awesome-5-compat', 'registered') ) {
|
277 |
-
wp_register_style( 'font-awesome', plugins_url( 'berocket/css/font-awesome.min.css', $this->cc->info[ 'plugin_file' ] ) );
|
278 |
-
wp_register_style( 'font-awesome-5', plugins_url( 'berocket/css/fontawesome5.min.css', $this->cc->info[ 'plugin_file' ] ) );
|
279 |
-
wp_register_style( 'font-awesome-5-compat', plugins_url( 'berocket/css/fontawesome4-compat.min.css', $this->cc->info[ 'plugin_file' ] ) );
|
280 |
-
}
|
281 |
$global_option = $this->get_global_option();
|
282 |
if( empty($global_option['fontawesome_frontend_disable']) ) {
|
283 |
if( br_get_value_from_array($global_option, 'fontawesome_frontend_version') == 'fontawesome5' ) {
|
|
|
284 |
wp_enqueue_style( 'font-awesome-5' );
|
285 |
} else {
|
|
|
286 |
wp_enqueue_style( 'font-awesome' );
|
287 |
}
|
288 |
} else {
|
289 |
if( br_get_value_from_array($global_option, 'fontawesome_frontend_version') == 'fontawesome5' ) {
|
|
|
290 |
wp_enqueue_style( 'font-awesome-5-compat' );
|
291 |
}
|
292 |
}
|
@@ -915,5 +911,17 @@ if( ! class_exists( 'BeRocket_Framework' ) ) {
|
|
915 |
}
|
916 |
return $settings_page;
|
917 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
918 |
}
|
919 |
}
|
240 |
public function init() {
|
241 |
$global_option = $this->get_global_option();
|
242 |
wp_enqueue_script( "jquery" );
|
|
|
|
|
|
|
243 |
if( is_admin() ) {
|
244 |
+
self::register_font_awesome();
|
245 |
wp_enqueue_style( 'font-awesome' );
|
246 |
} elseif( ! empty($this->framework_data['fontawesome_frontend']) ) {
|
247 |
$this->enqueue_fontawesome();
|
271 |
}
|
272 |
|
273 |
public function enqueue_fontawesome($force = false) {
|
|
|
|
|
|
|
|
|
|
|
274 |
$global_option = $this->get_global_option();
|
275 |
if( empty($global_option['fontawesome_frontend_disable']) ) {
|
276 |
if( br_get_value_from_array($global_option, 'fontawesome_frontend_version') == 'fontawesome5' ) {
|
277 |
+
self::register_font_awesome('fa5');
|
278 |
wp_enqueue_style( 'font-awesome-5' );
|
279 |
} else {
|
280 |
+
self::register_font_awesome('fa4');
|
281 |
wp_enqueue_style( 'font-awesome' );
|
282 |
}
|
283 |
} else {
|
284 |
if( br_get_value_from_array($global_option, 'fontawesome_frontend_version') == 'fontawesome5' ) {
|
285 |
+
self::register_font_awesome('fa5c');
|
286 |
wp_enqueue_style( 'font-awesome-5-compat' );
|
287 |
}
|
288 |
}
|
911 |
}
|
912 |
return $settings_page;
|
913 |
}
|
914 |
+
|
915 |
+
public static function register_font_awesome($type = 'all') {
|
916 |
+
if( $type == 'all' || $type == 'fa4' ) {
|
917 |
+
wp_register_style( 'font-awesome', plugins_url( 'css/font-awesome.min.css', __FILE__ ) );
|
918 |
+
}
|
919 |
+
if( $type == 'all' || $type == 'fa5' ) {
|
920 |
+
wp_register_style( 'font-awesome-5', plugins_url( 'css/fontawesome5.min.css', __FILE__ ) );
|
921 |
+
}
|
922 |
+
if( $type == 'all' || $type == 'fa5c' ) {
|
923 |
+
wp_register_style( 'font-awesome-5-compat', plugins_url( 'css/fontawesome4-compat.min.css', __FILE__ ) );
|
924 |
+
}
|
925 |
+
}
|
926 |
}
|
927 |
}
|
includes/addons/woocommerce-variation.php
CHANGED
@@ -23,7 +23,10 @@ class BeRocket_AAPF_compat_woocommerce_variation {
|
|
23 |
if( is_array($post_not_in) && count($post_not_in) ) {
|
24 |
$post__not_in = $query->get('post__not_in');
|
25 |
$post__not_in = array_merge($post__not_in, $post_not_in);
|
|
|
|
|
26 |
$query->set('post__not_in', $post__not_in);
|
|
|
27 |
}
|
28 |
return $query;
|
29 |
}
|
23 |
if( is_array($post_not_in) && count($post_not_in) ) {
|
24 |
$post__not_in = $query->get('post__not_in');
|
25 |
$post__not_in = array_merge($post__not_in, $post_not_in);
|
26 |
+
$post__in = $query->get('post__in');
|
27 |
+
$post__in = array_diff($post__in, $post__not_in);
|
28 |
$query->set('post__not_in', $post__not_in);
|
29 |
+
$query->set('post__in', $post__in);
|
30 |
}
|
31 |
return $query;
|
32 |
}
|
includes/free.php
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class BeRocket_AAPF_Free extends BeRocket_plugin_variations {
|
3 |
+
public $plugin_name = 'ajax_filters';
|
4 |
+
public $version_number = 0;
|
5 |
+
public function __construct() {
|
6 |
+
parent::__construct();
|
7 |
+
add_filter('brfr_ajax_filters_section_feature', array($this, 'section_feature'));
|
8 |
+
}
|
9 |
+
public function settings_page($data) {
|
10 |
+
$data['Features'] = array(
|
11 |
+
'section_feature' => array(
|
12 |
+
"section" => "section_feature",
|
13 |
+
"value" => "",
|
14 |
+
)
|
15 |
+
);
|
16 |
+
return $data;
|
17 |
+
}
|
18 |
+
public function settings_tabs($data) {
|
19 |
+
$data = berocket_insert_to_array(
|
20 |
+
$data,
|
21 |
+
'JavaScript/CSS',
|
22 |
+
array(
|
23 |
+
'Features' => array(
|
24 |
+
'icon' => 'info',
|
25 |
+
),
|
26 |
+
)
|
27 |
+
);
|
28 |
+
return $data;
|
29 |
+
}
|
30 |
+
public function section_feature ($html) {
|
31 |
+
ob_start();
|
32 |
+
include_once(AAPF_TEMPLATE_PATH.'free/feature.php');
|
33 |
+
$html = ob_get_clean();
|
34 |
+
return $html;
|
35 |
+
}
|
36 |
+
}
|
37 |
+
new BeRocket_AAPF_Free();
|
includes/widget.php
CHANGED
@@ -1538,23 +1538,25 @@ if( BeRocket_AAPF::$debug_mode ) {
|
|
1538 |
}
|
1539 |
}
|
1540 |
}
|
1541 |
-
if( ! empty($post__in) ) {
|
1542 |
-
$query['where'] .= " AND {$wpdb->posts}.ID IN (\"" . implode('","', $post__in) . "\")";
|
1543 |
-
}
|
1544 |
-
if( ! empty($post__not_in) ) {
|
1545 |
-
$query['where'] .= " AND {$wpdb->posts}.ID IN (\"" . implode('","', $post__not_in) . "\")";
|
1546 |
-
}
|
1547 |
if( $count_filtering ) {
|
1548 |
$query['where'] .= $old_join_posts;
|
1549 |
}
|
1550 |
$query = apply_filters( 'woocommerce_get_filtered_term_product_counts_query', $query );
|
1551 |
$on_sale = array_merge( array( 0 ), wc_get_product_ids_on_sale() );
|
|
|
1552 |
$query_sale = $query;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1553 |
$query_sale['where'] .= " AND {$wpdb->posts}.ID IN (".implode(',', $on_sale).") ";
|
|
|
1554 |
$query_sale = implode( ' ', $query_sale );
|
1555 |
-
if( BeRocket_AAPF::$debug_mode ) {
|
1556 |
-
$term_recount_log['query_sale'] = $query_sale;
|
1557 |
-
}
|
1558 |
$results = $wpdb->get_results( $query_sale );
|
1559 |
foreach($input_terms as &$res_count) {
|
1560 |
if( $res_count->term_id == 1 ) {
|
@@ -1565,11 +1567,10 @@ if( BeRocket_AAPF::$debug_mode ) {
|
|
1565 |
}
|
1566 |
}
|
1567 |
}
|
1568 |
-
$query_not_sale = $query;
|
1569 |
-
$query_not_sale['where'] .= " AND {$wpdb->posts}.ID NOT IN (".implode(',', $on_sale).") ";;
|
1570 |
$query_not_sale = implode( ' ', $query_not_sale );
|
1571 |
if( BeRocket_AAPF::$debug_mode ) {
|
1572 |
$term_recount_log['query_not_sale'] = $query_not_sale;
|
|
|
1573 |
}
|
1574 |
$results = $wpdb->get_results( $query_not_sale );
|
1575 |
foreach($input_terms as &$res_count) {
|
1538 |
}
|
1539 |
}
|
1540 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
1541 |
if( $count_filtering ) {
|
1542 |
$query['where'] .= $old_join_posts;
|
1543 |
}
|
1544 |
$query = apply_filters( 'woocommerce_get_filtered_term_product_counts_query', $query );
|
1545 |
$on_sale = array_merge( array( 0 ), wc_get_product_ids_on_sale() );
|
1546 |
+
$not_on_sale = $on_sale;
|
1547 |
$query_sale = $query;
|
1548 |
+
$query_not_sale = $query;
|
1549 |
+
if( ! empty($post__in) ) {
|
1550 |
+
$on_sale = array_intersect($on_sale, $post__in);
|
1551 |
+
$query_not_sale['where'] .= " AND {$wpdb->posts}.ID IN (\"" . implode('","', $post__in) . "\")";
|
1552 |
+
}
|
1553 |
+
if( ! empty($post__not_in) ) {
|
1554 |
+
$query_sale['where'] .= " AND {$wpdb->posts}.ID NOT IN (\"" . implode('","', $post__not_in) . "\")";
|
1555 |
+
$not_on_sale = array_merge($not_on_sale, $post__not_in);
|
1556 |
+
}
|
1557 |
$query_sale['where'] .= " AND {$wpdb->posts}.ID IN (".implode(',', $on_sale).") ";
|
1558 |
+
$query_not_sale['where'] .= " AND {$wpdb->posts}.ID NOT IN (".implode(',', $not_on_sale).") ";
|
1559 |
$query_sale = implode( ' ', $query_sale );
|
|
|
|
|
|
|
1560 |
$results = $wpdb->get_results( $query_sale );
|
1561 |
foreach($input_terms as &$res_count) {
|
1562 |
if( $res_count->term_id == 1 ) {
|
1567 |
}
|
1568 |
}
|
1569 |
}
|
|
|
|
|
1570 |
$query_not_sale = implode( ' ', $query_not_sale );
|
1571 |
if( BeRocket_AAPF::$debug_mode ) {
|
1572 |
$term_recount_log['query_not_sale'] = $query_not_sale;
|
1573 |
+
$term_recount_log['query_sale'] = $query_sale;
|
1574 |
}
|
1575 |
$results = $wpdb->get_results( $query_not_sale );
|
1576 |
foreach($input_terms as &$res_count) {
|
main.php
CHANGED
@@ -1134,7 +1134,9 @@ jQuery(document).on('change', '.br_selected_area_show', br_selected_area_show);
|
|
1134 |
wp_die();
|
1135 |
}
|
1136 |
function wp_hook() {
|
1137 |
-
|
|
|
|
|
1138 |
}
|
1139 |
public function replace_deprecated_with_new() {
|
1140 |
require_once dirname( __FILE__ ) . '/fixes/replace_widgets.php';
|
@@ -1412,7 +1414,7 @@ jQuery(document).on('change', '.br_selected_area_show', br_selected_area_show);
|
|
1412 |
return ob_get_clean();
|
1413 |
}
|
1414 |
public function woocommerce_shortcode_products_query( $query_vars, $atts = array(), $name = 'products' ) {
|
1415 |
-
if( (! is_shop() && ! is_product_taxonomy() && ! is_product_category() && ! is_product_tag()) || ! empty($atts['berocket_aapf']) ) {
|
1416 |
$query_vars = $this->woocommerce_filter_query_vars($query_vars, $atts, $name);
|
1417 |
}
|
1418 |
return $query_vars;
|
@@ -1494,6 +1496,7 @@ jQuery(document).on('change', '.br_selected_area_show', br_selected_area_show);
|
|
1494 |
} else {
|
1495 |
$is_wc_main_query = $query->is_main_query();
|
1496 |
}
|
|
|
1497 |
if ( ( ( ! is_admin() && $is_wc_main_query ) || $is_shortcode ) && ( apply_filters( 'berocket_aapf_is_filtered_page_check', ! empty($_GET['filters']), 'apply_user_price', $query ) ) ) {
|
1498 |
br_aapf_args_converter( $query );
|
1499 |
if ( ! empty($_POST['price']) ) {
|
@@ -1524,6 +1527,7 @@ jQuery(document).on('change', '.br_selected_area_show', br_selected_area_show);
|
|
1524 |
} else {
|
1525 |
$is_wc_main_query = $query->is_main_query();
|
1526 |
}
|
|
|
1527 |
if( apply_filters( 'berocket_aapf_is_filtered_page_check', ! empty($_GET['filters']), 'apply_user_filters', $query ) ) {
|
1528 |
br_aapf_args_converter( $query );
|
1529 |
}
|
1134 |
wp_die();
|
1135 |
}
|
1136 |
function wp_hook() {
|
1137 |
+
if( empty($_POST['action']) || $_POST['action'] != 'customize_save' ) {
|
1138 |
+
add_filter('loop_shop_columns', array( $this, 'loop_columns' ), 999 );
|
1139 |
+
}
|
1140 |
}
|
1141 |
public function replace_deprecated_with_new() {
|
1142 |
require_once dirname( __FILE__ ) . '/fixes/replace_widgets.php';
|
1414 |
return ob_get_clean();
|
1415 |
}
|
1416 |
public function woocommerce_shortcode_products_query( $query_vars, $atts = array(), $name = 'products' ) {
|
1417 |
+
if( apply_filters('berocket_aapf_wcshortcode_is_filtering', ( (! is_shop() && ! is_product_taxonomy() && ! is_product_category() && ! is_product_tag()) || ! empty($atts['berocket_aapf']) ), $query_vars, $atts, $name ) ) {
|
1418 |
$query_vars = $this->woocommerce_filter_query_vars($query_vars, $atts, $name);
|
1419 |
}
|
1420 |
return $query_vars;
|
1496 |
} else {
|
1497 |
$is_wc_main_query = $query->is_main_query();
|
1498 |
}
|
1499 |
+
$is_wc_main_query = apply_filters('berocket_aapf_check_is_wc_main_query', $is_wc_main_query, $query, $is_shortcode);
|
1500 |
if ( ( ( ! is_admin() && $is_wc_main_query ) || $is_shortcode ) && ( apply_filters( 'berocket_aapf_is_filtered_page_check', ! empty($_GET['filters']), 'apply_user_price', $query ) ) ) {
|
1501 |
br_aapf_args_converter( $query );
|
1502 |
if ( ! empty($_POST['price']) ) {
|
1527 |
} else {
|
1528 |
$is_wc_main_query = $query->is_main_query();
|
1529 |
}
|
1530 |
+
$is_wc_main_query = apply_filters('berocket_aapf_check_is_wc_main_query', $is_wc_main_query, $query, $is_shortcode);
|
1531 |
if( apply_filters( 'berocket_aapf_is_filtered_page_check', ! empty($_GET['filters']), 'apply_user_filters', $query ) ) {
|
1532 |
br_aapf_args_converter( $query );
|
1533 |
}
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ 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: 5.0.3
|
8 |
-
Stable tag: 1.3.0.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -187,6 +187,12 @@ You can try this plugin's admin side [here](http://berocket.com/product/woocomme
|
|
187 |
|
188 |
== Changelog ==
|
189 |
|
|
|
|
|
|
|
|
|
|
|
|
|
190 |
= 1.3.0.1 =
|
191 |
* Enhancement - Category condition in Filters ans Groups
|
192 |
* Fix - Replace widget with limitation by Categories
|
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: 5.0.3
|
8 |
+
Stable tag: 1.3.0.2
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
187 |
|
188 |
== Changelog ==
|
189 |
|
190 |
+
= 1.3.0.2 =
|
191 |
+
* Enhancement - Features tab added
|
192 |
+
* Fix - Font Awesome 5 on some themes
|
193 |
+
* Fix - Customizer do not save WooCommerce settings
|
194 |
+
* Fix - Hook to add filtering on some theme
|
195 |
+
|
196 |
= 1.3.0.1 =
|
197 |
* Enhancement - Category condition in Filters ans Groups
|
198 |
* Fix - Replace widget with limitation by Categories
|
templates/free/feature.php
ADDED
@@ -0,0 +1,146 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="row berocket_aapf_features">
|
2 |
+
<div class="col-md-6 col-xs-12">
|
3 |
+
<h4>Choose best layout for your filter</h4>
|
4 |
+
|
5 |
+
<h5>Our WooCommerce AJAX Products Filter offers several layouts including slider, image and color</h5>
|
6 |
+
|
7 |
+
<div class="demo-site"><a href="http://woocommerce-products-filter.berocket.com/shop/" target="_blank">[ demo site ]</a></div>
|
8 |
+
<img alt="Choose best layout for your filter" src="https://berocket.com/images/features/filters/filters-types.jpg" /></div>
|
9 |
+
|
10 |
+
<div class="col-md-6 col-xs-12">
|
11 |
+
<h4>Pagination and Order without page reloading</h4>
|
12 |
+
|
13 |
+
<h5>Users will get next page loaded ordered by their preferences and without page reloading</h5>
|
14 |
+
|
15 |
+
<div class="demo-site"><a href="http://woocommerce-products-filter.berocket.com/shop/" target="_blank">[ demo site ]</a></div>
|
16 |
+
<img alt="Pagination and Order without page reloading" src="https://berocket.com/images/features/filters/ajax_order_nav.jpg" /></div>
|
17 |
+
</div>
|
18 |
+
|
19 |
+
<div> </div>
|
20 |
+
|
21 |
+
<div class="row berocket_aapf_features">
|
22 |
+
<div class="col-md-6 col-xs-12">
|
23 |
+
<h4>Show filters above products</h4>
|
24 |
+
|
25 |
+
<h5>Need more space for the products? Say no to sidebars</h5>
|
26 |
+
|
27 |
+
<div class="demo-site">
|
28 |
+
<a href="http://woocommerce-products-filter.berocket.com/product-category/tshirts/" target="_blank">[ demo site ]</a>
|
29 |
+
</div>
|
30 |
+
<img alt="Show filters above products" src="https://berocket.com/images/features/filters/above_products.jpg" />
|
31 |
+
</div>
|
32 |
+
|
33 |
+
<div>
|
34 |
+
<h4>SEO friendly urls</h4>
|
35 |
+
|
36 |
+
<h5>Use Nice URLs with canonicalization and slugs instead of IDs</h5>
|
37 |
+
|
38 |
+
<div class="demo-site">
|
39 |
+
<a href="" target="_blank">[ demo site ]</a>
|
40 |
+
</div>
|
41 |
+
|
42 |
+
<div> </div>
|
43 |
+
<img alt="SEO friendly urls" src="https://berocket.com/images/features/filters/urls.jpg" />
|
44 |
+
</div>
|
45 |
+
|
46 |
+
<div>
|
47 |
+
<h4>Show results before filtering</h4>
|
48 |
+
|
49 |
+
<h5>Show users what they will get before filters applied. Fast and efficient</h5>
|
50 |
+
|
51 |
+
<div class="demo-site">
|
52 |
+
<a href="http://woocommerce-products-filter.berocket.com/woocommerce-products-filter-demo-4/" target="_blank">[ demo site ]</a>
|
53 |
+
</div>
|
54 |
+
|
55 |
+
<div> </div>
|
56 |
+
|
57 |
+
<img alt="Show results before filtering" src="https://berocket.com/images/features/filters/before_filter.jpg" />
|
58 |
+
</div>
|
59 |
+
|
60 |
+
<div>
|
61 |
+
<h4>Include/Exclude values</h4>
|
62 |
+
|
63 |
+
<h5>Show only needed values from the attribute or hide few</h5>
|
64 |
+
|
65 |
+
<div class="demo-site">
|
66 |
+
<a href="http://woocommerce-products-filter.berocket.com/woocommerce-products-filter-demo-4/" target="_blank">[ demo site ]</a>
|
67 |
+
</div>
|
68 |
+
<img alt="Include/Exclude values" src="https://berocket.com/images/features/filters/include_exclude.jpg" />
|
69 |
+
</div>
|
70 |
+
|
71 |
+
<div>
|
72 |
+
<h4>Search Box on any page</h4>
|
73 |
+
|
74 |
+
<h5>Users can pre-fill filters before visiting shop page</h5>
|
75 |
+
|
76 |
+
<div class="demo-site">
|
77 |
+
<a href="http://woocommerce-products-filter.berocket.com/" target="_blank">[ demo site ]</a>
|
78 |
+
</div>
|
79 |
+
<img alt="Search Box on any page" src="https://berocket.com/images/features/filters/searchbox.jpg" />
|
80 |
+
</div>
|
81 |
+
|
82 |
+
<div>
|
83 |
+
<h4>Update filters with user needs</h4>
|
84 |
+
|
85 |
+
<h5>Hate "No Products!" message? Hide values without products on the go</h5>
|
86 |
+
|
87 |
+
<div class="demo-site">
|
88 |
+
<a href="http://woocommerce-products-filter.berocket.com/shop/" target="_blank">[ demo site ]</a>
|
89 |
+
</div>
|
90 |
+
|
91 |
+
<div> </div>
|
92 |
+
<img alt="Update filters with user needs" src="https://berocket.com/images/features/filters/reload.jpg" />
|
93 |
+
</div>
|
94 |
+
|
95 |
+
<div>
|
96 |
+
<h4>Brands<br />
|
97 |
+
<small>(require our Brands plugin)</small></h4>
|
98 |
+
|
99 |
+
<h5>Users love brands. Help them find favorite brands faster</h5>
|
100 |
+
|
101 |
+
<div class="demo-site">
|
102 |
+
<a href="http://woocommerce-products-filter.berocket.com/woocommerce-products-filter-demo-5/" target="_blank">[ demo site ]</a>
|
103 |
+
</div>
|
104 |
+
<img alt="Brands" src="https://berocket.com/images/features/filters/brands.jpg" />
|
105 |
+
</div>
|
106 |
+
|
107 |
+
<div>
|
108 |
+
<h4>Price Ranges and Sliders for Attributes</h4>
|
109 |
+
|
110 |
+
<h5>Love sliders? Use them now for the attributes too!</h5>
|
111 |
+
|
112 |
+
<div class="demo-site">
|
113 |
+
<a href="http://woocommerce-products-filter.berocket.com/woocommerce-products-filter-demo-2/" target="_blank">[ demo site ]</a>
|
114 |
+
</div>
|
115 |
+
<img alt="Price Ranges and Sliders for Attributes" src="https://berocket.com/images/features/filters/range_slider.jpg" />
|
116 |
+
</div>
|
117 |
+
|
118 |
+
|
119 |
+
<div>
|
120 |
+
<h4>WPML and Polylang compatibility</h4>
|
121 |
+
|
122 |
+
<h5>EASILY TRANSLATE THE PLUGIN TO OTHER LANGUAGES WITH THE POWERFUL WPML AND POLYLANG TOOLS</h5>
|
123 |
+
<img alt="WPML and Polylang compatibility" src="https://berocket.com/img/docs/wpml_polylang.png" />
|
124 |
+
</div>
|
125 |
+
</div>
|
126 |
+
<style>
|
127 |
+
.berocket_aapf_features img {
|
128 |
+
max-width: 100%;
|
129 |
+
margin:auto;
|
130 |
+
display: block;
|
131 |
+
}
|
132 |
+
.berocket_aapf_features h4,
|
133 |
+
.berocket_aapf_features h5,
|
134 |
+
.berocket_aapf_features .demo-site {
|
135 |
+
text-align: center;
|
136 |
+
}
|
137 |
+
.berocket_aapf_features h5 {
|
138 |
+
font-size: 17px;
|
139 |
+
font-weight: 500;
|
140 |
+
}
|
141 |
+
.berocket_aapf_features h4 {
|
142 |
+
font-size: 26px;
|
143 |
+
font-weight: 700;
|
144 |
+
text-transform: uppercase;
|
145 |
+
}
|
146 |
+
</style>
|
templates/free/free/feature.php
ADDED
@@ -0,0 +1,146 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="row berocket_aapf_features">
|
2 |
+
<div class="col-md-6 col-xs-12">
|
3 |
+
<h4>Choose best layout for your filter</h4>
|
4 |
+
|
5 |
+
<h5>Our WooCommerce AJAX Products Filter offers several layouts including slider, image and color</h5>
|
6 |
+
|
7 |
+
<div class="demo-site"><a href="http://woocommerce-products-filter.berocket.com/shop/" target="_blank">[ demo site ]</a></div>
|
8 |
+
<img alt="Choose best layout for your filter" src="https://berocket.com/images/features/filters/filters-types.jpg" /></div>
|
9 |
+
|
10 |
+
<div class="col-md-6 col-xs-12">
|
11 |
+
<h4>Pagination and Order without page reloading</h4>
|
12 |
+
|
13 |
+
<h5>Users will get next page loaded ordered by their preferences and without page reloading</h5>
|
14 |
+
|
15 |
+
<div class="demo-site"><a href="http://woocommerce-products-filter.berocket.com/shop/" target="_blank">[ demo site ]</a></div>
|
16 |
+
<img alt="Pagination and Order without page reloading" src="https://berocket.com/images/features/filters/ajax_order_nav.jpg" /></div>
|
17 |
+
</div>
|
18 |
+
|
19 |
+
<div> </div>
|
20 |
+
|
21 |
+
<div class="row berocket_aapf_features">
|
22 |
+
<div class="col-md-6 col-xs-12">
|
23 |
+
<h4>Show filters above products</h4>
|
24 |
+
|
25 |
+
<h5>Need more space for the products? Say no to sidebars</h5>
|
26 |
+
|
27 |
+
<div class="demo-site">
|
28 |
+
<a href="http://woocommerce-products-filter.berocket.com/product-category/tshirts/" target="_blank">[ demo site ]</a>
|
29 |
+
</div>
|
30 |
+
<img alt="Show filters above products" src="https://berocket.com/images/features/filters/above_products.jpg" />
|
31 |
+
</div>
|
32 |
+
|
33 |
+
<div>
|
34 |
+
<h4>SEO friendly urls</h4>
|
35 |
+
|
36 |
+
<h5>Use Nice URLs with canonicalization and slugs instead of IDs</h5>
|
37 |
+
|
38 |
+
<div class="demo-site">
|
39 |
+
<a href="" target="_blank">[ demo site ]</a>
|
40 |
+
</div>
|
41 |
+
|
42 |
+
<div> </div>
|
43 |
+
<img alt="SEO friendly urls" src="https://berocket.com/images/features/filters/urls.jpg" />
|
44 |
+
</div>
|
45 |
+
|
46 |
+
<div>
|
47 |
+
<h4>Show results before filtering</h4>
|
48 |
+
|
49 |
+
<h5>Show users what they will get before filters applied. Fast and efficient</h5>
|
50 |
+
|
51 |
+
<div class="demo-site">
|
52 |
+
<a href="http://woocommerce-products-filter.berocket.com/woocommerce-products-filter-demo-4/" target="_blank">[ demo site ]</a>
|
53 |
+
</div>
|
54 |
+
|
55 |
+
<div> </div>
|
56 |
+
|
57 |
+
<img alt="Show results before filtering" src="https://berocket.com/images/features/filters/before_filter.jpg" />
|
58 |
+
</div>
|
59 |
+
|
60 |
+
<div>
|
61 |
+
<h4>Include/Exclude values</h4>
|
62 |
+
|
63 |
+
<h5>Show only needed values from the attribute or hide few</h5>
|
64 |
+
|
65 |
+
<div class="demo-site">
|
66 |
+
<a href="http://woocommerce-products-filter.berocket.com/woocommerce-products-filter-demo-4/" target="_blank">[ demo site ]</a>
|
67 |
+
</div>
|
68 |
+
<img alt="Include/Exclude values" src="https://berocket.com/images/features/filters/include_exclude.jpg" />
|
69 |
+
</div>
|
70 |
+
|
71 |
+
<div>
|
72 |
+
<h4>Search Box on any page</h4>
|
73 |
+
|
74 |
+
<h5>Users can pre-fill filters before visiting shop page</h5>
|
75 |
+
|
76 |
+
<div class="demo-site">
|
77 |
+
<a href="http://woocommerce-products-filter.berocket.com/" target="_blank">[ demo site ]</a>
|
78 |
+
</div>
|
79 |
+
<img alt="Search Box on any page" src="https://berocket.com/images/features/filters/searchbox.jpg" />
|
80 |
+
</div>
|
81 |
+
|
82 |
+
<div>
|
83 |
+
<h4>Update filters with user needs</h4>
|
84 |
+
|
85 |
+
<h5>Hate "No Products!" message? Hide values without products on the go</h5>
|
86 |
+
|
87 |
+
<div class="demo-site">
|
88 |
+
<a href="http://woocommerce-products-filter.berocket.com/shop/" target="_blank">[ demo site ]</a>
|
89 |
+
</div>
|
90 |
+
|
91 |
+
<div> </div>
|
92 |
+
<img alt="Update filters with user needs" src="https://berocket.com/images/features/filters/reload.jpg" />
|
93 |
+
</div>
|
94 |
+
|
95 |
+
<div>
|
96 |
+
<h4>Brands<br />
|
97 |
+
<small>(require our Brands plugin)</small></h4>
|
98 |
+
|
99 |
+
<h5>Users love brands. Help them find favorite brands faster</h5>
|
100 |
+
|
101 |
+
<div class="demo-site">
|
102 |
+
<a href="http://woocommerce-products-filter.berocket.com/woocommerce-products-filter-demo-5/" target="_blank">[ demo site ]</a>
|
103 |
+
</div>
|
104 |
+
<img alt="Brands" src="https://berocket.com/images/features/filters/brands.jpg" />
|
105 |
+
</div>
|
106 |
+
|
107 |
+
<div>
|
108 |
+
<h4>Price Ranges and Sliders for Attributes</h4>
|
109 |
+
|
110 |
+
<h5>Love sliders? Use them now for the attributes too!</h5>
|
111 |
+
|
112 |
+
<div class="demo-site">
|
113 |
+
<a href="http://woocommerce-products-filter.berocket.com/woocommerce-products-filter-demo-2/" target="_blank">[ demo site ]</a>
|
114 |
+
</div>
|
115 |
+
<img alt="Price Ranges and Sliders for Attributes" src="https://berocket.com/images/features/filters/range_slider.jpg" />
|
116 |
+
</div>
|
117 |
+
|
118 |
+
|
119 |
+
<div>
|
120 |
+
<h4>WPML and Polylang compatibility</h4>
|
121 |
+
|
122 |
+
<h5>EASILY TRANSLATE THE PLUGIN TO OTHER LANGUAGES WITH THE POWERFUL WPML AND POLYLANG TOOLS</h5>
|
123 |
+
<img alt="WPML and Polylang compatibility" src="https://berocket.com/img/docs/wpml_polylang.png" />
|
124 |
+
</div>
|
125 |
+
</div>
|
126 |
+
<style>
|
127 |
+
.berocket_aapf_features img {
|
128 |
+
max-width: 100%;
|
129 |
+
margin:auto;
|
130 |
+
display: block;
|
131 |
+
}
|
132 |
+
.berocket_aapf_features h4,
|
133 |
+
.berocket_aapf_features h5,
|
134 |
+
.berocket_aapf_features .demo-site {
|
135 |
+
text-align: center;
|
136 |
+
}
|
137 |
+
.berocket_aapf_features h5 {
|
138 |
+
font-size: 17px;
|
139 |
+
font-weight: 500;
|
140 |
+
}
|
141 |
+
.berocket_aapf_features h4 {
|
142 |
+
font-size: 26px;
|
143 |
+
font-weight: 700;
|
144 |
+
text-transform: uppercase;
|
145 |
+
}
|
146 |
+
</style>
|
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: Unlimited AJAX products filters to make your shop perfect
|
6 |
-
* Version: 1.3.0.
|
7 |
* Author: BeRocket
|
8 |
* Requires at least: 4.0
|
9 |
* Author URI: http://berocket.com
|
@@ -13,6 +13,6 @@
|
|
13 |
* Domain Path: /languages/
|
14 |
* WC tested up to: 3.5.3
|
15 |
*/
|
16 |
-
define( "BeRocket_AJAX_filters_version", '1.3.0.
|
17 |
define( "BeRocket_AJAX_filters_file", __FILE__ );
|
18 |
include_once('main.php');
|
3 |
* Plugin Name: Advanced AJAX Product Filters for WooCommerce
|
4 |
* Plugin URI: https://wordpress.org/plugins/woocommerce-ajax-filters/
|
5 |
* Description: Unlimited AJAX products filters to make your shop perfect
|
6 |
+
* Version: 1.3.0.2
|
7 |
* Author: BeRocket
|
8 |
* Requires at least: 4.0
|
9 |
* Author URI: http://berocket.com
|
13 |
* Domain Path: /languages/
|
14 |
* WC tested up to: 3.5.3
|
15 |
*/
|
16 |
+
define( "BeRocket_AJAX_filters_version", '1.3.0.2' );
|
17 |
define( "BeRocket_AJAX_filters_file", __FILE__ );
|
18 |
include_once('main.php');
|