Advanced Woo Search - Version 2.39

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 Icon 128x128 Advanced Woo Search
Version 2.39
Comparing to
See all releases

Code changes from version 2.38 to 2.39

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.38
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.8.0
12
  */
13
 
14
 
@@ -96,7 +96,7 @@ final class AWS_Main {
96
  */
97
  private function define_constants() {
98
 
99
- $this->define( 'AWS_VERSION', '2.38' );
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 . '/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') . ': ',
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 . '/assets/img/' . $img ); ?>') no-repeat 50% 50%;"></span>
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 . '/assets/img/pro/feature1.png' . '" />';
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 . '/assets/img/pro/feature2.png' . '" />';
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 . '/assets/img/pro/feature3.png' . '" />';
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 . '/assets/img/pro/feature4.png' . '" />';
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 . '/assets/img/pro/feature5.png' . '" />';
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 . '/assets/img/pro/feature6.png' . '" />';
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 . '/assets/img/pro/feature7.png' . '" />';
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 . '/assets/img/pro/feature8.png' . '" />';
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 . '/assets/img/pro/feature9.png' . '" />';
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 . '/assets/img/pro/feature10.png' . '" />';
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 . '/assets/img/pro/feature11.png' . '" />';
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 . '/assets/img/pro/feature12.png' . '" />';
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 . '/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' ),
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: 15px;
629
  }
630
- .oceanwp-theme #searchform-overlay .aws-container {
 
 
 
 
 
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.querySelector("#searchform-overlay form");
667
  if ( formOverlay ) {
668
- formOverlay.innerHTML += '<a href="#" class="search-overlay-close"><span></span></a>';
 
 
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
- jQuery(this).aws_search();
 
 
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
- return AWS_Search::factory()->search( $keyword );
 
 
 
 
 
 
 
 
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 . '/includes/modules/bb-aws-search/',
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 . '/assets/img/logo-small.png',
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 . '/includes/modules/divi/divi.css', array(), AWS_VERSION
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 . '/includes/modules/elementor-widget/elementor.css', array(), AWS_VERSION
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 . '/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
  );
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.38
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