Version Description
( 2021-11-09 ) = * Add - Support for Falang translation plugin * Add - Support for WR Nitro theme * Add - Support for Deals for WooCommerce plugin * Update - Tested with WC 5.9 * Update - Seamless integration js script * Update - Botiga theme support. Fix styles and back to top button * Update - Support for OceanWP theme * Fix - PHP 8.0 notice for Divi builder search module * Fix - Prevent unexpected output when running search function * Fix - URL for plugin assets. Remove additional slash * Fix - Issue with SKU search for singular terms
Download this release
Release Info
Developer | Mihail Barinov |
Plugin | Advanced Woo Search |
Version | 2.39 |
Comparing to | |
See all releases |
Code changes from version 2.38 to 2.39
- advanced-woo-search.php +6 -6
- includes/admin/class-aws-admin-fields.php +1 -1
- includes/admin/class-aws-admin-page-premium.php +12 -12
- includes/admin/class-aws-admin.php +2 -2
- includes/class-aws-helpers.php +4 -0
- includes/class-aws-integrations.php +167 -11
- includes/class-aws-search.php +9 -1
- includes/class-aws-table-data.php +37 -1
- includes/modules/bb-aws-search/class-aws-bb-module.php +1 -1
- includes/modules/class-aws-wpbakery.php +1 -1
- includes/modules/divi/class-divi-aws-module.php +2 -2
- includes/modules/elementor-widget/class-elementor-aws-init.php +1 -1
- includes/modules/gutenberg/class-aws-gutenberg-init.php +2 -2
- readme.txt +14 -1
advanced-woo-search.php
CHANGED
@@ -3,12 +3,12 @@
|
|
3 |
/*
|
4 |
Plugin Name: Advanced Woo Search
|
5 |
Description: Advance ajax WooCommerce product search.
|
6 |
-
Version: 2.
|
7 |
Author: ILLID
|
8 |
Author URI: https://advanced-woo-search.com/
|
9 |
Text Domain: advanced-woo-search
|
10 |
WC requires at least: 3.0.0
|
11 |
-
WC tested up to: 5.
|
12 |
*/
|
13 |
|
14 |
|
@@ -96,7 +96,7 @@ final class AWS_Main {
|
|
96 |
*/
|
97 |
private function define_constants() {
|
98 |
|
99 |
-
$this->define( 'AWS_VERSION', '2.
|
100 |
|
101 |
$this->define( 'AWS_DIR', plugin_dir_path( AWS_FILE ) );
|
102 |
$this->define( 'AWS_URL', plugin_dir_url( AWS_FILE ) );
|
@@ -169,11 +169,11 @@ final class AWS_Main {
|
|
169 |
* Load assets for search form
|
170 |
*/
|
171 |
public function load_scripts() {
|
172 |
-
wp_enqueue_style( 'aws-style', AWS_URL . '
|
173 |
if ( is_rtl() ) {
|
174 |
-
wp_enqueue_style( 'aws-style-rtl', AWS_URL . '
|
175 |
}
|
176 |
-
wp_enqueue_script('aws-script', AWS_URL . '
|
177 |
wp_localize_script('aws-script', 'aws_vars', array(
|
178 |
'sale' => __('Sale!', 'advanced-woo-search'),
|
179 |
'sku' => __('SKU', 'advanced-woo-search') . ': ',
|
3 |
/*
|
4 |
Plugin Name: Advanced Woo Search
|
5 |
Description: Advance ajax WooCommerce product search.
|
6 |
+
Version: 2.39
|
7 |
Author: ILLID
|
8 |
Author URI: https://advanced-woo-search.com/
|
9 |
Text Domain: advanced-woo-search
|
10 |
WC requires at least: 3.0.0
|
11 |
+
WC tested up to: 5.9.0
|
12 |
*/
|
13 |
|
14 |
|
96 |
*/
|
97 |
private function define_constants() {
|
98 |
|
99 |
+
$this->define( 'AWS_VERSION', '2.39' );
|
100 |
|
101 |
$this->define( 'AWS_DIR', plugin_dir_path( AWS_FILE ) );
|
102 |
$this->define( 'AWS_URL', plugin_dir_url( AWS_FILE ) );
|
169 |
* Load assets for search form
|
170 |
*/
|
171 |
public function load_scripts() {
|
172 |
+
wp_enqueue_style( 'aws-style', AWS_URL . 'assets/css/common.css', array(), AWS_VERSION );
|
173 |
if ( is_rtl() ) {
|
174 |
+
wp_enqueue_style( 'aws-style-rtl', AWS_URL . 'assets/css/common-rtl.css', array(), AWS_VERSION );
|
175 |
}
|
176 |
+
wp_enqueue_script('aws-script', AWS_URL . 'assets/js/common.js', array('jquery'), AWS_VERSION, true);
|
177 |
wp_localize_script('aws-script', 'aws_vars', array(
|
178 |
'sale' => __('Sale!', 'advanced-woo-search'),
|
179 |
'sku' => __('SKU', 'advanced-woo-search') . ': ',
|
includes/admin/class-aws-admin-fields.php
CHANGED
@@ -181,7 +181,7 @@ if ( ! class_exists( 'AWS_Admin_Fields' ) ) :
|
|
181 |
<?php foreach ( $value['choices'] as $val => $img ) { ?>
|
182 |
<li class="option">
|
183 |
<input class="radio" type="radio" name="<?php echo esc_attr( $value['id'] ); ?>" id="<?php echo esc_attr( $value['id'].$val ); ?>" value="<?php echo esc_attr( $val ); ?>" <?php checked( $plugin_options[ $value['id'] ], $val ); ?>>
|
184 |
-
<span class="ico" style="background: url('<?php echo esc_url( AWS_URL . '
|
185 |
</li>
|
186 |
<?php } ?>
|
187 |
</ul>
|
181 |
<?php foreach ( $value['choices'] as $val => $img ) { ?>
|
182 |
<li class="option">
|
183 |
<input class="radio" type="radio" name="<?php echo esc_attr( $value['id'] ); ?>" id="<?php echo esc_attr( $value['id'].$val ); ?>" value="<?php echo esc_attr( $val ); ?>" <?php checked( $plugin_options[ $value['id'] ], $val ); ?>>
|
184 |
+
<span class="ico" style="background: url('<?php echo esc_url( AWS_URL . 'assets/img/' . $img ); ?>') no-repeat 50% 50%;"></span>
|
185 |
</li>
|
186 |
<?php } ?>
|
187 |
</ul>
|
includes/admin/class-aws-admin-page-premium.php
CHANGED
@@ -62,7 +62,7 @@ if ( ! class_exists( 'AWS_Admin_Page_Premium' ) ) :
|
|
62 |
echo '</div>';
|
63 |
echo '<div class="column">';
|
64 |
echo '<div class="img">';
|
65 |
-
echo '<img alt="" src="' . AWS_URL . '
|
66 |
echo '</div>';
|
67 |
echo '</div>';
|
68 |
echo '</div>';
|
@@ -79,7 +79,7 @@ if ( ! class_exists( 'AWS_Admin_Page_Premium' ) ) :
|
|
79 |
echo '</div>';
|
80 |
echo '<div class="column">';
|
81 |
echo '<div class="img">';
|
82 |
-
echo '<img alt="" src="' . AWS_URL . '
|
83 |
echo '</div>';
|
84 |
echo '</div>';
|
85 |
echo '</div>';
|
@@ -96,7 +96,7 @@ if ( ! class_exists( 'AWS_Admin_Page_Premium' ) ) :
|
|
96 |
echo '</div>';
|
97 |
echo '<div class="column">';
|
98 |
echo '<div class="img">';
|
99 |
-
echo '<img alt="" src="' . AWS_URL . '
|
100 |
echo '</div>';
|
101 |
echo '</div>';
|
102 |
echo '</div>';
|
@@ -113,7 +113,7 @@ if ( ! class_exists( 'AWS_Admin_Page_Premium' ) ) :
|
|
113 |
echo '</div>';
|
114 |
echo '<div class="column">';
|
115 |
echo '<div class="img">';
|
116 |
-
echo '<img alt="" src="' . AWS_URL . '
|
117 |
echo '</div>';
|
118 |
echo '</div>';
|
119 |
echo '</div>';
|
@@ -130,7 +130,7 @@ if ( ! class_exists( 'AWS_Admin_Page_Premium' ) ) :
|
|
130 |
echo '</div>';
|
131 |
echo '<div class="column">';
|
132 |
echo '<div class="img">';
|
133 |
-
echo '<img alt="" src="' . AWS_URL . '
|
134 |
echo '</div>';
|
135 |
echo '</div>';
|
136 |
echo '</div>';
|
@@ -147,7 +147,7 @@ if ( ! class_exists( 'AWS_Admin_Page_Premium' ) ) :
|
|
147 |
echo '</div>';
|
148 |
echo '<div class="column">';
|
149 |
echo '<div class="img">';
|
150 |
-
echo '<img alt="" src="' . AWS_URL . '
|
151 |
echo '</div>';
|
152 |
echo '</div>';
|
153 |
echo '</div>';
|
@@ -164,7 +164,7 @@ if ( ! class_exists( 'AWS_Admin_Page_Premium' ) ) :
|
|
164 |
echo '</div>';
|
165 |
echo '<div class="column">';
|
166 |
echo '<div class="img">';
|
167 |
-
echo '<img alt="" src="' . AWS_URL . '
|
168 |
echo '</div>';
|
169 |
echo '</div>';
|
170 |
echo '</div>';
|
@@ -181,7 +181,7 @@ if ( ! class_exists( 'AWS_Admin_Page_Premium' ) ) :
|
|
181 |
echo '</div>';
|
182 |
echo '<div class="column">';
|
183 |
echo '<div class="img">';
|
184 |
-
echo '<img alt="" src="' . AWS_URL . '
|
185 |
echo '</div>';
|
186 |
echo '</div>';
|
187 |
echo '</div>';
|
@@ -198,7 +198,7 @@ if ( ! class_exists( 'AWS_Admin_Page_Premium' ) ) :
|
|
198 |
echo '</div>';
|
199 |
echo '<div class="column">';
|
200 |
echo '<div class="img">';
|
201 |
-
echo '<img alt="" src="' . AWS_URL . '
|
202 |
echo '</div>';
|
203 |
echo '</div>';
|
204 |
echo '</div>';
|
@@ -215,7 +215,7 @@ if ( ! class_exists( 'AWS_Admin_Page_Premium' ) ) :
|
|
215 |
echo '</div>';
|
216 |
echo '<div class="column">';
|
217 |
echo '<div class="img">';
|
218 |
-
echo '<img alt="" src="' . AWS_URL . '
|
219 |
echo '</div>';
|
220 |
echo '</div>';
|
221 |
echo '</div>';
|
@@ -232,7 +232,7 @@ if ( ! class_exists( 'AWS_Admin_Page_Premium' ) ) :
|
|
232 |
echo '</div>';
|
233 |
echo '<div class="column">';
|
234 |
echo '<div class="img">';
|
235 |
-
echo '<img alt="" src="' . AWS_URL . '
|
236 |
echo '</div>';
|
237 |
echo '</div>';
|
238 |
echo '</div>';
|
@@ -248,7 +248,7 @@ if ( ! class_exists( 'AWS_Admin_Page_Premium' ) ) :
|
|
248 |
echo '</div>';
|
249 |
echo '<div class="column">';
|
250 |
echo '<div class="img">';
|
251 |
-
echo '<img alt="" src="' . AWS_URL . '
|
252 |
echo '</div>';
|
253 |
echo '</div>';
|
254 |
echo '</div>';
|
62 |
echo '</div>';
|
63 |
echo '<div class="column">';
|
64 |
echo '<div class="img">';
|
65 |
+
echo '<img alt="" src="' . AWS_URL . 'assets/img/pro/feature1.png' . '" />';
|
66 |
echo '</div>';
|
67 |
echo '</div>';
|
68 |
echo '</div>';
|
79 |
echo '</div>';
|
80 |
echo '<div class="column">';
|
81 |
echo '<div class="img">';
|
82 |
+
echo '<img alt="" src="' . AWS_URL . 'assets/img/pro/feature2.png' . '" />';
|
83 |
echo '</div>';
|
84 |
echo '</div>';
|
85 |
echo '</div>';
|
96 |
echo '</div>';
|
97 |
echo '<div class="column">';
|
98 |
echo '<div class="img">';
|
99 |
+
echo '<img alt="" src="' . AWS_URL . 'assets/img/pro/feature3.png' . '" />';
|
100 |
echo '</div>';
|
101 |
echo '</div>';
|
102 |
echo '</div>';
|
113 |
echo '</div>';
|
114 |
echo '<div class="column">';
|
115 |
echo '<div class="img">';
|
116 |
+
echo '<img alt="" src="' . AWS_URL . 'assets/img/pro/feature4.png' . '" />';
|
117 |
echo '</div>';
|
118 |
echo '</div>';
|
119 |
echo '</div>';
|
130 |
echo '</div>';
|
131 |
echo '<div class="column">';
|
132 |
echo '<div class="img">';
|
133 |
+
echo '<img alt="" src="' . AWS_URL . 'assets/img/pro/feature5.png' . '" />';
|
134 |
echo '</div>';
|
135 |
echo '</div>';
|
136 |
echo '</div>';
|
147 |
echo '</div>';
|
148 |
echo '<div class="column">';
|
149 |
echo '<div class="img">';
|
150 |
+
echo '<img alt="" src="' . AWS_URL . 'assets/img/pro/feature6.png' . '" />';
|
151 |
echo '</div>';
|
152 |
echo '</div>';
|
153 |
echo '</div>';
|
164 |
echo '</div>';
|
165 |
echo '<div class="column">';
|
166 |
echo '<div class="img">';
|
167 |
+
echo '<img alt="" src="' . AWS_URL . 'assets/img/pro/feature7.png' . '" />';
|
168 |
echo '</div>';
|
169 |
echo '</div>';
|
170 |
echo '</div>';
|
181 |
echo '</div>';
|
182 |
echo '<div class="column">';
|
183 |
echo '<div class="img">';
|
184 |
+
echo '<img alt="" src="' . AWS_URL . 'assets/img/pro/feature8.png' . '" />';
|
185 |
echo '</div>';
|
186 |
echo '</div>';
|
187 |
echo '</div>';
|
198 |
echo '</div>';
|
199 |
echo '<div class="column">';
|
200 |
echo '<div class="img">';
|
201 |
+
echo '<img alt="" src="' . AWS_URL . 'assets/img/pro/feature9.png' . '" />';
|
202 |
echo '</div>';
|
203 |
echo '</div>';
|
204 |
echo '</div>';
|
215 |
echo '</div>';
|
216 |
echo '<div class="column">';
|
217 |
echo '<div class="img">';
|
218 |
+
echo '<img alt="" src="' . AWS_URL . 'assets/img/pro/feature10.png' . '" />';
|
219 |
echo '</div>';
|
220 |
echo '</div>';
|
221 |
echo '</div>';
|
232 |
echo '</div>';
|
233 |
echo '<div class="column">';
|
234 |
echo '<div class="img">';
|
235 |
+
echo '<img alt="" src="' . AWS_URL . 'assets/img/pro/feature11.png' . '" />';
|
236 |
echo '</div>';
|
237 |
echo '</div>';
|
238 |
echo '</div>';
|
248 |
echo '</div>';
|
249 |
echo '<div class="column">';
|
250 |
echo '<div class="img">';
|
251 |
+
echo '<img alt="" src="' . AWS_URL . 'assets/img/pro/feature12.png' . '" />';
|
252 |
echo '</div>';
|
253 |
echo '</div>';
|
254 |
echo '</div>';
|
includes/admin/class-aws-admin.php
CHANGED
@@ -162,10 +162,10 @@ class AWS_Admin {
|
|
162 |
public function admin_enqueue_scripts() {
|
163 |
|
164 |
if ( isset( $_GET['page'] ) && $_GET['page'] == 'aws-options' ) {
|
165 |
-
wp_enqueue_style( 'plugin-admin-style', AWS_URL . '
|
166 |
wp_enqueue_script( 'jquery' );
|
167 |
wp_enqueue_script( 'jquery-ui-sortable' );
|
168 |
-
wp_enqueue_script( 'plugin-admin-scripts', AWS_URL . '
|
169 |
wp_localize_script( 'plugin-admin-scripts', 'aws_vars', array(
|
170 |
'ajaxurl' => admin_url( 'admin-ajax.php', 'relative' ),
|
171 |
'ajax_nonce' => wp_create_nonce( 'aws_admin_ajax_nonce' ),
|
162 |
public function admin_enqueue_scripts() {
|
163 |
|
164 |
if ( isset( $_GET['page'] ) && $_GET['page'] == 'aws-options' ) {
|
165 |
+
wp_enqueue_style( 'plugin-admin-style', AWS_URL . 'assets/css/admin.css', array(), AWS_VERSION );
|
166 |
wp_enqueue_script( 'jquery' );
|
167 |
wp_enqueue_script( 'jquery-ui-sortable' );
|
168 |
+
wp_enqueue_script( 'plugin-admin-scripts', AWS_URL . 'assets/js/admin.js', array('jquery'), AWS_VERSION );
|
169 |
wp_localize_script( 'plugin-admin-scripts', 'aws_vars', array(
|
170 |
'ajaxurl' => admin_url( 'admin-ajax.php', 'relative' ),
|
171 |
'ajax_nonce' => wp_create_nonce( 'aws_admin_ajax_nonce' ),
|
includes/class-aws-helpers.php
CHANGED
@@ -720,6 +720,10 @@ if ( ! class_exists( 'AWS_Helpers' ) ) :
|
|
720 |
|
721 |
$current_lang = qtranxf_getLanguage();
|
722 |
|
|
|
|
|
|
|
|
|
723 |
}
|
724 |
|
725 |
return $current_lang;
|
720 |
|
721 |
$current_lang = qtranxf_getLanguage();
|
722 |
|
723 |
+
} elseif ( is_plugin_active( 'falang/falang.php' ) ) {
|
724 |
+
|
725 |
+
$current_lang = Falang()->get_current_language()->slug;
|
726 |
+
|
727 |
}
|
728 |
|
729 |
return $current_lang;
|
includes/class-aws-integrations.php
CHANGED
@@ -187,6 +187,15 @@ if ( ! class_exists( 'AWS_Integrations' ) ) :
|
|
187 |
add_action( 'wp_head', array( $this, 'royal_wp_head' ) );
|
188 |
}
|
189 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
190 |
}
|
191 |
|
192 |
add_action( 'wp_head', array( $this, 'head_js_integration' ) );
|
@@ -276,6 +285,11 @@ if ( ! class_exists( 'AWS_Integrations' ) ) :
|
|
276 |
add_filter( 'aws_search_pre_filter_products', array( $this, 'woocs_pricing_ajax_fix' ) );
|
277 |
}
|
278 |
|
|
|
|
|
|
|
|
|
|
|
279 |
}
|
280 |
|
281 |
/**
|
@@ -625,9 +639,14 @@ if ( ! class_exists( 'AWS_Integrations' ) ) :
|
|
625 |
<style>
|
626 |
.oceanwp-theme #searchform-header-replace .aws-container {
|
627 |
padding-right: 45px;
|
628 |
-
padding-top:
|
629 |
}
|
630 |
-
.oceanwp-theme #searchform-
|
|
|
|
|
|
|
|
|
|
|
631 |
position: absolute;
|
632 |
top: 50%;
|
633 |
left: 0;
|
@@ -635,17 +654,29 @@ if ( ! class_exists( 'AWS_Integrations' ) ) :
|
|
635 |
width: 100%;
|
636 |
text-align: center;
|
637 |
}
|
638 |
-
.oceanwp-theme #searchform-overlay .aws-container form
|
|
|
639 |
position: static;
|
640 |
}
|
641 |
-
.oceanwp-theme #searchform-overlay a.search-overlay-close
|
|
|
642 |
top: -100px;
|
643 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
644 |
#sidr .aws-container {
|
645 |
margin: 30px 20px 0;
|
646 |
}
|
647 |
-
#medium-searchform .aws-container,
|
648 |
-
#vertical-searchform .aws-container {
|
649 |
background: #f5f5f5;
|
650 |
}
|
651 |
#medium-searchform .aws-container .aws-search-form .aws-search-field {
|
@@ -663,16 +694,18 @@ if ( ! class_exists( 'AWS_Integrations' ) ) :
|
|
663 |
window.addEventListener('load', function() {
|
664 |
|
665 |
window.setTimeout(function(){
|
666 |
-
var formOverlay = document.
|
667 |
if ( formOverlay ) {
|
668 |
-
|
|
|
|
|
669 |
}
|
670 |
}, 300);
|
671 |
|
672 |
jQuery(document).on( 'click', 'a.search-overlay-close', function (e) {
|
673 |
|
674 |
-
jQuery( '#searchform-overlay' ).removeClass( 'active' );
|
675 |
-
jQuery( '#searchform-overlay' ).fadeOut( 200 );
|
676 |
|
677 |
setTimeout( function() {
|
678 |
jQuery( 'html' ).css( 'overflow', 'visible' );
|
@@ -1346,6 +1379,55 @@ if ( ! class_exists( 'AWS_Integrations' ) ) :
|
|
1346 |
</style>
|
1347 |
<?php }
|
1348 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1349 |
/*
|
1350 |
* Exclude product categories
|
1351 |
*/
|
@@ -1542,6 +1624,10 @@ if ( ! class_exists( 'AWS_Integrations' ) ) :
|
|
1542 |
$selectors[] = '#search-form-container form';
|
1543 |
}
|
1544 |
|
|
|
|
|
|
|
|
|
1545 |
// WCFM - WooCommerce Multivendor Marketplace
|
1546 |
if ( class_exists( 'WCFMmp' ) ) {
|
1547 |
$selectors[] = '#wcfmmp-store .woocommerce-product-search';
|
@@ -1598,7 +1684,9 @@ if ( ! class_exists( 'AWS_Integrations' ) ) :
|
|
1598 |
|
1599 |
window.setTimeout(function(){
|
1600 |
jQuery('.aws-js-seamless').each( function() {
|
1601 |
-
|
|
|
|
|
1602 |
});
|
1603 |
}, 1000);
|
1604 |
|
@@ -2000,6 +2088,74 @@ if ( ! class_exists( 'AWS_Integrations' ) ) :
|
|
2000 |
return $products_array;
|
2001 |
}
|
2002 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2003 |
}
|
2004 |
|
2005 |
endif;
|
187 |
add_action( 'wp_head', array( $this, 'royal_wp_head' ) );
|
188 |
}
|
189 |
|
190 |
+
if ( 'WR Nitro' === $this->current_theme ) {
|
191 |
+
add_action( 'wp_head', array( $this, 'wr_nitro_wp_head' ) );
|
192 |
+
}
|
193 |
+
|
194 |
+
if ( 'Botiga' === $this->current_theme ) {
|
195 |
+
add_filter( 'aws_searchbox_markup', array( $this, 'botiga_aws_searchbox_markup' ) );
|
196 |
+
add_action( 'wp_head', array( $this, 'botiga_wp_head' ) );
|
197 |
+
}
|
198 |
+
|
199 |
}
|
200 |
|
201 |
add_action( 'wp_head', array( $this, 'head_js_integration' ) );
|
285 |
add_filter( 'aws_search_pre_filter_products', array( $this, 'woocs_pricing_ajax_fix' ) );
|
286 |
}
|
287 |
|
288 |
+
// Deals for WooCommerce
|
289 |
+
if ( function_exists( 'DFW' ) ) {
|
290 |
+
add_filter( 'aws_search_pre_filter_products', array( $this, 'dfm_search_pre_filter_products' ) );
|
291 |
+
}
|
292 |
+
|
293 |
}
|
294 |
|
295 |
/**
|
639 |
<style>
|
640 |
.oceanwp-theme #searchform-header-replace .aws-container {
|
641 |
padding-right: 45px;
|
642 |
+
padding-top: 0;
|
643 |
}
|
644 |
+
.oceanwp-theme #searchform-header-replace .aws-container .aws-search-form .aws-form-btn {
|
645 |
+
background: transparent;
|
646 |
+
border: none;
|
647 |
+
}
|
648 |
+
.oceanwp-theme #searchform-overlay .aws-container,
|
649 |
+
.oceanwp-theme #icon-searchform-overlay .aws-container {
|
650 |
position: absolute;
|
651 |
top: 50%;
|
652 |
left: 0;
|
654 |
width: 100%;
|
655 |
text-align: center;
|
656 |
}
|
657 |
+
.oceanwp-theme #searchform-overlay .aws-container form,
|
658 |
+
.oceanwp-theme #icon-searchform-overlay .aws-container form {
|
659 |
position: static;
|
660 |
}
|
661 |
+
.oceanwp-theme #searchform-overlay a.search-overlay-close,
|
662 |
+
.oceanwp-theme #icon-searchform-overlay a.search-overlay-close {
|
663 |
top: -100px;
|
664 |
}
|
665 |
+
.oceanwp-theme #searchform-overlay .aws-container .aws-search-form,
|
666 |
+
.oceanwp-theme #icon-searchform-overlay .aws-container .aws-search-form,
|
667 |
+
.oceanwp-theme #searchform-overlay .aws-container .aws-search-form .aws-form-btn,
|
668 |
+
.oceanwp-theme #icon-searchform-overlay .aws-container .aws-search-form .aws-form-btn {
|
669 |
+
background: transparent;
|
670 |
+
}
|
671 |
+
.oceanwp-theme #searchform-overlay .aws-container .aws-search-form .aws-form-btn,
|
672 |
+
.oceanwp-theme #icon-searchform-overlay .aws-container .aws-search-form .aws-form-btn {
|
673 |
+
border: none;
|
674 |
+
}
|
675 |
#sidr .aws-container {
|
676 |
margin: 30px 20px 0;
|
677 |
}
|
678 |
+
#medium-searchform .aws-container .aws-search-form,
|
679 |
+
#vertical-searchform .aws-container .aws-search-form {
|
680 |
background: #f5f5f5;
|
681 |
}
|
682 |
#medium-searchform .aws-container .aws-search-form .aws-search-field {
|
694 |
window.addEventListener('load', function() {
|
695 |
|
696 |
window.setTimeout(function(){
|
697 |
+
var formOverlay = document.querySelectorAll("#searchform-overlay form, #icon-searchform-overlay form");
|
698 |
if ( formOverlay ) {
|
699 |
+
for (var i = 0; i < formOverlay.length; i++) {
|
700 |
+
formOverlay[i].innerHTML += '<a href="#" class="search-overlay-close"><span></span></a>';
|
701 |
+
}
|
702 |
}
|
703 |
}, 300);
|
704 |
|
705 |
jQuery(document).on( 'click', 'a.search-overlay-close', function (e) {
|
706 |
|
707 |
+
jQuery( '#searchform-overlay, #icon-searchform-overlay' ).removeClass( 'active' );
|
708 |
+
jQuery( '#searchform-overlay, #icon-searchform-overlay' ).fadeOut( 200 );
|
709 |
|
710 |
setTimeout( function() {
|
711 |
jQuery( 'html' ).css( 'overflow', 'visible' );
|
1379 |
</style>
|
1380 |
<?php }
|
1381 |
|
1382 |
+
/*
|
1383 |
+
* WR Nitro theme styles
|
1384 |
+
*/
|
1385 |
+
public function wr_nitro_wp_head() { ?>
|
1386 |
+
|
1387 |
+
<style>
|
1388 |
+
|
1389 |
+
.hb-search-fs .aws-container {
|
1390 |
+
width: 500px;
|
1391 |
+
max-width: 500px;
|
1392 |
+
position: absolute;
|
1393 |
+
top: 50%;
|
1394 |
+
left: 50%;
|
1395 |
+
-webkit-transform: translate(-50%, -50%);
|
1396 |
+
transform: translate(-50%, -50%);
|
1397 |
+
}
|
1398 |
+
|
1399 |
+
.wrls-header-outer .aws-container {
|
1400 |
+
width: 650px!important;
|
1401 |
+
margin: 0;
|
1402 |
+
padding: 0 35px 0 10px;
|
1403 |
+
height: 38px;
|
1404 |
+
}
|
1405 |
+
|
1406 |
+
</style>
|
1407 |
+
|
1408 |
+
<?php }
|
1409 |
+
|
1410 |
+
/*
|
1411 |
+
* Botiga theme fix back to top button
|
1412 |
+
*/
|
1413 |
+
public function botiga_aws_searchbox_markup( $markup ) {
|
1414 |
+
$markup = str_replace( '</form>', '<span class="search-submit"></span></form>', $markup );
|
1415 |
+
return $markup;
|
1416 |
+
}
|
1417 |
+
|
1418 |
+
/*
|
1419 |
+
* Botiga theme fix back to top button
|
1420 |
+
*/
|
1421 |
+
public function botiga_wp_head() { ?>
|
1422 |
+
<style>
|
1423 |
+
.header-search-form .aws-container {
|
1424 |
+
max-width: 720px;
|
1425 |
+
margin-left: auto;
|
1426 |
+
margin-right: auto;
|
1427 |
+
}
|
1428 |
+
</style>
|
1429 |
+
<?php }
|
1430 |
+
|
1431 |
/*
|
1432 |
* Exclude product categories
|
1433 |
*/
|
1624 |
$selectors[] = '#search-form-container form';
|
1625 |
}
|
1626 |
|
1627 |
+
if ( 'WR Nitro' === $this->current_theme ) {
|
1628 |
+
$selectors[] = '.search-form-inner form';
|
1629 |
+
}
|
1630 |
+
|
1631 |
// WCFM - WooCommerce Multivendor Marketplace
|
1632 |
if ( class_exists( 'WCFMmp' ) ) {
|
1633 |
$selectors[] = '#wcfmmp-store .woocommerce-product-search';
|
1684 |
|
1685 |
window.setTimeout(function(){
|
1686 |
jQuery('.aws-js-seamless').each( function() {
|
1687 |
+
if ( typeof aws_search !== 'undefined' ) {
|
1688 |
+
jQuery(this).aws_search();
|
1689 |
+
}
|
1690 |
});
|
1691 |
}, 1000);
|
1692 |
|
2088 |
return $products_array;
|
2089 |
}
|
2090 |
|
2091 |
+
/*
|
2092 |
+
* Deals for WooCommerce: Add deals prices
|
2093 |
+
*/
|
2094 |
+
public function dfm_search_pre_filter_products( $products_array ) {
|
2095 |
+
|
2096 |
+
foreach( $products_array as $key => $pr_arr ) {
|
2097 |
+
|
2098 |
+
if ( isset( $pr_arr['price'] ) && $pr_arr['price'] && function_exists( 'dfw_get_deal_ids' ) ) {
|
2099 |
+
|
2100 |
+
$product = wc_get_product( $pr_arr['id'] );
|
2101 |
+
$deal_html = '';
|
2102 |
+
|
2103 |
+
if ( is_a( $product, 'WC_Product' ) && $product->get_type() == 'simple' ) {
|
2104 |
+
$args = array(
|
2105 |
+
'meta_key' => 'dfw_deal_type_id',
|
2106 |
+
'meta_value' => $product->get_id(),
|
2107 |
+
);
|
2108 |
+
|
2109 |
+
$deal_ids = dfw_get_deal_ids($args);
|
2110 |
+
|
2111 |
+
if ( function_exists( 'dfw_check_is_array' ) && dfw_check_is_array( $deal_ids ) ) {
|
2112 |
+
|
2113 |
+
$deal_id = reset($deal_ids);
|
2114 |
+
$deal = function_exists('dfw_get_deal') ? dfw_get_deal($deal_id) : false;
|
2115 |
+
|
2116 |
+
if ( is_object( $deal ) ) {
|
2117 |
+
|
2118 |
+
if ( 'product' == $deal->get_type() ) {
|
2119 |
+
$product_id = $deal->get_deal_type_id() ;
|
2120 |
+
|
2121 |
+
if ( 'yes' == get_post_meta( $product_id , 'dfw_enable_deal' , true ) && class_exists('DFW_Product_Handler') ) {
|
2122 |
+
$matched_data = DFW_Product_Handler::get_matched_rules( $product , $product_id , $deal_id , $deal->get_type() ) ;
|
2123 |
+
|
2124 |
+
if ( function_exists('dfw_check_is_array') && dfw_check_is_array( $matched_data ) ) {
|
2125 |
+
if ( isset( $matched_data[ 'price' ] ) && isset( $matched_data[ 'rule_id' ] ) ) {
|
2126 |
+
|
2127 |
+
ob_start();
|
2128 |
+
dfw_get_template( 'product-deals/deal-price.php' , array( 'product' => $product , 'deal_price' => $matched_data[ 'price' ] , 'class_name' => '' ) ) ;
|
2129 |
+
$deal_html = ob_get_contents();
|
2130 |
+
ob_end_clean();
|
2131 |
+
|
2132 |
+
$deal_html = str_replace('class="price "', 'class=""', $deal_html );
|
2133 |
+
$deal_html = str_replace('<p ', '<span ', $deal_html );
|
2134 |
+
$deal_html = str_replace('</p>', '</span>', $deal_html );
|
2135 |
+
|
2136 |
+
}
|
2137 |
+
}
|
2138 |
+
}
|
2139 |
+
}
|
2140 |
+
|
2141 |
+
}
|
2142 |
+
|
2143 |
+
}
|
2144 |
+
|
2145 |
+
}
|
2146 |
+
|
2147 |
+
if ( $deal_html ) {
|
2148 |
+
$products_array[$key]['price'] .= $deal_html;
|
2149 |
+
}
|
2150 |
+
|
2151 |
+
}
|
2152 |
+
|
2153 |
+
}
|
2154 |
+
|
2155 |
+
return $products_array;
|
2156 |
+
|
2157 |
+
}
|
2158 |
+
|
2159 |
}
|
2160 |
|
2161 |
endif;
|
includes/class-aws-search.php
CHANGED
@@ -817,5 +817,13 @@ endif;
|
|
817 |
AWS_Search::factory();
|
818 |
|
819 |
function aws_search( $keyword = '' ) {
|
820 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
821 |
}
|
817 |
AWS_Search::factory();
|
818 |
|
819 |
function aws_search( $keyword = '' ) {
|
820 |
+
|
821 |
+
ob_start();
|
822 |
+
|
823 |
+
$search_results = AWS_Search::factory()->search( $keyword );
|
824 |
+
|
825 |
+
ob_end_clean();
|
826 |
+
|
827 |
+
return $search_results;
|
828 |
+
|
829 |
}
|
includes/class-aws-table-data.php
CHANGED
@@ -310,6 +310,37 @@ if ( ! class_exists( 'AWS_Table_Data' ) ) :
|
|
310 |
|
311 |
}
|
312 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
313 |
}
|
314 |
|
315 |
$this->scraped_data[] = $data;
|
@@ -334,6 +365,8 @@ if ( ! class_exists( 'AWS_Table_Data' ) ) :
|
|
334 |
$lang = pll_get_post_language( $this->id ) ? pll_get_post_language( $this->id ) : pll_default_language();
|
335 |
} elseif ( function_exists( 'qtranxf_getLanguageDefault' ) ) {
|
336 |
$lang = qtranxf_getLanguageDefault();
|
|
|
|
|
337 |
}
|
338 |
|
339 |
return $lang;
|
@@ -361,7 +394,7 @@ if ( ! class_exists( 'AWS_Table_Data' ) ) :
|
|
361 |
"=",
|
362 |
"¨",
|
363 |
"’",
|
364 |
-
"
|
365 |
"”",
|
366 |
"“",
|
367 |
"„",
|
@@ -416,6 +449,9 @@ if ( ! class_exists( 'AWS_Table_Data' ) ) :
|
|
416 |
if ( ! isset( $str_new_array[$new_array_key] ) ) {
|
417 |
$str_new_array[$new_array_key] = $str_item_num;
|
418 |
}
|
|
|
|
|
|
|
419 |
} else {
|
420 |
if ( ! isset( $str_new_array[$str_item_term] ) ) {
|
421 |
$str_new_array[$str_item_term] = $str_item_num;
|
310 |
|
311 |
}
|
312 |
|
313 |
+
} elseif ( is_plugin_active( 'falang/falang.php' ) ) {
|
314 |
+
$falang_post = new \Falang\Core\Post($data['id']);
|
315 |
+
$is_translated = $falang_post->is_post_type_translatable($falang_post->post_type );
|
316 |
+
|
317 |
+
if ($is_translated){
|
318 |
+
$languages = Falang()->get_model()->get_languages_list( array( 'hide_default' => true ) );
|
319 |
+
|
320 |
+
foreach ($languages as $language) {
|
321 |
+
$translated_post_data = array();
|
322 |
+
$translated_post_data['id'] = $data['id'];
|
323 |
+
$translated_post_data['in_stock'] = $data['in_stock'];
|
324 |
+
$translated_post_data['on_sale'] = $data['on_sale'];
|
325 |
+
$translated_post_data['visibility'] = $data['visibility'];
|
326 |
+
$translated_post_data['lang'] = $language->slug;
|
327 |
+
$translated_post_data['terms'] = array();
|
328 |
+
|
329 |
+
$post = get_post($data['id']);
|
330 |
+
$translated_title = $falang_post->translate_post_field($post, 'post_title', $language);
|
331 |
+
$translated_content = $falang_post->translate_post_field($post, 'post_content', $language);
|
332 |
+
$translated_excerpt = $falang_post->translate_post_field($post, 'post_excerpt', $language);
|
333 |
+
|
334 |
+
$translated_post_data['terms']['title'] = $this->options['index']['title'] ? $this->extract_terms( $translated_title, 'title' ) : '';
|
335 |
+
$translated_post_data['terms']['content'] = $this->options['index']['content'] ? $this->extract_terms( $translated_content, 'content' ) : '';
|
336 |
+
$translated_post_data['terms']['excerpt'] = $this->options['index']['excerpt'] ? $this->extract_terms( $translated_excerpt, 'excerpt' ) : '';
|
337 |
+
$translated_post_data['terms']['sku'] = $this->options['index']['sku'] ? $this->extract_terms( $sku, 'sku' ) : '';
|
338 |
+
$translated_post_data['terms']['id'] = $this->options['index']['id'] ? $this->extract_terms( $data['id'], 'id' ) : '';
|
339 |
+
|
340 |
+
$this->scraped_data[] = $translated_post_data;
|
341 |
+
|
342 |
+
}
|
343 |
+
}
|
344 |
}
|
345 |
|
346 |
$this->scraped_data[] = $data;
|
365 |
$lang = pll_get_post_language( $this->id ) ? pll_get_post_language( $this->id ) : pll_default_language();
|
366 |
} elseif ( function_exists( 'qtranxf_getLanguageDefault' ) ) {
|
367 |
$lang = qtranxf_getLanguageDefault();
|
368 |
+
} elseif ( is_plugin_active( 'falang/falang.php' ) ) {
|
369 |
+
$lang = Falang()->get_current_language()->slug;
|
370 |
}
|
371 |
|
372 |
return $lang;
|
394 |
"=",
|
395 |
"¨",
|
396 |
"’",
|
397 |
+
"â€",
|
398 |
"”",
|
399 |
"“",
|
400 |
"„",
|
449 |
if ( ! isset( $str_new_array[$new_array_key] ) ) {
|
450 |
$str_new_array[$new_array_key] = $str_item_num;
|
451 |
}
|
452 |
+
if ( $source === 'sku' ) {
|
453 |
+
$str_new_array[$str_item_term] = $str_item_num;
|
454 |
+
}
|
455 |
} else {
|
456 |
if ( ! isset( $str_new_array[$str_item_term] ) ) {
|
457 |
$str_new_array[$str_item_term] = $str_item_num;
|
includes/modules/bb-aws-search/class-aws-bb-module.php
CHANGED
@@ -9,7 +9,7 @@ class AwsSearchModule extends FLBuilderModule {
|
|
9 |
'description' => __( 'WooCommerce search form', 'advanced-woo-search' ),
|
10 |
'category' => __( 'WooCommerce', 'fl-builder' ),
|
11 |
'dir' => AWS_DIR . '/includes/modules/bb-aws-search/',
|
12 |
-
'url' => AWS_URL . '
|
13 |
'icon' => 'search.svg',
|
14 |
'partial_refresh' => true,
|
15 |
));
|
9 |
'description' => __( 'WooCommerce search form', 'advanced-woo-search' ),
|
10 |
'category' => __( 'WooCommerce', 'fl-builder' ),
|
11 |
'dir' => AWS_DIR . '/includes/modules/bb-aws-search/',
|
12 |
+
'url' => AWS_URL . 'includes/modules/bb-aws-search/',
|
13 |
'icon' => 'search.svg',
|
14 |
'partial_refresh' => true,
|
15 |
));
|
includes/modules/class-aws-wpbakery.php
CHANGED
@@ -24,7 +24,7 @@ class AWS_WPBakery extends WPBakeryShortCode {
|
|
24 |
'description' => __( 'Plugin search form', 'advanced-woo-search'),
|
25 |
'category' => __( 'Advanced Woo Search', 'advanced-woo-search'),
|
26 |
"class" => "vc_aws_form",
|
27 |
-
"icon" => AWS_URL . '
|
28 |
"controls" => "full",
|
29 |
'params' => array(
|
30 |
|
24 |
'description' => __( 'Plugin search form', 'advanced-woo-search'),
|
25 |
'category' => __( 'Advanced Woo Search', 'advanced-woo-search'),
|
26 |
"class" => "vc_aws_form",
|
27 |
+
"icon" => AWS_URL . 'assets/img/logo-small.png',
|
28 |
"controls" => "full",
|
29 |
'params' => array(
|
30 |
|
includes/modules/divi/class-divi-aws-module.php
CHANGED
@@ -18,7 +18,7 @@ function aws_divi_register_modules() {
|
|
18 |
|
19 |
wp_enqueue_style(
|
20 |
'aws-divi',
|
21 |
-
AWS_URL . '
|
22 |
);
|
23 |
|
24 |
return array(
|
@@ -32,7 +32,7 @@ function aws_divi_register_modules() {
|
|
32 |
);
|
33 |
}
|
34 |
|
35 |
-
public function render( $unprocessed_props, $content = null, $render_slug ) {
|
36 |
if ( function_exists( 'aws_get_search_form' ) ) {
|
37 |
$search_form = aws_get_search_form( false );
|
38 |
if ( $this->props['placeholder'] ) {
|
18 |
|
19 |
wp_enqueue_style(
|
20 |
'aws-divi',
|
21 |
+
AWS_URL . 'includes/modules/divi/divi.css', array(), AWS_VERSION
|
22 |
);
|
23 |
|
24 |
return array(
|
32 |
);
|
33 |
}
|
34 |
|
35 |
+
public function render( $unprocessed_props, $content = null, $render_slug = null ) {
|
36 |
if ( function_exists( 'aws_get_search_form' ) ) {
|
37 |
$search_form = aws_get_search_form( false );
|
38 |
if ( $this->props['placeholder'] ) {
|
includes/modules/elementor-widget/class-elementor-aws-init.php
CHANGED
@@ -71,7 +71,7 @@ if ( ! class_exists( 'AWS_Elementor_Init' ) ) :
|
|
71 |
|
72 |
wp_enqueue_style(
|
73 |
'aws-icons',
|
74 |
-
AWS_URL . '
|
75 |
);
|
76 |
|
77 |
}
|
71 |
|
72 |
wp_enqueue_style(
|
73 |
'aws-icons',
|
74 |
+
AWS_URL . 'includes/modules/elementor-widget/elementor.css', array(), AWS_VERSION
|
75 |
);
|
76 |
|
77 |
}
|
includes/modules/gutenberg/class-aws-gutenberg-init.php
CHANGED
@@ -65,14 +65,14 @@ if (!class_exists('AWS_Gutenberg_Init')) :
|
|
65 |
|
66 |
wp_register_script(
|
67 |
'aws-gutenberg-search-block',
|
68 |
-
AWS_URL . '
|
69 |
$scripts,
|
70 |
AWS_VERSION
|
71 |
);
|
72 |
|
73 |
wp_register_style(
|
74 |
'aws-gutenberg-styles-editor',
|
75 |
-
AWS_URL . '
|
76 |
array( 'wp-edit-blocks' ),
|
77 |
AWS_VERSION
|
78 |
);
|
65 |
|
66 |
wp_register_script(
|
67 |
'aws-gutenberg-search-block',
|
68 |
+
AWS_URL . 'includes/modules/gutenberg/aws-gutenberg-search-block.js',
|
69 |
$scripts,
|
70 |
AWS_VERSION
|
71 |
);
|
72 |
|
73 |
wp_register_style(
|
74 |
'aws-gutenberg-styles-editor',
|
75 |
+
AWS_URL . 'assets/css/common.css',
|
76 |
array( 'wp-edit-blocks' ),
|
77 |
AWS_VERSION
|
78 |
);
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_i
|
|
4 |
Tags: widget, plugin, woocommerce, search, product search, woocommerce search, ajax search, live search, custom search, ajax, shortcode, better search, relevance search, relevant search, search by sku, search plugin, shop, store, wordpress search, wp ajax search, wp search, wp search plugin, sidebar, ecommerce, merketing, products, category search, instant-search, search highlight, woocommerce advanced search, woocommerce live search, WooCommerce Plugin, woocommerce product search
|
5 |
Requires at least: 4.0
|
6 |
Tested up to: 5.8
|
7 |
-
Stable tag: 2.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -167,6 +167,19 @@ Yep. This plugin is always compatible with the latest version of Woocommerce?
|
|
167 |
|
168 |
== Changelog ==
|
169 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
170 |
= 2.38 ( 2021-10-25 ) =
|
171 |
* Add - Support for WooCommerce Product Filter by WooBeWoo plugin
|
172 |
* Add - Quantity change buttons for products search results. Visible on mobile devices
|
4 |
Tags: widget, plugin, woocommerce, search, product search, woocommerce search, ajax search, live search, custom search, ajax, shortcode, better search, relevance search, relevant search, search by sku, search plugin, shop, store, wordpress search, wp ajax search, wp search, wp search plugin, sidebar, ecommerce, merketing, products, category search, instant-search, search highlight, woocommerce advanced search, woocommerce live search, WooCommerce Plugin, woocommerce product search
|
5 |
Requires at least: 4.0
|
6 |
Tested up to: 5.8
|
7 |
+
Stable tag: 2.39
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
167 |
|
168 |
== Changelog ==
|
169 |
|
170 |
+
= 2.39 ( 2021-11-09 ) =
|
171 |
+
* Add - Support for Falang translation plugin
|
172 |
+
* Add - Support for WR Nitro theme
|
173 |
+
* Add - Support for Deals for WooCommerce plugin
|
174 |
+
* Update - Tested with WC 5.9
|
175 |
+
* Update - Seamless integration js script
|
176 |
+
* Update - Botiga theme support. Fix styles and back to top button
|
177 |
+
* Update - Support for OceanWP theme
|
178 |
+
* Fix - PHP 8.0 notice for Divi builder search module
|
179 |
+
* Fix - Prevent unexpected output when running search function
|
180 |
+
* Fix - URL for plugin assets. Remove additional slash
|
181 |
+
* Fix - Issue with SKU search for singular terms
|
182 |
+
|
183 |
= 2.38 ( 2021-10-25 ) =
|
184 |
* Add - Support for WooCommerce Product Filter by WooBeWoo plugin
|
185 |
* Add - Quantity change buttons for products search results. Visible on mobile devices
|