Passed
Push — master ( 98d99d...dc8b25 )
by Warwick
03:36 queued 11s
created
classes/class-frontend.php 2 patches
Indentation   +949 added lines, -949 removed lines patch added patch discarded remove patch
@@ -9,683 +9,683 @@  discard block
 block discarded – undo
9 9
 
10 10
 class Frontend {
11 11
 
12
-	/**
13
-	 * Holds class instance
14
-	 *
15
-	 * @since 1.0.0
16
-	 *
17
-	 * @var      object \lsx\search\classes\Frontend()
18
-	 */
19
-	protected static $instance = null;
20
-
21
-	public $options = false;
22
-
23
-	public $tabs = false;
24
-
25
-	public $facet_data = false;
26
-
27
-	/**
28
-	 * Determine weather or not search is enabled for this page.
29
-	 *
30
-	 * @var boolean
31
-	 */
32
-	public $search_enabled = false;
33
-
34
-	public $search_core_suffix = false;
35
-
36
-	public $search_prefix = false;
37
-
38
-	/**
39
-	 * Holds the post types enabled
40
-	 *
41
-	 * @var array
42
-	 */
43
-	public $post_types = array();
44
-
45
-	/**
46
-	 * Holds the taxonomies enabled for search
47
-	 *
48
-	 * @var array
49
-	 */
50
-	public $taxonomies = array();
51
-
52
-	/**
53
-	 * If the current search page has posts or not
54
-	 *
55
-	 * @var boolean
56
-	 */
57
-	public $has_posts = false;
58
-
59
-	/**
60
-	 * If we are using the CMB2 options or not.
61
-	 *
62
-	 * @var boolean
63
-	 */
64
-	public $new_options = false;
65
-
66
-	/**
67
-	 * Construct method.
68
-	 */
69
-	public function __construct() {
70
-		$this->options = \lsx\search\includes\get_options();
71
-		$this->load_classes();
72
-
73
-		add_filter( 'wpseo_json_ld_search_url', array( $this, 'change_json_ld_search_url' ), 10, 1 );
74
-		add_action( 'wp', array( $this, 'set_vars' ), 21 );
75
-		add_action( 'wp', array( $this, 'set_facetwp_vars' ), 22 );
76
-		add_action( 'wp', array( $this, 'core' ), 23 );
77
-		add_action( 'lsx_body_top', array( $this, 'check_for_results' ) );
78
-
79
-		add_filter( 'pre_get_posts', array( $this, 'ignore_sticky_search' ) );
80
-		add_action( 'pre_get_posts', array( $this, 'filter_post_types' ) );
81
-
82
-		add_filter( 'lsx_search_post_types', array( $this, 'register_post_types' ) );
83
-		add_filter( 'lsx_search_taxonomies', array( $this, 'register_taxonomies' ) );
84
-		add_filter( 'lsx_search_post_types_plural', array( $this, 'register_post_type_tabs' ) );
85
-		add_filter( 'facetwp_sort_options', array( $this, 'facetwp_sort_options' ), 10, 2 );
86
-		add_filter( 'wp_kses_allowed_html', array( $this, 'kses_allowed_html' ), 20, 2 );
87
-		add_filter( 'get_search_query', array( $this, 'get_search_query' ) );
88
-
89
-		// Redirects.
90
-		add_action( 'template_redirect', array( $this, 'pretty_search_redirect' ) );
91
-		add_filter( 'pre_get_posts', array( $this, 'pretty_search_parse_query' ) );
92
-
93
-		add_action( 'lsx_search_sidebar_top', array( $this, 'search_sidebar_top' ) );
94
-		add_filter( 'facetwp_facet_html', array( $this, 'search_facet_html' ), 10, 2 );
95
-	}
96
-
97
-	/**
98
-	 * Return an instance of this class.
99
-	 *
100
-	 * @since 1.0.0
101
-	 *
102
-	 * @return    object \lsx\member_directory\search\Frontend()    A single instance of this class.
103
-	 */
104
-	public static function get_instance() {
105
-		// If the single instance hasn't been set, set it now.
106
-		if ( null === self::$instance ) {
107
-			self::$instance = new self();
108
-		}
109
-		return self::$instance;
110
-	}
111
-
112
-	/**
113
-	 * Loads the variable classes and the static classes.
114
-	 */
115
-	private function load_classes() {
116
-		require_once LSX_SEARCH_PATH . 'classes/frontend/class-layout.php';
117
-		$this->layout = frontend\Layout::get_instance();
118
-	}
119
-
120
-	/**
121
-	 * Check all settings.
122
-	 */
123
-	public function set_vars() {
124
-		$post_type = '';
125
-
126
-		$this->post_types      = apply_filters( 'lsx_search_post_types', array() );
127
-		$this->taxonomies      = apply_filters( 'lsx_search_taxonomies', array() );
128
-		$this->tabs            = apply_filters( 'lsx_search_post_types_plural', array() );
129
-		$this->options         = apply_filters( 'lsx_search_options', $this->options );
130
-		$this->post_types      = get_post_types();
131
-		$this->post_type_slugs = array(
132
-			'post'        => 'posts',
133
-			'project'     => 'projects',
134
-			'service'     => 'services',
135
-			'team'        => 'team',
136
-			'testimonial' => 'testimonials',
137
-			'video'       => 'videos',
138
-			'product'     => 'products',
139
-		);
140
-		$this->set_search_prefix();
141
-		$this->get_cmb2_options();
142
-		$this->search_enabled = apply_filters( 'lsx_search_enabled', $this->is_search_enabled(), $this );
143
-		$this->search_prefix  = apply_filters( 'lsx_search_prefix', $this->search_prefix, $this );
144
-	}
145
-
146
-	private function get_cmb2_options() {
147
-		$cmb2_options = get_option( 'lsx-search-settings' );
148
-		if ( false !== $cmb2_options && ! empty( $cmb2_options ) ) {
149
-			$this->set_search_prefix( true );
150
-			$this->options['display'] = $cmb2_options;
151
-			foreach ( $this->options['display'] as $option_key => $option_value ) {
152
-				if ( is_array( $option_value ) && ! empty( $option_value ) ) {
153
-					$new_values = array();
154
-					foreach ( $option_value as $empty_key => $key_value ) {
155
-						$new_values[ $key_value ] = 'on';
156
-					}
157
-					$this->options['display'][ $option_key ] = $new_values;
158
-				}
159
-			}
160
-			$this->new_options = true;
161
-			$this->disable_to_search_actions();
162
-		}
163
-	}
164
-
165
-	private function disable_to_search_actions() {
166
-		global $lsx_to_search_fwp, $lsx_to_search;
167
-		if ( null !== $lsx_to_search ) {
168
-			// Redirects.
169
-			remove_filter( 'template_include', array( $lsx_to_search, 'search_template_include' ), 99 );
170
-			remove_action( 'template_redirect', array( $lsx_to_search, 'pretty_search_redirect' ) );
171
-			remove_filter( 'pre_get_posts', array( $lsx_to_search, 'pretty_search_parse_query' ) );
172
-
173
-			// Layout Filter.
174
-			remove_filter( 'lsx_layout', array( $lsx_to_search, 'lsx_layout' ), 20, 1 );
175
-			remove_filter( 'lsx_layout_selector', array( $lsx_to_search, 'lsx_layout_selector' ), 10, 4 );
176
-			remove_filter( 'lsx_to_archive_layout', array( $lsx_to_search, 'lsx_to_search_archive_layout' ), 10, 2 );
177
-
178
-			remove_action( 'lsx_search_sidebar_top', array( $lsx_to_search, 'search_sidebar_top' ) );
179
-			remove_action( 'pre_get_posts', array( $lsx_to_search, 'price_sorting' ), 100 );
180
-
181
-			//add_shortcode( 'lsx_search_form', array( 'LSX_TO_Search_Frontend', 'search_form' ) );
182
-			remove_filter( 'searchwp_short_circuit', array( $lsx_to_search, 'searchwp_short_circuit' ), 10, 2 );
183
-			remove_filter( 'get_search_query', array( $lsx_to_search, 'get_search_query' ) );
184
-			remove_filter( 'body_class', array( $lsx_to_search, 'to_add_search_url_class' ), 20 );
185
-
186
-			remove_filter( 'facetwp_preload_url_vars', array( $lsx_to_search, 'preload_url_vars' ), 10, 1 );
187
-			remove_filter( 'wpseo_json_ld_search_url', array( $lsx_to_search, 'change_json_ld_search_url' ), 10, 1 );
188
-		}
189
-		if ( null !== $lsx_to_search_fwp ) {
190
-			remove_filter( 'facetwp_indexer_row_data', array( $lsx_to_search_fwp, 'facetwp_index_row_data' ), 10, 2 );
191
-			remove_filter( 'facetwp_index_row', array( $lsx_to_search_fwp, 'facetwp_index_row' ), 10, 2 );
192
-
193
-			remove_filter( 'facetwp_sort_options', array( $lsx_to_search_fwp, 'facet_sort_options' ), 10, 2 );
194
-
195
-			remove_filter( 'facetwp_pager_html', array( $lsx_to_search_fwp, 'facetwp_pager_html' ), 10, 2 );
196
-			remove_filter( 'facetwp_result_count', array( $lsx_to_search_fwp, 'facetwp_result_count' ), 10, 2 );
197
-
198
-			remove_filter( 'facetwp_facet_html', array( $lsx_to_search_fwp, 'destination_facet_html' ), 10, 2 );
199
-			remove_filter( 'facetwp_facet_html', array( $lsx_to_search_fwp, 'slide_facet_html' ), 10, 2 );
200
-			remove_filter( 'facetwp_facet_html', array( $lsx_to_search_fwp, 'search_facet_html' ), 10, 2 );
201
-			remove_filter( 'facetwp_load_css', array( $lsx_to_search_fwp, 'facetwp_load_css' ), 10, 1 );
202
-
203
-			if ( class_exists( 'LSX_Currencies' ) ) {
204
-				remove_filter( 'facetwp_render_output', array( $lsx_to_search_fwp, 'slide_price_lsx_currencies' ), 10, 2 );
205
-			} else {
206
-				remove_filter( 'facetwp_render_output', array( $lsx_to_search_fwp, 'slide_price_to_currencies' ), 10, 2 );
207
-			}
208
-		}
209
-	}
210
-
211
-	/**
212
-	 * Returns if the search is enabled.
213
-	 *
214
-	 * @return boolean
215
-	 */
216
-	public function is_search_enabled() {
217
-		$search_enabled = false;
218
-
219
-		if ( false === $this->new_options ) {
220
-			if ( isset( $this->options['display'][ $this->search_prefix . '_enable_' . $this->search_core_suffix ] ) && ( ! empty( $this->options ) ) && 'on' == $this->options['display'][ $this->search_prefix . '_enable_' . $this->search_core_suffix ] ) {
221
-				$search_enabled = true;
222
-			}
223
-		} else {
224
-			$enable_prefix = $this->search_prefix;
225
-			if ( ! empty( $this->options ) && isset( $this->options['display'] ) && isset( $this->options['display'][ $enable_prefix . '_enable' ] ) && 'on' === $this->options['display'][ $enable_prefix . '_enable' ] ) {
226
-				$search_enabled = true;
227
-			}
228
-		}
229
-
230
-		// These are specific plugin exclusions.
231
-		if ( is_tax( array( 'wcpv_product_vendors' ) ) ) {
232
-			$search_enabled = false;
233
-		}
234
-		return $search_enabled;
235
-	}
236
-
237
-	/**
238
-	 * Sets the search prefix.
239
-	 *
240
-	 * @return void
241
-	 */
242
-	private function set_search_prefix( $new_prefixes = false ) {
243
-		$page_for_posts = get_option( 'page_for_posts' );
244
-		if ( false !== $new_prefixes ) {
245
-			$this->taxonomies = array();
246
-			$this->post_types = array();
247
-		}
248
-
249
-		if ( is_search() ) {
250
-			if ( false === $new_prefixes ) {
251
-				$this->search_core_suffix = 'core';
252
-				$this->search_prefix      = 'search';
253
-			} else {
254
-				$this->search_core_suffix = 'enable';
255
-				$this->search_prefix      = 'engine_search';
256
-			}
257
-		} elseif ( is_post_type_archive( $this->post_types ) || is_tax() || is_page( $page_for_posts ) || is_home() || is_category() || is_tag() ) {
258
-			if ( false === $new_prefixes ) {
259
-				$this->search_core_suffix = 'search';
260
-			} else {
261
-				$this->search_core_suffix = 'enable';
262
-			}
263
-
264
-			if ( is_tax() ) {
265
-				$tax = get_query_var( 'taxonomy' );
266
-				$tax = get_taxonomy( $tax );
267
-				$post_type = $tax->object_type[0];
268
-			} else if ( is_page( $page_for_posts ) || is_category() || is_tag() || is_home() ) {
269
-				$post_type = 'post';
270
-			} else {
271
-				$post_type = get_query_var( 'post_type' );
272
-			}
273
-
274
-			if ( false === $new_prefixes ) {
275
-				if ( isset( $this->tabs[ $post_type ] ) ) {
276
-					$this->search_prefix = $this->tabs[ $post_type ] . '_archive';
277
-				}
278
-			} else {
279
-				$this->search_prefix = $post_type . '_search';
280
-			}
281
-		}
282
-	}
283
-
284
-	/**
285
-	 * Sets the FacetWP variables.
286
-	 */
287
-	public function set_facetwp_vars() {
288
-
289
-		if ( class_exists( 'FacetWP' ) ) {
290
-			$facet_data = FWP()->helper->get_facets();
291
-		}
292
-
293
-		$this->facet_data = array();
294
-
295
-		$this->facet_data['search_form'] = array(
296
-			'name' => 'search_form',
297
-			'label' => esc_html__( 'Search Form', 'lsx-search' ),
298
-		);
299
-
300
-		if ( ! empty( $facet_data ) && is_array( $facet_data ) ) {
301
-			foreach ( $facet_data as $facet ) {
302
-				$this->facet_data[ $facet['name'] ] = $facet;
303
-			}
304
-		}
305
-	}
306
-
307
-	/**
308
-	 * Check all settings.
309
-	 */
310
-	public function core() {
311
-
312
-		if ( true === $this->search_enabled ) {
313
-			add_action( 'wp_enqueue_scripts', array( $this, 'assets' ), 999 );
314
-
315
-			add_filter( 'lsx_layout', array( $this, 'lsx_layout' ), 20, 1 );
316
-			add_filter( 'lsx_layout_selector', array( $this, 'lsx_layout_selector' ), 10, 4 );
317
-			add_filter( 'lsx_slot_class', array( $this, 'change_slot_column_class' ) );
318
-			add_action( 'lsx_entry_top', array( $this, 'add_label_to_title' ) );
319
-			add_filter( 'body_class', array( $this, 'body_class' ), 10 );
320
-
321
-			add_filter( 'lsx_blog_customizer_top_of_blog_action', array( $this, 'top_of_blog_action' ), 10, 1 );
322
-			add_filter( 'lsx_blog_customizer_blog_description_class', array( $this, 'blog_description_class' ), 10, 1 );
323
-
324
-			if ( class_exists( 'LSX_Videos' ) ) {
325
-				global $lsx_videos_frontend;
326
-				remove_action( 'lsx_content_top', array( $lsx_videos_frontend, 'categories_tabs' ), 15 );
327
-			}
328
-
329
-			add_filter( 'lsx_paging_nav_disable', '__return_true' );
330
-			add_action( 'lsx_content_top', array( $this, 'facet_top_bar' ) );
331
-			add_action( 'lsx_content_top', array( $this, 'facetwp_tempate_open' ) );
332
-			add_action( 'lsx_content_bottom', array( $this, 'facetwp_tempate_close' ) );
333
-			add_action( 'lsx_content_bottom', array( $this, 'facet_bottom_bar' ) );
334
-
335
-			if ( ! empty( $this->options['display'][ $this->search_prefix . '_layout' ] ) && '1c' !== $this->options['display'][ $this->search_prefix . '_layout' ] ) {
336
-				add_filter( 'lsx_sidebar_enable', array( $this, 'lsx_sidebar_enable' ), 10, 1 );
337
-			}
338
-
339
-			add_action( 'lsx_content_wrap_before', array( $this, 'search_sidebar' ), 150 );
340
-
341
-			if ( class_exists( 'WooCommerce' ) && ( is_shop() || is_product_category() || is_product_tag() ) ) {
342
-				remove_action( 'woocommerce_archive_description', 'woocommerce_taxonomy_archive_description' );
343
-				remove_action( 'woocommerce_archive_description', 'woocommerce_product_archive_description' );
344
-				add_filter( 'woocommerce_show_page_title', '__return_false' );
345
-
346
-				add_filter( 'loop_shop_columns', function() {
347
-					return 3;
348
-				} );
349
-
350
-				// Actions added by LSX theme
351
-				remove_action( 'lsx_content_wrap_before', 'lsx_global_header' );
352
-				add_action( 'lsx_content_wrap_before', array( $this, 'wc_archive_header' ), 140 );
353
-
354
-				// Actions added be LSX theme / woocommerce.php file
355
-				remove_action( 'woocommerce_after_shop_loop', 'lsx_wc_sorting_wrapper', 9 );
356
-				remove_action( 'woocommerce_after_shop_loop', 'woocommerce_catalog_ordering', 10 );
357
-				remove_action( 'woocommerce_after_shop_loop', 'woocommerce_result_count', 20 );
358
-				remove_action( 'woocommerce_after_shop_loop', 'woocommerce_pagination', 30 );
359
-				remove_action( 'woocommerce_after_shop_loop', 'lsx_wc_sorting_wrapper_close', 31 );
360
-
361
-				// Actions added be LSX theme / woocommerce.php file
362
-				remove_action( 'woocommerce_before_shop_loop', 'lsx_wc_sorting_wrapper', 9 );
363
-				remove_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 10 );
364
-				remove_action( 'woocommerce_before_shop_loop', 'woocommerce_result_count', 20 );
365
-				remove_action( 'woocommerce_before_shop_loop', 'lsx_wc_woocommerce_pagination', 30 );
366
-				remove_action( 'woocommerce_before_shop_loop', 'lsx_wc_sorting_wrapper_close', 31 );
367
-			}
368
-		}
369
-	}
370
-
371
-	/**
372
-	 * Adds a search class to the body to allow the styling of the sidebars etc.
373
-	 *
374
-	 * @param  array $classes The classes.
375
-	 * @return array $classes The classes.
376
-	 */
377
-	public function body_class( $classes ) {
378
-		$classes[] = 'lsx-search-enabled';
379
-		return $classes;
380
-	}
381
-
382
-	/**
383
-	 * Moves the blog description to above the content columns.
384
-	 *
385
-	 * @param  string $action
386
-	 * @return string $action
387
-	 */
388
-	public function top_of_blog_action( $action = '' ) {
389
-		$action = 'lsx_content_wrap_before';
390
-		return $action;
391
-	}
392
-
393
-	/**
394
-	 * Adds a class to the blog description.
395
-	 *
396
-	 * @param  string $action
397
-	 * @return string $action
398
-	 */
399
-	public function blog_description_class( $class = '' ) {
400
-		$class .= ' col-md-12 search-description';
401
-		return $class;
402
-	}
403
-
404
-	/**
405
-	 * Check the $wp_query global to see if there are posts in the current query.
406
-	 *
407
-	 * @return void
408
-	 */
409
-	public function check_for_results() {
410
-		if ( true === $this->search_enabled ) {
411
-			global $wp_query;
412
-			if ( empty( $wp_query->posts ) ) {
413
-				$this->has_posts = false;
414
-				remove_action( 'lsx_content_top', array( $this, 'facet_top_bar' ) );
415
-				remove_action( 'lsx_content_bottom', array( $this, 'facet_bottom_bar' ) );
416
-				remove_action( 'lsx_content_wrap_before', array( $this, 'search_sidebar' ), 150 );
417
-			} else {
418
-				$this->has_posts = true;
419
-			}
420
-		}
421
-	}
422
-
423
-	/**
424
-	 * Filter the post types.
425
-	 */
426
-	public function filter_post_types( $query ) {
427
-		if ( ! is_admin() && $query->is_main_query() && $query->is_search() ) {
428
-			if ( ! empty( $this->options ) && ! empty( $this->options['display']['search_enable_core'] ) ) {
429
-				if ( ! empty( $this->options['general']['search_post_types'] ) && is_array( $this->options['general']['search_post_types'] ) ) {
430
-					$post_types = array_keys( $this->options['general']['search_post_types'] );
431
-					$query->set( 'post_type', $post_types );
432
-				}
433
-			}
434
-		}
435
-	}
436
-
437
-	/**
438
-	 * Sets post types with active search options.
439
-	 */
440
-	public function register_post_types( $post_types ) {
441
-		$post_types = array( 'post', 'project', 'service', 'team', 'testimonial', 'video', 'product' );
442
-		return $post_types;
443
-	}
444
-
445
-	/**
446
-	 * Sets taxonomies with active search options.
447
-	 */
448
-	public function register_taxonomies( $taxonomies ) {
449
-		$taxonomies = array( 'category', 'post_tag', 'project-group', 'service-group', 'team_role', 'video-category', 'product_cat', 'product_tag' );
450
-		return $taxonomies;
451
-	}
452
-
453
-	/**
454
-	 * Sets post types with active search options.
455
-	 */
456
-	public function register_post_type_tabs( $post_types_plural ) {
457
-		$post_types_plural = array(
458
-			'post' => 'posts',
459
-			'project' => 'projects',
460
-			'service' => 'services',
461
-			'team' => 'team',
462
-			'testimonial' => 'testimonials',
463
-			'video' => 'videos',
464
-			'product' => 'products', // WooCommerce
465
-		);
466
-		return $post_types_plural;
467
-	}
468
-
469
-	/**
470
-	 * Enqueue styles and scripts.
471
-	 */
472
-	public function assets() {
473
-		add_filter( 'lsx_defer_parsing_of_js', array( $this, 'skip_js_defer' ), 10, 4 );
474
-		wp_enqueue_script( 'touchSwipe', LSX_SEARCH_URL . 'assets/js/vendor/jquery.touchSwipe.min.js', array( 'jquery' ), LSX_SEARCH_VER, true );
475
-		wp_enqueue_script( 'slideandswipe', LSX_SEARCH_URL . 'assets/js/vendor/jquery.slideandswipe.min.js', array( 'jquery', 'touchSwipe' ), LSX_SEARCH_VER, true );
476
-		wp_enqueue_script( 'lsx-search', LSX_SEARCH_URL . 'assets/js/src/lsx-search.js', array( 'jquery', 'touchSwipe', 'slideandswipe', 'jquery-ui-datepicker' ), LSX_SEARCH_VER, true );
477
-
478
-		$params = apply_filters( 'lsx_search_js_params', array(
479
-			'ajax_url' => admin_url( 'admin-ajax.php' ),
480
-		));
481
-
482
-		wp_localize_script( 'lsx-search', 'lsx_customizer_params', $params );
483
-
484
-		wp_enqueue_style( 'lsx-search', LSX_SEARCH_URL . 'assets/css/lsx-search.css', array(), LSX_SEARCH_VER );
485
-		wp_style_add_data( 'lsx-search', 'rtl', 'replace' );
486
-
487
-		if ( true === $this->new_options ) {
488
-			wp_deregister_style( 'lsx_to_search' );
489
-			wp_deregister_script( 'lsx_to_search' );
490
-		}
491
-	}
492
-
493
-	/**
494
-	 * Adds the to-search.min.js and the to-search.js
495
-	 *
496
-	 * @param boolean $should_skip
497
-	 * @param string  $tag
498
-	 * @param string  $handle
499
-	 * @param string  $href
500
-	 * @return boolean
501
-	 */
502
-	public function skip_js_defer( $should_skip, $tag, $handle, $href ) {
503
-		if ( ! is_admin() && ( false !== stripos( $href, 'lsx-search.min.js' ) || false !== stripos( $href, 'lsx-search.js' ) ) ) {
504
-			$should_skip = true;
505
-		}
506
-		return $should_skip;
507
-	}
508
-
509
-	/**
510
-	 * Redirect wordpress to the search template located in the plugin
511
-	 *
512
-	 * @param	$template
513
-	 * @return	$template
514
-	 */
515
-	public function search_template_include( $template ) {
516
-		if ( is_main_query() && is_search() ) {
517
-			if ( file_exists( LSX_SEARCH_PATH . 'templates/search.php' ) ) {
518
-				$template = LSX_SEARCH_PATH . 'templates/search.php';
519
-			}
520
-		}
521
-
522
-		return $template;
523
-	}
524
-
525
-	/**
526
-	 * Ignore sticky posts on Blog search.
527
-	 *
528
-	 * @param [type] $query
529
-	 * @return void
530
-	 */
531
-	public function ignore_sticky_search( $query ) {
532
-		if ( $query->is_main_query() && is_home() ) {
533
-			$query->set( 'ignore_sticky_posts', true );
534
-		}
535
-	}
536
-
537
-	/**
538
-	 * Rewrite the search URL
539
-	 */
540
-	public function pretty_search_redirect() {
541
-		global $wp_rewrite,$wp_query;
542
-
543
-		if ( ! isset( $wp_rewrite ) || ! is_object( $wp_rewrite ) || ! $wp_rewrite->using_permalinks() ) {
544
-			return;
545
-		}
546
-
547
-		$search_base = $wp_rewrite->search_base;
548
-
549
-		if ( is_search() && ! is_admin() && strpos( $_SERVER['REQUEST_URI'], "/{$search_base}/" ) === false ) {
550
-			$search_query = get_query_var( 's' );
551
-			$engine = '';
552
-
553
-			// If the search was triggered by a supplemental engine.
554
-			if ( isset( $_GET['engine'] ) && 'default' !== $_GET['engine'] ) {
555
-				$engine = sanitize_text_field( wp_unslash( $_GET['engine'] ) );
556
-				$index  = array_search( $engine, $this->post_type_slugs, true );
557
-				if ( false !== $index ) {
558
-					$engine = $index;
559
-				}
560
-				$engine = $engine . '/';
561
-			}
562
-
563
-			$get_array = $_GET;
564
-
565
-			if ( is_array( $get_array ) && ! empty( $get_array ) ) {
566
-				$vars_to_maintain = array();
567
-
568
-				foreach ( $get_array as $ga_key => $ga_value ) {
569
-					if ( false !== strpos( $ga_key, 'fwp_' ) ) {
570
-						$vars_to_maintain[] = $ga_key . '=' . $ga_value;
571
-					}
572
-				}
573
-			}
574
-
575
-			$redirect_url = home_url( "/{$search_base}/" . $engine . urlencode( $search_query ) );
576
-
577
-			if ( ! empty( $vars_to_maintain ) ) {
578
-				$redirect_url .= '?' . implode( '&', $vars_to_maintain );
579
-			}
580
-			wp_redirect( $redirect_url );
581
-			exit();
582
-		}
583
-	}
584
-
585
-	/**
586
-	 * Parse the Query and trigger a search
587
-	 */
588
-	public function pretty_search_parse_query( $query ) {
589
-		$this->post_type_slugs = array(
590
-			'post' => 'posts',
591
-			'project' => 'projects',
592
-			'service' => 'services',
593
-			'team' => 'team',
594
-			'testimonial' => 'testimonials',
595
-			'video' => 'videos',
596
-			'product' => 'products', // WooCommerce
597
-		);
598
-		if ( $query->is_search() && ! is_admin() && $query->is_main_query() ) {
599
-			$search_query = $query->get( 's' );
600
-			$keyword_test = explode( '/', $search_query );
601
-
602
-			$index = array_search( $keyword_test[0], $this->post_type_slugs, true );
603
-			if ( false !== $index ) {
604
-				$engine = $this->post_type_slugs[ $index ];
605
-
606
-				$query->set( 'post_type', $engine );
607
-				$query->set( 'engine', $engine );
608
-
609
-				if ( count( $keyword_test ) > 1 ) {
610
-					$query->set( 's', $keyword_test[1] );
611
-				} elseif ( post_type_exists( $engine ) ) {
612
-					$query->set( 's', '' );
613
-				}
614
-			} else {
615
-				if ( isset( $this->options['general']['search_post_types'] ) && is_array( $this->options['general']['search_post_types'] ) ) {
616
-					$post_types = array_keys( $this->options['general']['search_post_types'] );
617
-					$query->set( 'post_type', $post_types );
618
-				}
619
-			}
620
-		}
621
-		return $query;
622
-	}
623
-
624
-	/**
625
-	 * Change the search slug to /search/ for the JSON+LD output in Yoast SEO
626
-	 *
627
-	 * @return url
628
-	 */
629
-	public function change_json_ld_search_url() {
630
-		return trailingslashit( home_url() ) . 'search/{search_term_string}';
631
-	}
632
-
633
-	/**
634
-	 * A filter to set the layout to 2 column.
635
-	 */
636
-	public function lsx_layout( $layout ) {
637
-		if ( ! empty( $this->options['display'][ $this->search_prefix . '_layout' ] ) ) {
638
-			if ( false === $this->has_posts ) {
639
-				$layout = '1c';
640
-			} else {
641
-				$layout = $this->options['display'][ $this->search_prefix . '_layout' ];
642
-			}
643
-		}
644
-		return $layout;
645
-	}
646
-
647
-	/**
648
-	 * Outputs the Search Title Facet
649
-	 */
650
-	public function search_sidebar_top() {
651
-		if ( ! empty( $this->options['display'][ $this->search_prefix . '_facets' ] ) && is_array( $this->options['display'][ $this->search_prefix . '_facets' ] ) && true !== apply_filters( 'lsx_search_hide_search_box', false ) ) {
652
-
653
-			if ( ! is_search() ) {
654
-
655
-				foreach ( $this->options['display'][ $this->search_prefix . '_facets' ] as $facet => $facet_useless ) {
656
-
657
-					if ( isset( $this->facet_data[ $facet ] ) && 'search' === $this->facet_data[ $facet ]['type'] ) {
658
-						echo wp_kses_post( '<div class="row">' );
659
-							$this->display_facet_default( $facet );
660
-						echo wp_kses_post( '</div>' );
661
-						unset( $this->options['display'][ $this->search_prefix . '_facets' ][ $facet ] );
662
-					}
663
-				}
664
-			} else {
665
-				echo wp_kses_post( '<div class="row">' );
666
-					$this->display_facet_search();
667
-				echo wp_kses_post( '</div>' );
668
-			}
669
-		}
670
-	}
671
-
672
-	/**
673
-	 * Overrides the search facet HTML
674
-	 * @param $output
675
-	 * @param $params
676
-	 *
677
-	 * @return string
678
-	 */
679
-	public function search_facet_html( $output, $params ) {
680
-		if ( 'search' == $params['facet']['type'] ) {
681
-
682
-			$value = (array) $params['selected_values'];
683
-			$value = empty( $value ) ? '' : stripslashes( $value[0] );
684
-			$placeholder = isset( $params['facet']['placeholder'] ) ? $params['facet']['placeholder'] : __( 'Search...', 'lsx-search' );
685
-			$placeholder = facetwp_i18n( $placeholder );
686
-
687
-			ob_start();
688
-			?>
12
+     /**
13
+      * Holds class instance
14
+      *
15
+      * @since 1.0.0
16
+      *
17
+      * @var      object \lsx\search\classes\Frontend()
18
+      */
19
+     protected static $instance = null;
20
+
21
+     public $options = false;
22
+
23
+     public $tabs = false;
24
+
25
+     public $facet_data = false;
26
+
27
+     /**
28
+      * Determine weather or not search is enabled for this page.
29
+      *
30
+      * @var boolean
31
+      */
32
+     public $search_enabled = false;
33
+
34
+     public $search_core_suffix = false;
35
+
36
+     public $search_prefix = false;
37
+
38
+     /**
39
+      * Holds the post types enabled
40
+      *
41
+      * @var array
42
+      */
43
+     public $post_types = array();
44
+
45
+     /**
46
+      * Holds the taxonomies enabled for search
47
+      *
48
+      * @var array
49
+      */
50
+     public $taxonomies = array();
51
+
52
+     /**
53
+      * If the current search page has posts or not
54
+      *
55
+      * @var boolean
56
+      */
57
+     public $has_posts = false;
58
+
59
+     /**
60
+      * If we are using the CMB2 options or not.
61
+      *
62
+      * @var boolean
63
+      */
64
+     public $new_options = false;
65
+
66
+     /**
67
+      * Construct method.
68
+      */
69
+     public function __construct() {
70
+          $this->options = \lsx\search\includes\get_options();
71
+          $this->load_classes();
72
+
73
+          add_filter( 'wpseo_json_ld_search_url', array( $this, 'change_json_ld_search_url' ), 10, 1 );
74
+          add_action( 'wp', array( $this, 'set_vars' ), 21 );
75
+          add_action( 'wp', array( $this, 'set_facetwp_vars' ), 22 );
76
+          add_action( 'wp', array( $this, 'core' ), 23 );
77
+          add_action( 'lsx_body_top', array( $this, 'check_for_results' ) );
78
+
79
+          add_filter( 'pre_get_posts', array( $this, 'ignore_sticky_search' ) );
80
+          add_action( 'pre_get_posts', array( $this, 'filter_post_types' ) );
81
+
82
+          add_filter( 'lsx_search_post_types', array( $this, 'register_post_types' ) );
83
+          add_filter( 'lsx_search_taxonomies', array( $this, 'register_taxonomies' ) );
84
+          add_filter( 'lsx_search_post_types_plural', array( $this, 'register_post_type_tabs' ) );
85
+          add_filter( 'facetwp_sort_options', array( $this, 'facetwp_sort_options' ), 10, 2 );
86
+          add_filter( 'wp_kses_allowed_html', array( $this, 'kses_allowed_html' ), 20, 2 );
87
+          add_filter( 'get_search_query', array( $this, 'get_search_query' ) );
88
+
89
+          // Redirects.
90
+          add_action( 'template_redirect', array( $this, 'pretty_search_redirect' ) );
91
+          add_filter( 'pre_get_posts', array( $this, 'pretty_search_parse_query' ) );
92
+
93
+          add_action( 'lsx_search_sidebar_top', array( $this, 'search_sidebar_top' ) );
94
+          add_filter( 'facetwp_facet_html', array( $this, 'search_facet_html' ), 10, 2 );
95
+     }
96
+
97
+     /**
98
+      * Return an instance of this class.
99
+      *
100
+      * @since 1.0.0
101
+      *
102
+      * @return    object \lsx\member_directory\search\Frontend()    A single instance of this class.
103
+      */
104
+     public static function get_instance() {
105
+          // If the single instance hasn't been set, set it now.
106
+          if ( null === self::$instance ) {
107
+               self::$instance = new self();
108
+          }
109
+          return self::$instance;
110
+     }
111
+
112
+     /**
113
+      * Loads the variable classes and the static classes.
114
+      */
115
+     private function load_classes() {
116
+          require_once LSX_SEARCH_PATH . 'classes/frontend/class-layout.php';
117
+          $this->layout = frontend\Layout::get_instance();
118
+     }
119
+
120
+     /**
121
+      * Check all settings.
122
+      */
123
+     public function set_vars() {
124
+          $post_type = '';
125
+
126
+          $this->post_types      = apply_filters( 'lsx_search_post_types', array() );
127
+          $this->taxonomies      = apply_filters( 'lsx_search_taxonomies', array() );
128
+          $this->tabs            = apply_filters( 'lsx_search_post_types_plural', array() );
129
+          $this->options         = apply_filters( 'lsx_search_options', $this->options );
130
+          $this->post_types      = get_post_types();
131
+          $this->post_type_slugs = array(
132
+               'post'        => 'posts',
133
+               'project'     => 'projects',
134
+               'service'     => 'services',
135
+               'team'        => 'team',
136
+               'testimonial' => 'testimonials',
137
+               'video'       => 'videos',
138
+               'product'     => 'products',
139
+          );
140
+          $this->set_search_prefix();
141
+          $this->get_cmb2_options();
142
+          $this->search_enabled = apply_filters( 'lsx_search_enabled', $this->is_search_enabled(), $this );
143
+          $this->search_prefix  = apply_filters( 'lsx_search_prefix', $this->search_prefix, $this );
144
+     }
145
+
146
+     private function get_cmb2_options() {
147
+          $cmb2_options = get_option( 'lsx-search-settings' );
148
+          if ( false !== $cmb2_options && ! empty( $cmb2_options ) ) {
149
+               $this->set_search_prefix( true );
150
+               $this->options['display'] = $cmb2_options;
151
+               foreach ( $this->options['display'] as $option_key => $option_value ) {
152
+                    if ( is_array( $option_value ) && ! empty( $option_value ) ) {
153
+                         $new_values = array();
154
+                         foreach ( $option_value as $empty_key => $key_value ) {
155
+                              $new_values[ $key_value ] = 'on';
156
+                         }
157
+                         $this->options['display'][ $option_key ] = $new_values;
158
+                    }
159
+               }
160
+               $this->new_options = true;
161
+               $this->disable_to_search_actions();
162
+          }
163
+     }
164
+
165
+     private function disable_to_search_actions() {
166
+          global $lsx_to_search_fwp, $lsx_to_search;
167
+          if ( null !== $lsx_to_search ) {
168
+               // Redirects.
169
+               remove_filter( 'template_include', array( $lsx_to_search, 'search_template_include' ), 99 );
170
+               remove_action( 'template_redirect', array( $lsx_to_search, 'pretty_search_redirect' ) );
171
+               remove_filter( 'pre_get_posts', array( $lsx_to_search, 'pretty_search_parse_query' ) );
172
+
173
+               // Layout Filter.
174
+               remove_filter( 'lsx_layout', array( $lsx_to_search, 'lsx_layout' ), 20, 1 );
175
+               remove_filter( 'lsx_layout_selector', array( $lsx_to_search, 'lsx_layout_selector' ), 10, 4 );
176
+               remove_filter( 'lsx_to_archive_layout', array( $lsx_to_search, 'lsx_to_search_archive_layout' ), 10, 2 );
177
+
178
+               remove_action( 'lsx_search_sidebar_top', array( $lsx_to_search, 'search_sidebar_top' ) );
179
+               remove_action( 'pre_get_posts', array( $lsx_to_search, 'price_sorting' ), 100 );
180
+
181
+               //add_shortcode( 'lsx_search_form', array( 'LSX_TO_Search_Frontend', 'search_form' ) );
182
+               remove_filter( 'searchwp_short_circuit', array( $lsx_to_search, 'searchwp_short_circuit' ), 10, 2 );
183
+               remove_filter( 'get_search_query', array( $lsx_to_search, 'get_search_query' ) );
184
+               remove_filter( 'body_class', array( $lsx_to_search, 'to_add_search_url_class' ), 20 );
185
+
186
+               remove_filter( 'facetwp_preload_url_vars', array( $lsx_to_search, 'preload_url_vars' ), 10, 1 );
187
+               remove_filter( 'wpseo_json_ld_search_url', array( $lsx_to_search, 'change_json_ld_search_url' ), 10, 1 );
188
+          }
189
+          if ( null !== $lsx_to_search_fwp ) {
190
+               remove_filter( 'facetwp_indexer_row_data', array( $lsx_to_search_fwp, 'facetwp_index_row_data' ), 10, 2 );
191
+               remove_filter( 'facetwp_index_row', array( $lsx_to_search_fwp, 'facetwp_index_row' ), 10, 2 );
192
+
193
+               remove_filter( 'facetwp_sort_options', array( $lsx_to_search_fwp, 'facet_sort_options' ), 10, 2 );
194
+
195
+               remove_filter( 'facetwp_pager_html', array( $lsx_to_search_fwp, 'facetwp_pager_html' ), 10, 2 );
196
+               remove_filter( 'facetwp_result_count', array( $lsx_to_search_fwp, 'facetwp_result_count' ), 10, 2 );
197
+
198
+               remove_filter( 'facetwp_facet_html', array( $lsx_to_search_fwp, 'destination_facet_html' ), 10, 2 );
199
+               remove_filter( 'facetwp_facet_html', array( $lsx_to_search_fwp, 'slide_facet_html' ), 10, 2 );
200
+               remove_filter( 'facetwp_facet_html', array( $lsx_to_search_fwp, 'search_facet_html' ), 10, 2 );
201
+               remove_filter( 'facetwp_load_css', array( $lsx_to_search_fwp, 'facetwp_load_css' ), 10, 1 );
202
+
203
+               if ( class_exists( 'LSX_Currencies' ) ) {
204
+                    remove_filter( 'facetwp_render_output', array( $lsx_to_search_fwp, 'slide_price_lsx_currencies' ), 10, 2 );
205
+               } else {
206
+                    remove_filter( 'facetwp_render_output', array( $lsx_to_search_fwp, 'slide_price_to_currencies' ), 10, 2 );
207
+               }
208
+          }
209
+     }
210
+
211
+     /**
212
+      * Returns if the search is enabled.
213
+      *
214
+      * @return boolean
215
+      */
216
+     public function is_search_enabled() {
217
+          $search_enabled = false;
218
+
219
+          if ( false === $this->new_options ) {
220
+               if ( isset( $this->options['display'][ $this->search_prefix . '_enable_' . $this->search_core_suffix ] ) && ( ! empty( $this->options ) ) && 'on' == $this->options['display'][ $this->search_prefix . '_enable_' . $this->search_core_suffix ] ) {
221
+                    $search_enabled = true;
222
+               }
223
+          } else {
224
+               $enable_prefix = $this->search_prefix;
225
+               if ( ! empty( $this->options ) && isset( $this->options['display'] ) && isset( $this->options['display'][ $enable_prefix . '_enable' ] ) && 'on' === $this->options['display'][ $enable_prefix . '_enable' ] ) {
226
+                    $search_enabled = true;
227
+               }
228
+          }
229
+
230
+          // These are specific plugin exclusions.
231
+          if ( is_tax( array( 'wcpv_product_vendors' ) ) ) {
232
+               $search_enabled = false;
233
+          }
234
+          return $search_enabled;
235
+     }
236
+
237
+     /**
238
+      * Sets the search prefix.
239
+      *
240
+      * @return void
241
+      */
242
+     private function set_search_prefix( $new_prefixes = false ) {
243
+          $page_for_posts = get_option( 'page_for_posts' );
244
+          if ( false !== $new_prefixes ) {
245
+               $this->taxonomies = array();
246
+               $this->post_types = array();
247
+          }
248
+
249
+          if ( is_search() ) {
250
+               if ( false === $new_prefixes ) {
251
+                    $this->search_core_suffix = 'core';
252
+                    $this->search_prefix      = 'search';
253
+               } else {
254
+                    $this->search_core_suffix = 'enable';
255
+                    $this->search_prefix      = 'engine_search';
256
+               }
257
+          } elseif ( is_post_type_archive( $this->post_types ) || is_tax() || is_page( $page_for_posts ) || is_home() || is_category() || is_tag() ) {
258
+               if ( false === $new_prefixes ) {
259
+                    $this->search_core_suffix = 'search';
260
+               } else {
261
+                    $this->search_core_suffix = 'enable';
262
+               }
263
+
264
+               if ( is_tax() ) {
265
+                    $tax = get_query_var( 'taxonomy' );
266
+                    $tax = get_taxonomy( $tax );
267
+                    $post_type = $tax->object_type[0];
268
+               } else if ( is_page( $page_for_posts ) || is_category() || is_tag() || is_home() ) {
269
+                    $post_type = 'post';
270
+               } else {
271
+                    $post_type = get_query_var( 'post_type' );
272
+               }
273
+
274
+               if ( false === $new_prefixes ) {
275
+                    if ( isset( $this->tabs[ $post_type ] ) ) {
276
+                         $this->search_prefix = $this->tabs[ $post_type ] . '_archive';
277
+                    }
278
+               } else {
279
+                    $this->search_prefix = $post_type . '_search';
280
+               }
281
+          }
282
+     }
283
+
284
+     /**
285
+      * Sets the FacetWP variables.
286
+      */
287
+     public function set_facetwp_vars() {
288
+
289
+          if ( class_exists( 'FacetWP' ) ) {
290
+               $facet_data = FWP()->helper->get_facets();
291
+          }
292
+
293
+          $this->facet_data = array();
294
+
295
+          $this->facet_data['search_form'] = array(
296
+               'name' => 'search_form',
297
+               'label' => esc_html__( 'Search Form', 'lsx-search' ),
298
+          );
299
+
300
+          if ( ! empty( $facet_data ) && is_array( $facet_data ) ) {
301
+               foreach ( $facet_data as $facet ) {
302
+                    $this->facet_data[ $facet['name'] ] = $facet;
303
+               }
304
+          }
305
+     }
306
+
307
+     /**
308
+      * Check all settings.
309
+      */
310
+     public function core() {
311
+
312
+          if ( true === $this->search_enabled ) {
313
+               add_action( 'wp_enqueue_scripts', array( $this, 'assets' ), 999 );
314
+
315
+               add_filter( 'lsx_layout', array( $this, 'lsx_layout' ), 20, 1 );
316
+               add_filter( 'lsx_layout_selector', array( $this, 'lsx_layout_selector' ), 10, 4 );
317
+               add_filter( 'lsx_slot_class', array( $this, 'change_slot_column_class' ) );
318
+               add_action( 'lsx_entry_top', array( $this, 'add_label_to_title' ) );
319
+               add_filter( 'body_class', array( $this, 'body_class' ), 10 );
320
+
321
+               add_filter( 'lsx_blog_customizer_top_of_blog_action', array( $this, 'top_of_blog_action' ), 10, 1 );
322
+               add_filter( 'lsx_blog_customizer_blog_description_class', array( $this, 'blog_description_class' ), 10, 1 );
323
+
324
+               if ( class_exists( 'LSX_Videos' ) ) {
325
+                    global $lsx_videos_frontend;
326
+                    remove_action( 'lsx_content_top', array( $lsx_videos_frontend, 'categories_tabs' ), 15 );
327
+               }
328
+
329
+               add_filter( 'lsx_paging_nav_disable', '__return_true' );
330
+               add_action( 'lsx_content_top', array( $this, 'facet_top_bar' ) );
331
+               add_action( 'lsx_content_top', array( $this, 'facetwp_tempate_open' ) );
332
+               add_action( 'lsx_content_bottom', array( $this, 'facetwp_tempate_close' ) );
333
+               add_action( 'lsx_content_bottom', array( $this, 'facet_bottom_bar' ) );
334
+
335
+               if ( ! empty( $this->options['display'][ $this->search_prefix . '_layout' ] ) && '1c' !== $this->options['display'][ $this->search_prefix . '_layout' ] ) {
336
+                    add_filter( 'lsx_sidebar_enable', array( $this, 'lsx_sidebar_enable' ), 10, 1 );
337
+               }
338
+
339
+               add_action( 'lsx_content_wrap_before', array( $this, 'search_sidebar' ), 150 );
340
+
341
+               if ( class_exists( 'WooCommerce' ) && ( is_shop() || is_product_category() || is_product_tag() ) ) {
342
+                    remove_action( 'woocommerce_archive_description', 'woocommerce_taxonomy_archive_description' );
343
+                    remove_action( 'woocommerce_archive_description', 'woocommerce_product_archive_description' );
344
+                    add_filter( 'woocommerce_show_page_title', '__return_false' );
345
+
346
+                    add_filter( 'loop_shop_columns', function() {
347
+                         return 3;
348
+                    } );
349
+
350
+                    // Actions added by LSX theme
351
+                    remove_action( 'lsx_content_wrap_before', 'lsx_global_header' );
352
+                    add_action( 'lsx_content_wrap_before', array( $this, 'wc_archive_header' ), 140 );
353
+
354
+                    // Actions added be LSX theme / woocommerce.php file
355
+                    remove_action( 'woocommerce_after_shop_loop', 'lsx_wc_sorting_wrapper', 9 );
356
+                    remove_action( 'woocommerce_after_shop_loop', 'woocommerce_catalog_ordering', 10 );
357
+                    remove_action( 'woocommerce_after_shop_loop', 'woocommerce_result_count', 20 );
358
+                    remove_action( 'woocommerce_after_shop_loop', 'woocommerce_pagination', 30 );
359
+                    remove_action( 'woocommerce_after_shop_loop', 'lsx_wc_sorting_wrapper_close', 31 );
360
+
361
+                    // Actions added be LSX theme / woocommerce.php file
362
+                    remove_action( 'woocommerce_before_shop_loop', 'lsx_wc_sorting_wrapper', 9 );
363
+                    remove_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 10 );
364
+                    remove_action( 'woocommerce_before_shop_loop', 'woocommerce_result_count', 20 );
365
+                    remove_action( 'woocommerce_before_shop_loop', 'lsx_wc_woocommerce_pagination', 30 );
366
+                    remove_action( 'woocommerce_before_shop_loop', 'lsx_wc_sorting_wrapper_close', 31 );
367
+               }
368
+          }
369
+     }
370
+
371
+     /**
372
+      * Adds a search class to the body to allow the styling of the sidebars etc.
373
+      *
374
+      * @param  array $classes The classes.
375
+      * @return array $classes The classes.
376
+      */
377
+     public function body_class( $classes ) {
378
+          $classes[] = 'lsx-search-enabled';
379
+          return $classes;
380
+     }
381
+
382
+     /**
383
+      * Moves the blog description to above the content columns.
384
+      *
385
+      * @param  string $action
386
+      * @return string $action
387
+      */
388
+     public function top_of_blog_action( $action = '' ) {
389
+          $action = 'lsx_content_wrap_before';
390
+          return $action;
391
+     }
392
+
393
+     /**
394
+      * Adds a class to the blog description.
395
+      *
396
+      * @param  string $action
397
+      * @return string $action
398
+      */
399
+     public function blog_description_class( $class = '' ) {
400
+          $class .= ' col-md-12 search-description';
401
+          return $class;
402
+     }
403
+
404
+     /**
405
+      * Check the $wp_query global to see if there are posts in the current query.
406
+      *
407
+      * @return void
408
+      */
409
+     public function check_for_results() {
410
+          if ( true === $this->search_enabled ) {
411
+               global $wp_query;
412
+               if ( empty( $wp_query->posts ) ) {
413
+                    $this->has_posts = false;
414
+                    remove_action( 'lsx_content_top', array( $this, 'facet_top_bar' ) );
415
+                    remove_action( 'lsx_content_bottom', array( $this, 'facet_bottom_bar' ) );
416
+                    remove_action( 'lsx_content_wrap_before', array( $this, 'search_sidebar' ), 150 );
417
+               } else {
418
+                    $this->has_posts = true;
419
+               }
420
+          }
421
+     }
422
+
423
+     /**
424
+      * Filter the post types.
425
+      */
426
+     public function filter_post_types( $query ) {
427
+          if ( ! is_admin() && $query->is_main_query() && $query->is_search() ) {
428
+               if ( ! empty( $this->options ) && ! empty( $this->options['display']['search_enable_core'] ) ) {
429
+                    if ( ! empty( $this->options['general']['search_post_types'] ) && is_array( $this->options['general']['search_post_types'] ) ) {
430
+                         $post_types = array_keys( $this->options['general']['search_post_types'] );
431
+                         $query->set( 'post_type', $post_types );
432
+                    }
433
+               }
434
+          }
435
+     }
436
+
437
+     /**
438
+      * Sets post types with active search options.
439
+      */
440
+     public function register_post_types( $post_types ) {
441
+          $post_types = array( 'post', 'project', 'service', 'team', 'testimonial', 'video', 'product' );
442
+          return $post_types;
443
+     }
444
+
445
+     /**
446
+      * Sets taxonomies with active search options.
447
+      */
448
+     public function register_taxonomies( $taxonomies ) {
449
+          $taxonomies = array( 'category', 'post_tag', 'project-group', 'service-group', 'team_role', 'video-category', 'product_cat', 'product_tag' );
450
+          return $taxonomies;
451
+     }
452
+
453
+     /**
454
+      * Sets post types with active search options.
455
+      */
456
+     public function register_post_type_tabs( $post_types_plural ) {
457
+          $post_types_plural = array(
458
+               'post' => 'posts',
459
+               'project' => 'projects',
460
+               'service' => 'services',
461
+               'team' => 'team',
462
+               'testimonial' => 'testimonials',
463
+               'video' => 'videos',
464
+               'product' => 'products', // WooCommerce
465
+          );
466
+          return $post_types_plural;
467
+     }
468
+
469
+     /**
470
+      * Enqueue styles and scripts.
471
+      */
472
+     public function assets() {
473
+          add_filter( 'lsx_defer_parsing_of_js', array( $this, 'skip_js_defer' ), 10, 4 );
474
+          wp_enqueue_script( 'touchSwipe', LSX_SEARCH_URL . 'assets/js/vendor/jquery.touchSwipe.min.js', array( 'jquery' ), LSX_SEARCH_VER, true );
475
+          wp_enqueue_script( 'slideandswipe', LSX_SEARCH_URL . 'assets/js/vendor/jquery.slideandswipe.min.js', array( 'jquery', 'touchSwipe' ), LSX_SEARCH_VER, true );
476
+          wp_enqueue_script( 'lsx-search', LSX_SEARCH_URL . 'assets/js/src/lsx-search.js', array( 'jquery', 'touchSwipe', 'slideandswipe', 'jquery-ui-datepicker' ), LSX_SEARCH_VER, true );
477
+
478
+          $params = apply_filters( 'lsx_search_js_params', array(
479
+               'ajax_url' => admin_url( 'admin-ajax.php' ),
480
+          ));
481
+
482
+          wp_localize_script( 'lsx-search', 'lsx_customizer_params', $params );
483
+
484
+          wp_enqueue_style( 'lsx-search', LSX_SEARCH_URL . 'assets/css/lsx-search.css', array(), LSX_SEARCH_VER );
485
+          wp_style_add_data( 'lsx-search', 'rtl', 'replace' );
486
+
487
+          if ( true === $this->new_options ) {
488
+               wp_deregister_style( 'lsx_to_search' );
489
+               wp_deregister_script( 'lsx_to_search' );
490
+          }
491
+     }
492
+
493
+     /**
494
+      * Adds the to-search.min.js and the to-search.js
495
+      *
496
+      * @param boolean $should_skip
497
+      * @param string  $tag
498
+      * @param string  $handle
499
+      * @param string  $href
500
+      * @return boolean
501
+      */
502
+     public function skip_js_defer( $should_skip, $tag, $handle, $href ) {
503
+          if ( ! is_admin() && ( false !== stripos( $href, 'lsx-search.min.js' ) || false !== stripos( $href, 'lsx-search.js' ) ) ) {
504
+               $should_skip = true;
505
+          }
506
+          return $should_skip;
507
+     }
508
+
509
+     /**
510
+      * Redirect wordpress to the search template located in the plugin
511
+      *
512
+      * @param	$template
513
+      * @return	$template
514
+      */
515
+     public function search_template_include( $template ) {
516
+          if ( is_main_query() && is_search() ) {
517
+               if ( file_exists( LSX_SEARCH_PATH . 'templates/search.php' ) ) {
518
+                    $template = LSX_SEARCH_PATH . 'templates/search.php';
519
+               }
520
+          }
521
+
522
+          return $template;
523
+     }
524
+
525
+     /**
526
+      * Ignore sticky posts on Blog search.
527
+      *
528
+      * @param [type] $query
529
+      * @return void
530
+      */
531
+     public function ignore_sticky_search( $query ) {
532
+          if ( $query->is_main_query() && is_home() ) {
533
+               $query->set( 'ignore_sticky_posts', true );
534
+          }
535
+     }
536
+
537
+     /**
538
+      * Rewrite the search URL
539
+      */
540
+     public function pretty_search_redirect() {
541
+          global $wp_rewrite,$wp_query;
542
+
543
+          if ( ! isset( $wp_rewrite ) || ! is_object( $wp_rewrite ) || ! $wp_rewrite->using_permalinks() ) {
544
+               return;
545
+          }
546
+
547
+          $search_base = $wp_rewrite->search_base;
548
+
549
+          if ( is_search() && ! is_admin() && strpos( $_SERVER['REQUEST_URI'], "/{$search_base}/" ) === false ) {
550
+               $search_query = get_query_var( 's' );
551
+               $engine = '';
552
+
553
+               // If the search was triggered by a supplemental engine.
554
+               if ( isset( $_GET['engine'] ) && 'default' !== $_GET['engine'] ) {
555
+                    $engine = sanitize_text_field( wp_unslash( $_GET['engine'] ) );
556
+                    $index  = array_search( $engine, $this->post_type_slugs, true );
557
+                    if ( false !== $index ) {
558
+                         $engine = $index;
559
+                    }
560
+                    $engine = $engine . '/';
561
+               }
562
+
563
+               $get_array = $_GET;
564
+
565
+               if ( is_array( $get_array ) && ! empty( $get_array ) ) {
566
+                    $vars_to_maintain = array();
567
+
568
+                    foreach ( $get_array as $ga_key => $ga_value ) {
569
+                         if ( false !== strpos( $ga_key, 'fwp_' ) ) {
570
+                              $vars_to_maintain[] = $ga_key . '=' . $ga_value;
571
+                         }
572
+                    }
573
+               }
574
+
575
+               $redirect_url = home_url( "/{$search_base}/" . $engine . urlencode( $search_query ) );
576
+
577
+               if ( ! empty( $vars_to_maintain ) ) {
578
+                    $redirect_url .= '?' . implode( '&', $vars_to_maintain );
579
+               }
580
+               wp_redirect( $redirect_url );
581
+               exit();
582
+          }
583
+     }
584
+
585
+     /**
586
+      * Parse the Query and trigger a search
587
+      */
588
+     public function pretty_search_parse_query( $query ) {
589
+          $this->post_type_slugs = array(
590
+               'post' => 'posts',
591
+               'project' => 'projects',
592
+               'service' => 'services',
593
+               'team' => 'team',
594
+               'testimonial' => 'testimonials',
595
+               'video' => 'videos',
596
+               'product' => 'products', // WooCommerce
597
+          );
598
+          if ( $query->is_search() && ! is_admin() && $query->is_main_query() ) {
599
+               $search_query = $query->get( 's' );
600
+               $keyword_test = explode( '/', $search_query );
601
+
602
+               $index = array_search( $keyword_test[0], $this->post_type_slugs, true );
603
+               if ( false !== $index ) {
604
+                    $engine = $this->post_type_slugs[ $index ];
605
+
606
+                    $query->set( 'post_type', $engine );
607
+                    $query->set( 'engine', $engine );
608
+
609
+                    if ( count( $keyword_test ) > 1 ) {
610
+                         $query->set( 's', $keyword_test[1] );
611
+                    } elseif ( post_type_exists( $engine ) ) {
612
+                         $query->set( 's', '' );
613
+                    }
614
+               } else {
615
+                    if ( isset( $this->options['general']['search_post_types'] ) && is_array( $this->options['general']['search_post_types'] ) ) {
616
+                         $post_types = array_keys( $this->options['general']['search_post_types'] );
617
+                         $query->set( 'post_type', $post_types );
618
+                    }
619
+               }
620
+          }
621
+          return $query;
622
+     }
623
+
624
+     /**
625
+      * Change the search slug to /search/ for the JSON+LD output in Yoast SEO
626
+      *
627
+      * @return url
628
+      */
629
+     public function change_json_ld_search_url() {
630
+          return trailingslashit( home_url() ) . 'search/{search_term_string}';
631
+     }
632
+
633
+     /**
634
+      * A filter to set the layout to 2 column.
635
+      */
636
+     public function lsx_layout( $layout ) {
637
+          if ( ! empty( $this->options['display'][ $this->search_prefix . '_layout' ] ) ) {
638
+               if ( false === $this->has_posts ) {
639
+                    $layout = '1c';
640
+               } else {
641
+                    $layout = $this->options['display'][ $this->search_prefix . '_layout' ];
642
+               }
643
+          }
644
+          return $layout;
645
+     }
646
+
647
+     /**
648
+      * Outputs the Search Title Facet
649
+      */
650
+     public function search_sidebar_top() {
651
+          if ( ! empty( $this->options['display'][ $this->search_prefix . '_facets' ] ) && is_array( $this->options['display'][ $this->search_prefix . '_facets' ] ) && true !== apply_filters( 'lsx_search_hide_search_box', false ) ) {
652
+
653
+               if ( ! is_search() ) {
654
+
655
+                    foreach ( $this->options['display'][ $this->search_prefix . '_facets' ] as $facet => $facet_useless ) {
656
+
657
+                         if ( isset( $this->facet_data[ $facet ] ) && 'search' === $this->facet_data[ $facet ]['type'] ) {
658
+                              echo wp_kses_post( '<div class="row">' );
659
+                                   $this->display_facet_default( $facet );
660
+                              echo wp_kses_post( '</div>' );
661
+                              unset( $this->options['display'][ $this->search_prefix . '_facets' ][ $facet ] );
662
+                         }
663
+                    }
664
+               } else {
665
+                    echo wp_kses_post( '<div class="row">' );
666
+                         $this->display_facet_search();
667
+                    echo wp_kses_post( '</div>' );
668
+               }
669
+          }
670
+     }
671
+
672
+     /**
673
+      * Overrides the search facet HTML
674
+      * @param $output
675
+      * @param $params
676
+      *
677
+      * @return string
678
+      */
679
+     public function search_facet_html( $output, $params ) {
680
+          if ( 'search' == $params['facet']['type'] ) {
681
+
682
+               $value = (array) $params['selected_values'];
683
+               $value = empty( $value ) ? '' : stripslashes( $value[0] );
684
+               $placeholder = isset( $params['facet']['placeholder'] ) ? $params['facet']['placeholder'] : __( 'Search...', 'lsx-search' );
685
+               $placeholder = facetwp_i18n( $placeholder );
686
+
687
+               ob_start();
688
+               ?>
689 689
 			<div class="col-xs-12 facetwp-item facetwp-form">
690 690
 				<div class="search-form lsx-search-form 2">
691 691
 					<div class="input-group facetwp-search-wrap">
@@ -700,75 +700,75 @@  discard block
 block discarded – undo
700 700
 				</div>
701 701
 			</div>
702 702
 			<?php
703
-			$output = ob_get_clean();
704
-		}
705
-		return $output;
706
-	}
707
-
708
-	/**
709
-	 * Change the primary and secondary column classes.
710
-	 */
711
-	public function lsx_layout_selector( $return_class, $class, $layout, $size ) {
712
-		if ( ! empty( $this->options['display'][ $this->search_prefix . '_layout' ] ) ) {
713
-
714
-			if ( '2cl' === $layout || '2cr' === $layout ) {
715
-				$main_class    = 'col-sm-8 col-md-9';
716
-				$sidebar_class = 'col-sm-4 col-md-3';
717
-
718
-				if ( '2cl' === $layout ) {
719
-					$main_class    .= ' col-sm-pull-4 col-md-pull-3 search-sidebar-left';
720
-					$sidebar_class .= ' col-sm-push-8 col-md-push-9';
721
-				}
722
-
723
-				if ( 'main' === $class ) {
724
-					return $main_class;
725
-				}
726
-
727
-				if ( 'sidebar' === $class ) {
728
-					return $sidebar_class;
729
-				}
730
-			}
731
-		}
732
-
733
-		return $return_class;
734
-	}
735
-
736
-	/**
737
-	 * Displays the Alphabet sorter above the facets.
738
-	 *
739
-	 * @return void
740
-	 */
741
-	public function display_alphabet_facet() {
742
-		if ( isset( $this->options['display'][ $this->search_prefix . '_az_pagination' ] ) ) {
743
-			$az_pagination = $this->options['display'][ $this->search_prefix . '_az_pagination' ];
744
-		} else {
745
-			$az_pagination = false;
746
-		}
747
-		$az_pagination = apply_filters( 'lsx_search_top_az_pagination', $az_pagination );
748
-		if ( false !== $az_pagination && '' !== $az_pagination ) {
749
-			echo do_shortcode( '[facetwp facet="' . $az_pagination . '"]' );
750
-		}
751
-	}
752
-
753
-	/**
754
-	 * Outputs top.
755
-	 */
756
-	public function facet_top_bar() {
757
-		if ( true === apply_filters( 'lsx_search_hide_top_bar', false ) ) {
758
-			return;
759
-		}
760
-
761
-		$show_pagination     = true;
762
-		$pagination_visible  = false;
763
-		$show_per_page_combo = empty( $this->options['display'][ $this->search_prefix . '_disable_per_page' ] );
764
-		$show_sort_combo     = empty( $this->options['display'][ $this->search_prefix . '_disable_sorting' ] );
765
-
766
-		$show_pagination     = apply_filters( 'lsx_search_top_show_pagination', $show_pagination );
767
-		$pagination_visible  = apply_filters( 'lsx_search_top_pagination_visible', $pagination_visible );
768
-		$show_per_page_combo = apply_filters( 'lsx_search_top_show_per_page_combo', $show_per_page_combo );
769
-		$show_sort_combo     = apply_filters( 'lsx_search_top_show_sort_combo', $show_sort_combo );
770
-		$facet_row_classes   = apply_filters( 'lsx_search_top_facetwp_row_classes', '' );
771
-		?>
703
+               $output = ob_get_clean();
704
+          }
705
+          return $output;
706
+     }
707
+
708
+     /**
709
+      * Change the primary and secondary column classes.
710
+      */
711
+     public function lsx_layout_selector( $return_class, $class, $layout, $size ) {
712
+          if ( ! empty( $this->options['display'][ $this->search_prefix . '_layout' ] ) ) {
713
+
714
+               if ( '2cl' === $layout || '2cr' === $layout ) {
715
+                    $main_class    = 'col-sm-8 col-md-9';
716
+                    $sidebar_class = 'col-sm-4 col-md-3';
717
+
718
+                    if ( '2cl' === $layout ) {
719
+                         $main_class    .= ' col-sm-pull-4 col-md-pull-3 search-sidebar-left';
720
+                         $sidebar_class .= ' col-sm-push-8 col-md-push-9';
721
+                    }
722
+
723
+                    if ( 'main' === $class ) {
724
+                         return $main_class;
725
+                    }
726
+
727
+                    if ( 'sidebar' === $class ) {
728
+                         return $sidebar_class;
729
+                    }
730
+               }
731
+          }
732
+
733
+          return $return_class;
734
+     }
735
+
736
+     /**
737
+      * Displays the Alphabet sorter above the facets.
738
+      *
739
+      * @return void
740
+      */
741
+     public function display_alphabet_facet() {
742
+          if ( isset( $this->options['display'][ $this->search_prefix . '_az_pagination' ] ) ) {
743
+               $az_pagination = $this->options['display'][ $this->search_prefix . '_az_pagination' ];
744
+          } else {
745
+               $az_pagination = false;
746
+          }
747
+          $az_pagination = apply_filters( 'lsx_search_top_az_pagination', $az_pagination );
748
+          if ( false !== $az_pagination && '' !== $az_pagination ) {
749
+               echo do_shortcode( '[facetwp facet="' . $az_pagination . '"]' );
750
+          }
751
+     }
752
+
753
+     /**
754
+      * Outputs top.
755
+      */
756
+     public function facet_top_bar() {
757
+          if ( true === apply_filters( 'lsx_search_hide_top_bar', false ) ) {
758
+               return;
759
+          }
760
+
761
+          $show_pagination     = true;
762
+          $pagination_visible  = false;
763
+          $show_per_page_combo = empty( $this->options['display'][ $this->search_prefix . '_disable_per_page' ] );
764
+          $show_sort_combo     = empty( $this->options['display'][ $this->search_prefix . '_disable_sorting' ] );
765
+
766
+          $show_pagination     = apply_filters( 'lsx_search_top_show_pagination', $show_pagination );
767
+          $pagination_visible  = apply_filters( 'lsx_search_top_pagination_visible', $pagination_visible );
768
+          $show_per_page_combo = apply_filters( 'lsx_search_top_show_per_page_combo', $show_per_page_combo );
769
+          $show_sort_combo     = apply_filters( 'lsx_search_top_show_sort_combo', $show_sort_combo );
770
+          $facet_row_classes   = apply_filters( 'lsx_search_top_facetwp_row_classes', '' );
771
+          ?>
772 772
 		<div id="facetwp-top">
773 773
 			<?php if ( $show_sort_combo || ( $show_pagination && $show_per_page_combo ) ) { ?>
774 774
 				<div class="row facetwp-top-row-1 hidden-xs <?php echo esc_attr( $facet_row_classes ); ?>">
@@ -799,32 +799,32 @@  discard block
 block discarded – undo
799 799
 			<?php } ?>
800 800
 		</div>
801 801
 		<?php
802
-	}
803
-
804
-	/**
805
-	 * Outputs bottom.
806
-	 */
807
-	public function facet_bottom_bar() {
808
-		if ( true === apply_filters( 'lsx_search_hide_bottom_bar', false ) ) {
809
-			return;
810
-		}
811
-		$show_pagination    = true;
812
-		$pagination_visible = false;
813
-		if ( isset( $this->options['display'][ $this->search_prefix . '_az_pagination' ] ) ) {
814
-			$az_pagination = $this->options['display'][ $this->search_prefix . '_az_pagination' ];
815
-		} else {
816
-			$az_pagination = false;
817
-		}
818
-
819
-		$show_per_page_combo = empty( $this->options['display'][ $this->search_prefix . '_disable_per_page' ] );
820
-		$show_sort_combo     = empty( $this->options['display'][ $this->search_prefix . '_search_disable_sorting' ] );
821
-
822
-		$show_pagination     = apply_filters( 'lsx_search_bottom_show_pagination', $show_pagination );
823
-		$pagination_visible  = apply_filters( 'lsx_search_bottom_pagination_visible', $pagination_visible );
824
-		$show_per_page_combo = apply_filters( 'lsx_search_bottom_show_per_page_combo', $show_per_page_combo );
825
-		$show_sort_combo     = apply_filters( 'lsx_search_bottom_show_sort_combo', $show_sort_combo );
826
-
827
-		if ( $show_pagination || ! empty( $az_pagination ) ) { ?>
802
+     }
803
+
804
+     /**
805
+      * Outputs bottom.
806
+      */
807
+     public function facet_bottom_bar() {
808
+          if ( true === apply_filters( 'lsx_search_hide_bottom_bar', false ) ) {
809
+               return;
810
+          }
811
+          $show_pagination    = true;
812
+          $pagination_visible = false;
813
+          if ( isset( $this->options['display'][ $this->search_prefix . '_az_pagination' ] ) ) {
814
+               $az_pagination = $this->options['display'][ $this->search_prefix . '_az_pagination' ];
815
+          } else {
816
+               $az_pagination = false;
817
+          }
818
+
819
+          $show_per_page_combo = empty( $this->options['display'][ $this->search_prefix . '_disable_per_page' ] );
820
+          $show_sort_combo     = empty( $this->options['display'][ $this->search_prefix . '_search_disable_sorting' ] );
821
+
822
+          $show_pagination     = apply_filters( 'lsx_search_bottom_show_pagination', $show_pagination );
823
+          $pagination_visible  = apply_filters( 'lsx_search_bottom_pagination_visible', $pagination_visible );
824
+          $show_per_page_combo = apply_filters( 'lsx_search_bottom_show_per_page_combo', $show_per_page_combo );
825
+          $show_sort_combo     = apply_filters( 'lsx_search_bottom_show_sort_combo', $show_sort_combo );
826
+
827
+          if ( $show_pagination || ! empty( $az_pagination ) ) { ?>
828 828
 			<div id="facetwp-bottom">
829 829
 				<div class="row facetwp-bottom-row-1">
830 830
 					<div class="col-xs-12">
@@ -839,61 +839,61 @@  discard block
 block discarded – undo
839 839
 						<?php //} ?>
840 840
 
841 841
 						<?php
842
-						if ( $show_pagination ) {
843
-							$output_pagination = do_shortcode( '[facetwp pager="true"]' );
844
-							if ( ! empty( $this->options['display'][ $this->search_prefix . '_facets' ] ) && is_array( $this->options['display'][ $this->search_prefix . '_facets' ] ) ) {
845
-								foreach ( $this->options['display'][ $this->search_prefix . '_facets' ] as $facet => $facet_useless ) {
846
-									if ( isset( $this->facet_data[ $facet ] ) && in_array( $this->facet_data[ $facet ]['type'], array( 'pager' ) ) ) {
847
-										$output_pagination = do_shortcode( '[facetwp facet="pager_"]' );
848
-									}
849
-								}
850
-							}
851
-							echo wp_kses_post( $output_pagination );
852
-						?>
842
+                              if ( $show_pagination ) {
843
+                                   $output_pagination = do_shortcode( '[facetwp pager="true"]' );
844
+                                   if ( ! empty( $this->options['display'][ $this->search_prefix . '_facets' ] ) && is_array( $this->options['display'][ $this->search_prefix . '_facets' ] ) ) {
845
+                                        foreach ( $this->options['display'][ $this->search_prefix . '_facets' ] as $facet => $facet_useless ) {
846
+                                             if ( isset( $this->facet_data[ $facet ] ) && in_array( $this->facet_data[ $facet ]['type'], array( 'pager' ) ) ) {
847
+                                                  $output_pagination = do_shortcode( '[facetwp facet="pager_"]' );
848
+                                             }
849
+                                        }
850
+                                   }
851
+                                   echo wp_kses_post( $output_pagination );
852
+                              ?>
853 853
 						<?php } ?>
854 854
 					</div>
855 855
 				</div>
856 856
 			</div>
857 857
 		<?php }
858
-	}
859
-
860
-	/**
861
-	 * Adds in the closing facetwp div
862
-	 *
863
-	 * @return void
864
-	 */
865
-	public function facetwp_tempate_open() {
866
-		?>
858
+     }
859
+
860
+     /**
861
+      * Adds in the closing facetwp div
862
+      *
863
+      * @return void
864
+      */
865
+     public function facetwp_tempate_open() {
866
+          ?>
867 867
 		<div class="facetwp-template">
868 868
 		<?php
869
-	}
870
-
871
-	/**
872
-	 * Adds in the closing facetwp div
873
-	 *
874
-	 * @return void
875
-	 */
876
-	public function facetwp_tempate_close() {
877
-		?>
869
+     }
870
+
871
+     /**
872
+      * Adds in the closing facetwp div
873
+      *
874
+      * @return void
875
+      */
876
+     public function facetwp_tempate_close() {
877
+          ?>
878 878
 		</div>
879 879
 		<?php
880
-	}
881
-
882
-	/**
883
-	 * Disables default sidebar.
884
-	 */
885
-	public function lsx_sidebar_enable( $sidebar_enabled ) {
886
-		$sidebar_enabled = false;
887
-		return $sidebar_enabled;
888
-	}
889
-
890
-	/**
891
-	 * Outputs custom sidebar.
892
-	 */
893
-	public function search_sidebar() {
894
-
895
-		$this->options = apply_filters( 'lsx_search_sidebar_options', $this->options );
896
-		?>
880
+     }
881
+
882
+     /**
883
+      * Disables default sidebar.
884
+      */
885
+     public function lsx_sidebar_enable( $sidebar_enabled ) {
886
+          $sidebar_enabled = false;
887
+          return $sidebar_enabled;
888
+     }
889
+
890
+     /**
891
+      * Outputs custom sidebar.
892
+      */
893
+     public function search_sidebar() {
894
+
895
+          $this->options = apply_filters( 'lsx_search_sidebar_options', $this->options );
896
+          ?>
897 897
 			<?php do_action( 'lsx_search_sidebar_before' ); ?>
898 898
 
899 899
 			<div id="secondary" class="facetwp-sidebar widget-area <?php echo esc_attr( lsx_sidebar_class() ); ?>" role="complementary">
@@ -918,13 +918,13 @@  discard block
 block discarded – undo
918 918
 
919 919
 							<div class="row">
920 920
 								<?php
921
-								// Slider.
922
-								foreach ( $this->options['display'][ $this->search_prefix . '_facets' ] as $facet => $facet_useless ) {
923
-									if ( isset( $this->facet_data[ $facet ] ) && ! in_array( $this->facet_data[ $facet ]['type'], array( 'alpha', 'search', 'pager' ) ) ) {
924
-										$this->display_facet_default( $facet );
925
-									}
926
-								}
927
-								?>
921
+                                        // Slider.
922
+                                        foreach ( $this->options['display'][ $this->search_prefix . '_facets' ] as $facet => $facet_useless ) {
923
+                                             if ( isset( $this->facet_data[ $facet ] ) && ! in_array( $this->facet_data[ $facet ]['type'], array( 'alpha', 'search', 'pager' ) ) ) {
924
+                                                  $this->display_facet_default( $facet );
925
+                                             }
926
+                                        }
927
+                                        ?>
928 928
 							</div>
929 929
 
930 930
 							<div class="row hidden-sm hidden-md hidden-lg ssm-row-margin-top">
@@ -941,35 +941,35 @@  discard block
 block discarded – undo
941 941
 
942 942
 			<?php do_action( 'lsx_search_sidebar_after' ); ?>
943 943
 		<?php
944
-	}
945
-
946
-	/**
947
-	 * Check if the pager facet is on
948
-	 *
949
-	 * @return void
950
-	 */
951
-	public function pager_facet_enabled() {
952
-
953
-		$pager_facet_off = false;
954
-
955
-		if ( ! empty( $this->options['display'][ $this->search_prefix . '_facets' ] ) && is_array( $this->options['display'][ $this->search_prefix . '_facets' ] ) ) {
956
-			foreach ( $this->options['display'][ $this->search_prefix . '_facets' ] as $facet => $facet_useless ) {
957
-				if ( isset( $this->facet_data[ $facet ] ) && ! in_array( $this->facet_data[ $facet ]['type'], array( 'pager' ) ) ) {
958
-					$pager_facet_off = true;
959
-				}
960
-			}
961
-		}
962
-
963
-		return $pager_facet_off;
964
-	}
965
-
966
-	/**
967
-	 * Display WooCommerce archive title.
968
-	 */
969
-	public function wc_archive_header() {
970
-		$default_size   = 'sm';
971
-		$size           = apply_filters( 'lsx_bootstrap_column_size', $default_size );
972
-		?>
944
+     }
945
+
946
+     /**
947
+      * Check if the pager facet is on
948
+      *
949
+      * @return void
950
+      */
951
+     public function pager_facet_enabled() {
952
+
953
+          $pager_facet_off = false;
954
+
955
+          if ( ! empty( $this->options['display'][ $this->search_prefix . '_facets' ] ) && is_array( $this->options['display'][ $this->search_prefix . '_facets' ] ) ) {
956
+               foreach ( $this->options['display'][ $this->search_prefix . '_facets' ] as $facet => $facet_useless ) {
957
+                    if ( isset( $this->facet_data[ $facet ] ) && ! in_array( $this->facet_data[ $facet ]['type'], array( 'pager' ) ) ) {
958
+                         $pager_facet_off = true;
959
+                    }
960
+               }
961
+          }
962
+
963
+          return $pager_facet_off;
964
+     }
965
+
966
+     /**
967
+      * Display WooCommerce archive title.
968
+      */
969
+     public function wc_archive_header() {
970
+          $default_size   = 'sm';
971
+          $size           = apply_filters( 'lsx_bootstrap_column_size', $default_size );
972
+          ?>
973 973
 			<div class="archive-header-wrapper banner-woocommerce col-<?php echo esc_attr( $size ); ?>-12">
974 974
 				<?php lsx_global_header_inner_bottom(); ?>
975 975
 				<header class="archive-header">
@@ -977,13 +977,13 @@  discard block
 block discarded – undo
977 977
 				</header>
978 978
 			</div>
979 979
 		<?php
980
-	}
980
+     }
981 981
 
982
-	/**
983
-	 * Display facet search.
984
-	 */
985
-	public function display_facet_search() {
986
-		?>
982
+     /**
983
+      * Display facet search.
984
+      */
985
+     public function display_facet_search() {
986
+          ?>
987 987
 		<div class="col-xs-12 facetwp-item facetwp-form">
988 988
 			<form class="search-form lsx-search-form" action="<?php echo esc_attr( home_url() ); ?>" method="get">
989 989
 				<div class="input-group">
@@ -998,17 +998,17 @@  discard block
 block discarded – undo
998 998
 			</form>
999 999
 		</div>
1000 1000
 		<?php
1001
-	}
1001
+     }
1002 1002
 
1003
-	/**
1004
-	 * Display facet default.
1005
-	 */
1006
-	public function display_facet_default( $facet ) {
1003
+     /**
1004
+      * Display facet default.
1005
+      */
1006
+     public function display_facet_default( $facet ) {
1007 1007
 
1008
-		$show_collapse = ! isset( $this->options['display'][$this->search_prefix . '_collapse'] ) || 'on' !== $this->options['display'][$this->search_prefix . '_collapse'];
1009
-		$col_class = '';
1008
+          $show_collapse = ! isset( $this->options['display'][$this->search_prefix . '_collapse'] ) || 'on' !== $this->options['display'][$this->search_prefix . '_collapse'];
1009
+          $col_class = '';
1010 1010
 
1011
-		if ( 'search' === $this->facet_data[ $facet ]['type'] ) : ?>
1011
+          if ( 'search' === $this->facet_data[ $facet ]['type'] ) : ?>
1012 1012
 			<?php echo do_shortcode( '[facetwp facet="' . $facet . '"]' ); ?>
1013 1013
 		<?php else : ?>
1014 1014
 			<div class="col-xs-12 facetwp-item parent-facetwp-facet-<?php echo esc_html( $facet ); ?> <?php echo esc_attr( $col_class ); ?>">
@@ -1026,85 +1026,85 @@  discard block
 block discarded – undo
1026 1026
 				<?php } ?>
1027 1027
 			</div>
1028 1028
 		<?php
1029
-		endif;
1030
-	}
1031
-
1032
-	/**
1033
-	 * Changes slot column class.
1034
-	 */
1035
-	public function change_slot_column_class( $class ) {
1036
-		if ( is_post_type_archive( 'video' ) || is_tax( 'video-category' ) ) {
1037
-			$column_class = 'col-xs-12 col-sm-4';
1038
-		}
1039
-
1040
-		return $column_class;
1041
-	}
1042
-
1043
-	/**
1044
-	 * Add post type label to the title.
1045
-	 */
1046
-	public function add_label_to_title() {
1047
-		if ( is_search() ) {
1048
-			if ( ! empty( $this->options['display']['engine_search_enable_pt_label'] ) ) {
1049
-				$post_type = get_post_type();
1050
-				$post_type = str_replace( '_', ' ', $post_type );
1051
-				$post_type = str_replace( '-', ' ', $post_type );
1052
-				if ( 'tribe events' === $post_type ) {
1053
-					$post_type = 'Events';
1054
-				}
1055
-				echo wp_kses_post( ' <span class="label label-default lsx-label-post-type">' . $post_type . '</span>' );
1056
-			}
1057
-		}
1058
-	}
1059
-
1060
-	/**
1061
-	 * Changes the sort options.
1062
-	 */
1063
-	public function facetwp_sort_options( $options, $params ) {
1064
-		$this->set_vars();
1065
-
1066
-		if ( true === $this->search_enabled ) {
1067
-			if ( 'default' !== $params['template_name'] && 'wp' !== $params['template_name'] ) {
1068
-				return $options;
1069
-			}
1070
-
1071
-			if ( ! empty( $this->options['display'][ $this->search_prefix . '_disable_date' ] ) ) {
1072
-				unset( $options['date_desc'] );
1073
-				unset( $options['date_asc'] );
1074
-			}
1075
-
1076
-			if ( ! empty( $this->options['display'][ $this->search_prefix . '_disable_az_sorting' ] ) ) {
1077
-				unset( $options['title_desc'] );
1078
-				unset( $options['title_asc'] );
1079
-			}
1080
-		}
1081
-
1082
-		return $options;
1083
-	}
1084
-
1085
-	/**
1086
-	 * @param $allowedtags
1087
-	 * @param $context
1088
-	 *
1089
-	 * @return mixed
1090
-	 */
1091
-	public function kses_allowed_html( $allowedtags, $context ) {
1092
-		$allowedtags['a']['data-value'] = true;
1093
-		$allowedtags['a']['data-selection']  = true;
1094
-		$allowedtags['button']['data-toggle'] = true;
1095
-		return $allowedtags;
1096
-	}
1097
-
1098
-	/**
1099
-	 * Change FaceWP result count HTML
1100
-	 */
1101
-	public function get_search_query( $keyword ) {
1102
-		$needle = trim( '/ ' );
1103
-		$words = explode( $needle, $keyword );
1104
-		if ( is_array( $words ) && ! empty( $words ) ) {
1105
-			$keyword = $words[ count( $words ) - 1 ];
1106
-		}
1107
-		$keyword = str_replace( '+', ' ', $keyword );
1108
-		return $keyword;
1109
-	}
1029
+          endif;
1030
+     }
1031
+
1032
+     /**
1033
+      * Changes slot column class.
1034
+      */
1035
+     public function change_slot_column_class( $class ) {
1036
+          if ( is_post_type_archive( 'video' ) || is_tax( 'video-category' ) ) {
1037
+               $column_class = 'col-xs-12 col-sm-4';
1038
+          }
1039
+
1040
+          return $column_class;
1041
+     }
1042
+
1043
+     /**
1044
+      * Add post type label to the title.
1045
+      */
1046
+     public function add_label_to_title() {
1047
+          if ( is_search() ) {
1048
+               if ( ! empty( $this->options['display']['engine_search_enable_pt_label'] ) ) {
1049
+                    $post_type = get_post_type();
1050
+                    $post_type = str_replace( '_', ' ', $post_type );
1051
+                    $post_type = str_replace( '-', ' ', $post_type );
1052
+                    if ( 'tribe events' === $post_type ) {
1053
+                         $post_type = 'Events';
1054
+                    }
1055
+                    echo wp_kses_post( ' <span class="label label-default lsx-label-post-type">' . $post_type . '</span>' );
1056
+               }
1057
+          }
1058
+     }
1059
+
1060
+     /**
1061
+      * Changes the sort options.
1062
+      */
1063
+     public function facetwp_sort_options( $options, $params ) {
1064
+          $this->set_vars();
1065
+
1066
+          if ( true === $this->search_enabled ) {
1067
+               if ( 'default' !== $params['template_name'] && 'wp' !== $params['template_name'] ) {
1068
+                    return $options;
1069
+               }
1070
+
1071
+               if ( ! empty( $this->options['display'][ $this->search_prefix . '_disable_date' ] ) ) {
1072
+                    unset( $options['date_desc'] );
1073
+                    unset( $options['date_asc'] );
1074
+               }
1075
+
1076
+               if ( ! empty( $this->options['display'][ $this->search_prefix . '_disable_az_sorting' ] ) ) {
1077
+                    unset( $options['title_desc'] );
1078
+                    unset( $options['title_asc'] );
1079
+               }
1080
+          }
1081
+
1082
+          return $options;
1083
+     }
1084
+
1085
+     /**
1086
+      * @param $allowedtags
1087
+      * @param $context
1088
+      *
1089
+      * @return mixed
1090
+      */
1091
+     public function kses_allowed_html( $allowedtags, $context ) {
1092
+          $allowedtags['a']['data-value'] = true;
1093
+          $allowedtags['a']['data-selection']  = true;
1094
+          $allowedtags['button']['data-toggle'] = true;
1095
+          return $allowedtags;
1096
+     }
1097
+
1098
+     /**
1099
+      * Change FaceWP result count HTML
1100
+      */
1101
+     public function get_search_query( $keyword ) {
1102
+          $needle = trim( '/ ' );
1103
+          $words = explode( $needle, $keyword );
1104
+          if ( is_array( $words ) && ! empty( $words ) ) {
1105
+               $keyword = $words[ count( $words ) - 1 ];
1106
+          }
1107
+          $keyword = str_replace( '+', ' ', $keyword );
1108
+          return $keyword;
1109
+     }
1110 1110
 }
Please login to merge, or discard this patch.
Spacing   +325 added lines, -325 removed lines patch added patch discarded remove patch
@@ -70,28 +70,28 @@  discard block
 block discarded – undo
70 70
 		$this->options = \lsx\search\includes\get_options();
71 71
 		$this->load_classes();
72 72
 
73
-		add_filter( 'wpseo_json_ld_search_url', array( $this, 'change_json_ld_search_url' ), 10, 1 );
74
-		add_action( 'wp', array( $this, 'set_vars' ), 21 );
75
-		add_action( 'wp', array( $this, 'set_facetwp_vars' ), 22 );
76
-		add_action( 'wp', array( $this, 'core' ), 23 );
77
-		add_action( 'lsx_body_top', array( $this, 'check_for_results' ) );
78
-
79
-		add_filter( 'pre_get_posts', array( $this, 'ignore_sticky_search' ) );
80
-		add_action( 'pre_get_posts', array( $this, 'filter_post_types' ) );
81
-
82
-		add_filter( 'lsx_search_post_types', array( $this, 'register_post_types' ) );
83
-		add_filter( 'lsx_search_taxonomies', array( $this, 'register_taxonomies' ) );
84
-		add_filter( 'lsx_search_post_types_plural', array( $this, 'register_post_type_tabs' ) );
85
-		add_filter( 'facetwp_sort_options', array( $this, 'facetwp_sort_options' ), 10, 2 );
86
-		add_filter( 'wp_kses_allowed_html', array( $this, 'kses_allowed_html' ), 20, 2 );
87
-		add_filter( 'get_search_query', array( $this, 'get_search_query' ) );
73
+		add_filter('wpseo_json_ld_search_url', array($this, 'change_json_ld_search_url'), 10, 1);
74
+		add_action('wp', array($this, 'set_vars'), 21);
75
+		add_action('wp', array($this, 'set_facetwp_vars'), 22);
76
+		add_action('wp', array($this, 'core'), 23);
77
+		add_action('lsx_body_top', array($this, 'check_for_results'));
78
+
79
+		add_filter('pre_get_posts', array($this, 'ignore_sticky_search'));
80
+		add_action('pre_get_posts', array($this, 'filter_post_types'));
81
+
82
+		add_filter('lsx_search_post_types', array($this, 'register_post_types'));
83
+		add_filter('lsx_search_taxonomies', array($this, 'register_taxonomies'));
84
+		add_filter('lsx_search_post_types_plural', array($this, 'register_post_type_tabs'));
85
+		add_filter('facetwp_sort_options', array($this, 'facetwp_sort_options'), 10, 2);
86
+		add_filter('wp_kses_allowed_html', array($this, 'kses_allowed_html'), 20, 2);
87
+		add_filter('get_search_query', array($this, 'get_search_query'));
88 88
 
89 89
 		// Redirects.
90
-		add_action( 'template_redirect', array( $this, 'pretty_search_redirect' ) );
91
-		add_filter( 'pre_get_posts', array( $this, 'pretty_search_parse_query' ) );
90
+		add_action('template_redirect', array($this, 'pretty_search_redirect'));
91
+		add_filter('pre_get_posts', array($this, 'pretty_search_parse_query'));
92 92
 
93
-		add_action( 'lsx_search_sidebar_top', array( $this, 'search_sidebar_top' ) );
94
-		add_filter( 'facetwp_facet_html', array( $this, 'search_facet_html' ), 10, 2 );
93
+		add_action('lsx_search_sidebar_top', array($this, 'search_sidebar_top'));
94
+		add_filter('facetwp_facet_html', array($this, 'search_facet_html'), 10, 2);
95 95
 	}
96 96
 
97 97
 	/**
@@ -103,7 +103,7 @@  discard block
 block discarded – undo
103 103
 	 */
104 104
 	public static function get_instance() {
105 105
 		// If the single instance hasn't been set, set it now.
106
-		if ( null === self::$instance ) {
106
+		if (null === self::$instance) {
107 107
 			self::$instance = new self();
108 108
 		}
109 109
 		return self::$instance;
@@ -113,7 +113,7 @@  discard block
 block discarded – undo
113 113
 	 * Loads the variable classes and the static classes.
114 114
 	 */
115 115
 	private function load_classes() {
116
-		require_once LSX_SEARCH_PATH . 'classes/frontend/class-layout.php';
116
+		require_once LSX_SEARCH_PATH.'classes/frontend/class-layout.php';
117 117
 		$this->layout = frontend\Layout::get_instance();
118 118
 	}
119 119
 
@@ -123,10 +123,10 @@  discard block
 block discarded – undo
123 123
 	public function set_vars() {
124 124
 		$post_type = '';
125 125
 
126
-		$this->post_types      = apply_filters( 'lsx_search_post_types', array() );
127
-		$this->taxonomies      = apply_filters( 'lsx_search_taxonomies', array() );
128
-		$this->tabs            = apply_filters( 'lsx_search_post_types_plural', array() );
129
-		$this->options         = apply_filters( 'lsx_search_options', $this->options );
126
+		$this->post_types      = apply_filters('lsx_search_post_types', array());
127
+		$this->taxonomies      = apply_filters('lsx_search_taxonomies', array());
128
+		$this->tabs            = apply_filters('lsx_search_post_types_plural', array());
129
+		$this->options         = apply_filters('lsx_search_options', $this->options);
130 130
 		$this->post_types      = get_post_types();
131 131
 		$this->post_type_slugs = array(
132 132
 			'post'        => 'posts',
@@ -139,22 +139,22 @@  discard block
 block discarded – undo
139 139
 		);
140 140
 		$this->set_search_prefix();
141 141
 		$this->get_cmb2_options();
142
-		$this->search_enabled = apply_filters( 'lsx_search_enabled', $this->is_search_enabled(), $this );
143
-		$this->search_prefix  = apply_filters( 'lsx_search_prefix', $this->search_prefix, $this );
142
+		$this->search_enabled = apply_filters('lsx_search_enabled', $this->is_search_enabled(), $this);
143
+		$this->search_prefix  = apply_filters('lsx_search_prefix', $this->search_prefix, $this);
144 144
 	}
145 145
 
146 146
 	private function get_cmb2_options() {
147
-		$cmb2_options = get_option( 'lsx-search-settings' );
148
-		if ( false !== $cmb2_options && ! empty( $cmb2_options ) ) {
149
-			$this->set_search_prefix( true );
147
+		$cmb2_options = get_option('lsx-search-settings');
148
+		if (false !== $cmb2_options && !empty($cmb2_options)) {
149
+			$this->set_search_prefix(true);
150 150
 			$this->options['display'] = $cmb2_options;
151
-			foreach ( $this->options['display'] as $option_key => $option_value ) {
152
-				if ( is_array( $option_value ) && ! empty( $option_value ) ) {
151
+			foreach ($this->options['display'] as $option_key => $option_value) {
152
+				if (is_array($option_value) && !empty($option_value)) {
153 153
 					$new_values = array();
154
-					foreach ( $option_value as $empty_key => $key_value ) {
155
-						$new_values[ $key_value ] = 'on';
154
+					foreach ($option_value as $empty_key => $key_value) {
155
+						$new_values[$key_value] = 'on';
156 156
 					}
157
-					$this->options['display'][ $option_key ] = $new_values;
157
+					$this->options['display'][$option_key] = $new_values;
158 158
 				}
159 159
 			}
160 160
 			$this->new_options = true;
@@ -164,46 +164,46 @@  discard block
 block discarded – undo
164 164
 
165 165
 	private function disable_to_search_actions() {
166 166
 		global $lsx_to_search_fwp, $lsx_to_search;
167
-		if ( null !== $lsx_to_search ) {
167
+		if (null !== $lsx_to_search) {
168 168
 			// Redirects.
169
-			remove_filter( 'template_include', array( $lsx_to_search, 'search_template_include' ), 99 );
170
-			remove_action( 'template_redirect', array( $lsx_to_search, 'pretty_search_redirect' ) );
171
-			remove_filter( 'pre_get_posts', array( $lsx_to_search, 'pretty_search_parse_query' ) );
169
+			remove_filter('template_include', array($lsx_to_search, 'search_template_include'), 99);
170
+			remove_action('template_redirect', array($lsx_to_search, 'pretty_search_redirect'));
171
+			remove_filter('pre_get_posts', array($lsx_to_search, 'pretty_search_parse_query'));
172 172
 
173 173
 			// Layout Filter.
174
-			remove_filter( 'lsx_layout', array( $lsx_to_search, 'lsx_layout' ), 20, 1 );
175
-			remove_filter( 'lsx_layout_selector', array( $lsx_to_search, 'lsx_layout_selector' ), 10, 4 );
176
-			remove_filter( 'lsx_to_archive_layout', array( $lsx_to_search, 'lsx_to_search_archive_layout' ), 10, 2 );
174
+			remove_filter('lsx_layout', array($lsx_to_search, 'lsx_layout'), 20, 1);
175
+			remove_filter('lsx_layout_selector', array($lsx_to_search, 'lsx_layout_selector'), 10, 4);
176
+			remove_filter('lsx_to_archive_layout', array($lsx_to_search, 'lsx_to_search_archive_layout'), 10, 2);
177 177
 
178
-			remove_action( 'lsx_search_sidebar_top', array( $lsx_to_search, 'search_sidebar_top' ) );
179
-			remove_action( 'pre_get_posts', array( $lsx_to_search, 'price_sorting' ), 100 );
178
+			remove_action('lsx_search_sidebar_top', array($lsx_to_search, 'search_sidebar_top'));
179
+			remove_action('pre_get_posts', array($lsx_to_search, 'price_sorting'), 100);
180 180
 
181 181
 			//add_shortcode( 'lsx_search_form', array( 'LSX_TO_Search_Frontend', 'search_form' ) );
182
-			remove_filter( 'searchwp_short_circuit', array( $lsx_to_search, 'searchwp_short_circuit' ), 10, 2 );
183
-			remove_filter( 'get_search_query', array( $lsx_to_search, 'get_search_query' ) );
184
-			remove_filter( 'body_class', array( $lsx_to_search, 'to_add_search_url_class' ), 20 );
182
+			remove_filter('searchwp_short_circuit', array($lsx_to_search, 'searchwp_short_circuit'), 10, 2);
183
+			remove_filter('get_search_query', array($lsx_to_search, 'get_search_query'));
184
+			remove_filter('body_class', array($lsx_to_search, 'to_add_search_url_class'), 20);
185 185
 
186
-			remove_filter( 'facetwp_preload_url_vars', array( $lsx_to_search, 'preload_url_vars' ), 10, 1 );
187
-			remove_filter( 'wpseo_json_ld_search_url', array( $lsx_to_search, 'change_json_ld_search_url' ), 10, 1 );
186
+			remove_filter('facetwp_preload_url_vars', array($lsx_to_search, 'preload_url_vars'), 10, 1);
187
+			remove_filter('wpseo_json_ld_search_url', array($lsx_to_search, 'change_json_ld_search_url'), 10, 1);
188 188
 		}
189
-		if ( null !== $lsx_to_search_fwp ) {
190
-			remove_filter( 'facetwp_indexer_row_data', array( $lsx_to_search_fwp, 'facetwp_index_row_data' ), 10, 2 );
191
-			remove_filter( 'facetwp_index_row', array( $lsx_to_search_fwp, 'facetwp_index_row' ), 10, 2 );
189
+		if (null !== $lsx_to_search_fwp) {
190
+			remove_filter('facetwp_indexer_row_data', array($lsx_to_search_fwp, 'facetwp_index_row_data'), 10, 2);
191
+			remove_filter('facetwp_index_row', array($lsx_to_search_fwp, 'facetwp_index_row'), 10, 2);
192 192
 
193
-			remove_filter( 'facetwp_sort_options', array( $lsx_to_search_fwp, 'facet_sort_options' ), 10, 2 );
193
+			remove_filter('facetwp_sort_options', array($lsx_to_search_fwp, 'facet_sort_options'), 10, 2);
194 194
 
195
-			remove_filter( 'facetwp_pager_html', array( $lsx_to_search_fwp, 'facetwp_pager_html' ), 10, 2 );
196
-			remove_filter( 'facetwp_result_count', array( $lsx_to_search_fwp, 'facetwp_result_count' ), 10, 2 );
195
+			remove_filter('facetwp_pager_html', array($lsx_to_search_fwp, 'facetwp_pager_html'), 10, 2);
196
+			remove_filter('facetwp_result_count', array($lsx_to_search_fwp, 'facetwp_result_count'), 10, 2);
197 197
 
198
-			remove_filter( 'facetwp_facet_html', array( $lsx_to_search_fwp, 'destination_facet_html' ), 10, 2 );
199
-			remove_filter( 'facetwp_facet_html', array( $lsx_to_search_fwp, 'slide_facet_html' ), 10, 2 );
200
-			remove_filter( 'facetwp_facet_html', array( $lsx_to_search_fwp, 'search_facet_html' ), 10, 2 );
201
-			remove_filter( 'facetwp_load_css', array( $lsx_to_search_fwp, 'facetwp_load_css' ), 10, 1 );
198
+			remove_filter('facetwp_facet_html', array($lsx_to_search_fwp, 'destination_facet_html'), 10, 2);
199
+			remove_filter('facetwp_facet_html', array($lsx_to_search_fwp, 'slide_facet_html'), 10, 2);
200
+			remove_filter('facetwp_facet_html', array($lsx_to_search_fwp, 'search_facet_html'), 10, 2);
201
+			remove_filter('facetwp_load_css', array($lsx_to_search_fwp, 'facetwp_load_css'), 10, 1);
202 202
 
203
-			if ( class_exists( 'LSX_Currencies' ) ) {
204
-				remove_filter( 'facetwp_render_output', array( $lsx_to_search_fwp, 'slide_price_lsx_currencies' ), 10, 2 );
203
+			if (class_exists('LSX_Currencies')) {
204
+				remove_filter('facetwp_render_output', array($lsx_to_search_fwp, 'slide_price_lsx_currencies'), 10, 2);
205 205
 			} else {
206
-				remove_filter( 'facetwp_render_output', array( $lsx_to_search_fwp, 'slide_price_to_currencies' ), 10, 2 );
206
+				remove_filter('facetwp_render_output', array($lsx_to_search_fwp, 'slide_price_to_currencies'), 10, 2);
207 207
 			}
208 208
 		}
209 209
 	}
@@ -216,19 +216,19 @@  discard block
 block discarded – undo
216 216
 	public function is_search_enabled() {
217 217
 		$search_enabled = false;
218 218
 
219
-		if ( false === $this->new_options ) {
220
-			if ( isset( $this->options['display'][ $this->search_prefix . '_enable_' . $this->search_core_suffix ] ) && ( ! empty( $this->options ) ) && 'on' == $this->options['display'][ $this->search_prefix . '_enable_' . $this->search_core_suffix ] ) {
219
+		if (false === $this->new_options) {
220
+			if (isset($this->options['display'][$this->search_prefix.'_enable_'.$this->search_core_suffix]) && (!empty($this->options)) && 'on' == $this->options['display'][$this->search_prefix.'_enable_'.$this->search_core_suffix]) {
221 221
 				$search_enabled = true;
222 222
 			}
223 223
 		} else {
224 224
 			$enable_prefix = $this->search_prefix;
225
-			if ( ! empty( $this->options ) && isset( $this->options['display'] ) && isset( $this->options['display'][ $enable_prefix . '_enable' ] ) && 'on' === $this->options['display'][ $enable_prefix . '_enable' ] ) {
225
+			if (!empty($this->options) && isset($this->options['display']) && isset($this->options['display'][$enable_prefix.'_enable']) && 'on' === $this->options['display'][$enable_prefix.'_enable']) {
226 226
 				$search_enabled = true;
227 227
 			}
228 228
 		}
229 229
 
230 230
 		// These are specific plugin exclusions.
231
-		if ( is_tax( array( 'wcpv_product_vendors' ) ) ) {
231
+		if (is_tax(array('wcpv_product_vendors'))) {
232 232
 			$search_enabled = false;
233 233
 		}
234 234
 		return $search_enabled;
@@ -239,44 +239,44 @@  discard block
 block discarded – undo
239 239
 	 *
240 240
 	 * @return void
241 241
 	 */
242
-	private function set_search_prefix( $new_prefixes = false ) {
243
-		$page_for_posts = get_option( 'page_for_posts' );
244
-		if ( false !== $new_prefixes ) {
242
+	private function set_search_prefix($new_prefixes = false) {
243
+		$page_for_posts = get_option('page_for_posts');
244
+		if (false !== $new_prefixes) {
245 245
 			$this->taxonomies = array();
246 246
 			$this->post_types = array();
247 247
 		}
248 248
 
249
-		if ( is_search() ) {
250
-			if ( false === $new_prefixes ) {
249
+		if (is_search()) {
250
+			if (false === $new_prefixes) {
251 251
 				$this->search_core_suffix = 'core';
252 252
 				$this->search_prefix      = 'search';
253 253
 			} else {
254 254
 				$this->search_core_suffix = 'enable';
255 255
 				$this->search_prefix      = 'engine_search';
256 256
 			}
257
-		} elseif ( is_post_type_archive( $this->post_types ) || is_tax() || is_page( $page_for_posts ) || is_home() || is_category() || is_tag() ) {
258
-			if ( false === $new_prefixes ) {
257
+		} elseif (is_post_type_archive($this->post_types) || is_tax() || is_page($page_for_posts) || is_home() || is_category() || is_tag()) {
258
+			if (false === $new_prefixes) {
259 259
 				$this->search_core_suffix = 'search';
260 260
 			} else {
261 261
 				$this->search_core_suffix = 'enable';
262 262
 			}
263 263
 
264
-			if ( is_tax() ) {
265
-				$tax = get_query_var( 'taxonomy' );
266
-				$tax = get_taxonomy( $tax );
264
+			if (is_tax()) {
265
+				$tax = get_query_var('taxonomy');
266
+				$tax = get_taxonomy($tax);
267 267
 				$post_type = $tax->object_type[0];
268
-			} else if ( is_page( $page_for_posts ) || is_category() || is_tag() || is_home() ) {
268
+			} else if (is_page($page_for_posts) || is_category() || is_tag() || is_home()) {
269 269
 				$post_type = 'post';
270 270
 			} else {
271
-				$post_type = get_query_var( 'post_type' );
271
+				$post_type = get_query_var('post_type');
272 272
 			}
273 273
 
274
-			if ( false === $new_prefixes ) {
275
-				if ( isset( $this->tabs[ $post_type ] ) ) {
276
-					$this->search_prefix = $this->tabs[ $post_type ] . '_archive';
274
+			if (false === $new_prefixes) {
275
+				if (isset($this->tabs[$post_type])) {
276
+					$this->search_prefix = $this->tabs[$post_type].'_archive';
277 277
 				}
278 278
 			} else {
279
-				$this->search_prefix = $post_type . '_search';
279
+				$this->search_prefix = $post_type.'_search';
280 280
 			}
281 281
 		}
282 282
 	}
@@ -286,7 +286,7 @@  discard block
 block discarded – undo
286 286
 	 */
287 287
 	public function set_facetwp_vars() {
288 288
 
289
-		if ( class_exists( 'FacetWP' ) ) {
289
+		if (class_exists('FacetWP')) {
290 290
 			$facet_data = FWP()->helper->get_facets();
291 291
 		}
292 292
 
@@ -294,12 +294,12 @@  discard block
 block discarded – undo
294 294
 
295 295
 		$this->facet_data['search_form'] = array(
296 296
 			'name' => 'search_form',
297
-			'label' => esc_html__( 'Search Form', 'lsx-search' ),
297
+			'label' => esc_html__('Search Form', 'lsx-search'),
298 298
 		);
299 299
 
300
-		if ( ! empty( $facet_data ) && is_array( $facet_data ) ) {
301
-			foreach ( $facet_data as $facet ) {
302
-				$this->facet_data[ $facet['name'] ] = $facet;
300
+		if (!empty($facet_data) && is_array($facet_data)) {
301
+			foreach ($facet_data as $facet) {
302
+				$this->facet_data[$facet['name']] = $facet;
303 303
 			}
304 304
 		}
305 305
 	}
@@ -309,61 +309,61 @@  discard block
 block discarded – undo
309 309
 	 */
310 310
 	public function core() {
311 311
 
312
-		if ( true === $this->search_enabled ) {
313
-			add_action( 'wp_enqueue_scripts', array( $this, 'assets' ), 999 );
312
+		if (true === $this->search_enabled) {
313
+			add_action('wp_enqueue_scripts', array($this, 'assets'), 999);
314 314
 
315
-			add_filter( 'lsx_layout', array( $this, 'lsx_layout' ), 20, 1 );
316
-			add_filter( 'lsx_layout_selector', array( $this, 'lsx_layout_selector' ), 10, 4 );
317
-			add_filter( 'lsx_slot_class', array( $this, 'change_slot_column_class' ) );
318
-			add_action( 'lsx_entry_top', array( $this, 'add_label_to_title' ) );
319
-			add_filter( 'body_class', array( $this, 'body_class' ), 10 );
315
+			add_filter('lsx_layout', array($this, 'lsx_layout'), 20, 1);
316
+			add_filter('lsx_layout_selector', array($this, 'lsx_layout_selector'), 10, 4);
317
+			add_filter('lsx_slot_class', array($this, 'change_slot_column_class'));
318
+			add_action('lsx_entry_top', array($this, 'add_label_to_title'));
319
+			add_filter('body_class', array($this, 'body_class'), 10);
320 320
 
321
-			add_filter( 'lsx_blog_customizer_top_of_blog_action', array( $this, 'top_of_blog_action' ), 10, 1 );
322
-			add_filter( 'lsx_blog_customizer_blog_description_class', array( $this, 'blog_description_class' ), 10, 1 );
321
+			add_filter('lsx_blog_customizer_top_of_blog_action', array($this, 'top_of_blog_action'), 10, 1);
322
+			add_filter('lsx_blog_customizer_blog_description_class', array($this, 'blog_description_class'), 10, 1);
323 323
 
324
-			if ( class_exists( 'LSX_Videos' ) ) {
324
+			if (class_exists('LSX_Videos')) {
325 325
 				global $lsx_videos_frontend;
326
-				remove_action( 'lsx_content_top', array( $lsx_videos_frontend, 'categories_tabs' ), 15 );
326
+				remove_action('lsx_content_top', array($lsx_videos_frontend, 'categories_tabs'), 15);
327 327
 			}
328 328
 
329
-			add_filter( 'lsx_paging_nav_disable', '__return_true' );
330
-			add_action( 'lsx_content_top', array( $this, 'facet_top_bar' ) );
331
-			add_action( 'lsx_content_top', array( $this, 'facetwp_tempate_open' ) );
332
-			add_action( 'lsx_content_bottom', array( $this, 'facetwp_tempate_close' ) );
333
-			add_action( 'lsx_content_bottom', array( $this, 'facet_bottom_bar' ) );
329
+			add_filter('lsx_paging_nav_disable', '__return_true');
330
+			add_action('lsx_content_top', array($this, 'facet_top_bar'));
331
+			add_action('lsx_content_top', array($this, 'facetwp_tempate_open'));
332
+			add_action('lsx_content_bottom', array($this, 'facetwp_tempate_close'));
333
+			add_action('lsx_content_bottom', array($this, 'facet_bottom_bar'));
334 334
 
335
-			if ( ! empty( $this->options['display'][ $this->search_prefix . '_layout' ] ) && '1c' !== $this->options['display'][ $this->search_prefix . '_layout' ] ) {
336
-				add_filter( 'lsx_sidebar_enable', array( $this, 'lsx_sidebar_enable' ), 10, 1 );
335
+			if (!empty($this->options['display'][$this->search_prefix.'_layout']) && '1c' !== $this->options['display'][$this->search_prefix.'_layout']) {
336
+				add_filter('lsx_sidebar_enable', array($this, 'lsx_sidebar_enable'), 10, 1);
337 337
 			}
338 338
 
339
-			add_action( 'lsx_content_wrap_before', array( $this, 'search_sidebar' ), 150 );
339
+			add_action('lsx_content_wrap_before', array($this, 'search_sidebar'), 150);
340 340
 
341
-			if ( class_exists( 'WooCommerce' ) && ( is_shop() || is_product_category() || is_product_tag() ) ) {
342
-				remove_action( 'woocommerce_archive_description', 'woocommerce_taxonomy_archive_description' );
343
-				remove_action( 'woocommerce_archive_description', 'woocommerce_product_archive_description' );
344
-				add_filter( 'woocommerce_show_page_title', '__return_false' );
341
+			if (class_exists('WooCommerce') && (is_shop() || is_product_category() || is_product_tag())) {
342
+				remove_action('woocommerce_archive_description', 'woocommerce_taxonomy_archive_description');
343
+				remove_action('woocommerce_archive_description', 'woocommerce_product_archive_description');
344
+				add_filter('woocommerce_show_page_title', '__return_false');
345 345
 
346
-				add_filter( 'loop_shop_columns', function() {
346
+				add_filter('loop_shop_columns', function() {
347 347
 					return 3;
348 348
 				} );
349 349
 
350 350
 				// Actions added by LSX theme
351
-				remove_action( 'lsx_content_wrap_before', 'lsx_global_header' );
352
-				add_action( 'lsx_content_wrap_before', array( $this, 'wc_archive_header' ), 140 );
351
+				remove_action('lsx_content_wrap_before', 'lsx_global_header');
352
+				add_action('lsx_content_wrap_before', array($this, 'wc_archive_header'), 140);
353 353
 
354 354
 				// Actions added be LSX theme / woocommerce.php file
355
-				remove_action( 'woocommerce_after_shop_loop', 'lsx_wc_sorting_wrapper', 9 );
356
-				remove_action( 'woocommerce_after_shop_loop', 'woocommerce_catalog_ordering', 10 );
357
-				remove_action( 'woocommerce_after_shop_loop', 'woocommerce_result_count', 20 );
358
-				remove_action( 'woocommerce_after_shop_loop', 'woocommerce_pagination', 30 );
359
-				remove_action( 'woocommerce_after_shop_loop', 'lsx_wc_sorting_wrapper_close', 31 );
355
+				remove_action('woocommerce_after_shop_loop', 'lsx_wc_sorting_wrapper', 9);
356
+				remove_action('woocommerce_after_shop_loop', 'woocommerce_catalog_ordering', 10);
357
+				remove_action('woocommerce_after_shop_loop', 'woocommerce_result_count', 20);
358
+				remove_action('woocommerce_after_shop_loop', 'woocommerce_pagination', 30);
359
+				remove_action('woocommerce_after_shop_loop', 'lsx_wc_sorting_wrapper_close', 31);
360 360
 
361 361
 				// Actions added be LSX theme / woocommerce.php file
362
-				remove_action( 'woocommerce_before_shop_loop', 'lsx_wc_sorting_wrapper', 9 );
363
-				remove_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 10 );
364
-				remove_action( 'woocommerce_before_shop_loop', 'woocommerce_result_count', 20 );
365
-				remove_action( 'woocommerce_before_shop_loop', 'lsx_wc_woocommerce_pagination', 30 );
366
-				remove_action( 'woocommerce_before_shop_loop', 'lsx_wc_sorting_wrapper_close', 31 );
362
+				remove_action('woocommerce_before_shop_loop', 'lsx_wc_sorting_wrapper', 9);
363
+				remove_action('woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 10);
364
+				remove_action('woocommerce_before_shop_loop', 'woocommerce_result_count', 20);
365
+				remove_action('woocommerce_before_shop_loop', 'lsx_wc_woocommerce_pagination', 30);
366
+				remove_action('woocommerce_before_shop_loop', 'lsx_wc_sorting_wrapper_close', 31);
367 367
 			}
368 368
 		}
369 369
 	}
@@ -374,7 +374,7 @@  discard block
 block discarded – undo
374 374
 	 * @param  array $classes The classes.
375 375
 	 * @return array $classes The classes.
376 376
 	 */
377
-	public function body_class( $classes ) {
377
+	public function body_class($classes) {
378 378
 		$classes[] = 'lsx-search-enabled';
379 379
 		return $classes;
380 380
 	}
@@ -385,7 +385,7 @@  discard block
 block discarded – undo
385 385
 	 * @param  string $action
386 386
 	 * @return string $action
387 387
 	 */
388
-	public function top_of_blog_action( $action = '' ) {
388
+	public function top_of_blog_action($action = '') {
389 389
 		$action = 'lsx_content_wrap_before';
390 390
 		return $action;
391 391
 	}
@@ -396,7 +396,7 @@  discard block
 block discarded – undo
396 396
 	 * @param  string $action
397 397
 	 * @return string $action
398 398
 	 */
399
-	public function blog_description_class( $class = '' ) {
399
+	public function blog_description_class($class = '') {
400 400
 		$class .= ' col-md-12 search-description';
401 401
 		return $class;
402 402
 	}
@@ -407,13 +407,13 @@  discard block
 block discarded – undo
407 407
 	 * @return void
408 408
 	 */
409 409
 	public function check_for_results() {
410
-		if ( true === $this->search_enabled ) {
410
+		if (true === $this->search_enabled) {
411 411
 			global $wp_query;
412
-			if ( empty( $wp_query->posts ) ) {
412
+			if (empty($wp_query->posts)) {
413 413
 				$this->has_posts = false;
414
-				remove_action( 'lsx_content_top', array( $this, 'facet_top_bar' ) );
415
-				remove_action( 'lsx_content_bottom', array( $this, 'facet_bottom_bar' ) );
416
-				remove_action( 'lsx_content_wrap_before', array( $this, 'search_sidebar' ), 150 );
414
+				remove_action('lsx_content_top', array($this, 'facet_top_bar'));
415
+				remove_action('lsx_content_bottom', array($this, 'facet_bottom_bar'));
416
+				remove_action('lsx_content_wrap_before', array($this, 'search_sidebar'), 150);
417 417
 			} else {
418 418
 				$this->has_posts = true;
419 419
 			}
@@ -423,12 +423,12 @@  discard block
 block discarded – undo
423 423
 	/**
424 424
 	 * Filter the post types.
425 425
 	 */
426
-	public function filter_post_types( $query ) {
427
-		if ( ! is_admin() && $query->is_main_query() && $query->is_search() ) {
428
-			if ( ! empty( $this->options ) && ! empty( $this->options['display']['search_enable_core'] ) ) {
429
-				if ( ! empty( $this->options['general']['search_post_types'] ) && is_array( $this->options['general']['search_post_types'] ) ) {
430
-					$post_types = array_keys( $this->options['general']['search_post_types'] );
431
-					$query->set( 'post_type', $post_types );
426
+	public function filter_post_types($query) {
427
+		if (!is_admin() && $query->is_main_query() && $query->is_search()) {
428
+			if (!empty($this->options) && !empty($this->options['display']['search_enable_core'])) {
429
+				if (!empty($this->options['general']['search_post_types']) && is_array($this->options['general']['search_post_types'])) {
430
+					$post_types = array_keys($this->options['general']['search_post_types']);
431
+					$query->set('post_type', $post_types);
432 432
 				}
433 433
 			}
434 434
 		}
@@ -437,23 +437,23 @@  discard block
 block discarded – undo
437 437
 	/**
438 438
 	 * Sets post types with active search options.
439 439
 	 */
440
-	public function register_post_types( $post_types ) {
441
-		$post_types = array( 'post', 'project', 'service', 'team', 'testimonial', 'video', 'product' );
440
+	public function register_post_types($post_types) {
441
+		$post_types = array('post', 'project', 'service', 'team', 'testimonial', 'video', 'product');
442 442
 		return $post_types;
443 443
 	}
444 444
 
445 445
 	/**
446 446
 	 * Sets taxonomies with active search options.
447 447
 	 */
448
-	public function register_taxonomies( $taxonomies ) {
449
-		$taxonomies = array( 'category', 'post_tag', 'project-group', 'service-group', 'team_role', 'video-category', 'product_cat', 'product_tag' );
448
+	public function register_taxonomies($taxonomies) {
449
+		$taxonomies = array('category', 'post_tag', 'project-group', 'service-group', 'team_role', 'video-category', 'product_cat', 'product_tag');
450 450
 		return $taxonomies;
451 451
 	}
452 452
 
453 453
 	/**
454 454
 	 * Sets post types with active search options.
455 455
 	 */
456
-	public function register_post_type_tabs( $post_types_plural ) {
456
+	public function register_post_type_tabs($post_types_plural) {
457 457
 		$post_types_plural = array(
458 458
 			'post' => 'posts',
459 459
 			'project' => 'projects',
@@ -470,23 +470,23 @@  discard block
 block discarded – undo
470 470
 	 * Enqueue styles and scripts.
471 471
 	 */
472 472
 	public function assets() {
473
-		add_filter( 'lsx_defer_parsing_of_js', array( $this, 'skip_js_defer' ), 10, 4 );
474
-		wp_enqueue_script( 'touchSwipe', LSX_SEARCH_URL . 'assets/js/vendor/jquery.touchSwipe.min.js', array( 'jquery' ), LSX_SEARCH_VER, true );
475
-		wp_enqueue_script( 'slideandswipe', LSX_SEARCH_URL . 'assets/js/vendor/jquery.slideandswipe.min.js', array( 'jquery', 'touchSwipe' ), LSX_SEARCH_VER, true );
476
-		wp_enqueue_script( 'lsx-search', LSX_SEARCH_URL . 'assets/js/src/lsx-search.js', array( 'jquery', 'touchSwipe', 'slideandswipe', 'jquery-ui-datepicker' ), LSX_SEARCH_VER, true );
473
+		add_filter('lsx_defer_parsing_of_js', array($this, 'skip_js_defer'), 10, 4);
474
+		wp_enqueue_script('touchSwipe', LSX_SEARCH_URL.'assets/js/vendor/jquery.touchSwipe.min.js', array('jquery'), LSX_SEARCH_VER, true);
475
+		wp_enqueue_script('slideandswipe', LSX_SEARCH_URL.'assets/js/vendor/jquery.slideandswipe.min.js', array('jquery', 'touchSwipe'), LSX_SEARCH_VER, true);
476
+		wp_enqueue_script('lsx-search', LSX_SEARCH_URL.'assets/js/src/lsx-search.js', array('jquery', 'touchSwipe', 'slideandswipe', 'jquery-ui-datepicker'), LSX_SEARCH_VER, true);
477 477
 
478
-		$params = apply_filters( 'lsx_search_js_params', array(
479
-			'ajax_url' => admin_url( 'admin-ajax.php' ),
478
+		$params = apply_filters('lsx_search_js_params', array(
479
+			'ajax_url' => admin_url('admin-ajax.php'),
480 480
 		));
481 481
 
482
-		wp_localize_script( 'lsx-search', 'lsx_customizer_params', $params );
482
+		wp_localize_script('lsx-search', 'lsx_customizer_params', $params);
483 483
 
484
-		wp_enqueue_style( 'lsx-search', LSX_SEARCH_URL . 'assets/css/lsx-search.css', array(), LSX_SEARCH_VER );
485
-		wp_style_add_data( 'lsx-search', 'rtl', 'replace' );
484
+		wp_enqueue_style('lsx-search', LSX_SEARCH_URL.'assets/css/lsx-search.css', array(), LSX_SEARCH_VER);
485
+		wp_style_add_data('lsx-search', 'rtl', 'replace');
486 486
 
487
-		if ( true === $this->new_options ) {
488
-			wp_deregister_style( 'lsx_to_search' );
489
-			wp_deregister_script( 'lsx_to_search' );
487
+		if (true === $this->new_options) {
488
+			wp_deregister_style('lsx_to_search');
489
+			wp_deregister_script('lsx_to_search');
490 490
 		}
491 491
 	}
492 492
 
@@ -499,8 +499,8 @@  discard block
 block discarded – undo
499 499
 	 * @param string  $href
500 500
 	 * @return boolean
501 501
 	 */
502
-	public function skip_js_defer( $should_skip, $tag, $handle, $href ) {
503
-		if ( ! is_admin() && ( false !== stripos( $href, 'lsx-search.min.js' ) || false !== stripos( $href, 'lsx-search.js' ) ) ) {
502
+	public function skip_js_defer($should_skip, $tag, $handle, $href) {
503
+		if (!is_admin() && (false !== stripos($href, 'lsx-search.min.js') || false !== stripos($href, 'lsx-search.js'))) {
504 504
 			$should_skip = true;
505 505
 		}
506 506
 		return $should_skip;
@@ -512,10 +512,10 @@  discard block
 block discarded – undo
512 512
 	 * @param	$template
513 513
 	 * @return	$template
514 514
 	 */
515
-	public function search_template_include( $template ) {
516
-		if ( is_main_query() && is_search() ) {
517
-			if ( file_exists( LSX_SEARCH_PATH . 'templates/search.php' ) ) {
518
-				$template = LSX_SEARCH_PATH . 'templates/search.php';
515
+	public function search_template_include($template) {
516
+		if (is_main_query() && is_search()) {
517
+			if (file_exists(LSX_SEARCH_PATH.'templates/search.php')) {
518
+				$template = LSX_SEARCH_PATH.'templates/search.php';
519 519
 			}
520 520
 		}
521 521
 
@@ -528,9 +528,9 @@  discard block
 block discarded – undo
528 528
 	 * @param [type] $query
529 529
 	 * @return void
530 530
 	 */
531
-	public function ignore_sticky_search( $query ) {
532
-		if ( $query->is_main_query() && is_home() ) {
533
-			$query->set( 'ignore_sticky_posts', true );
531
+	public function ignore_sticky_search($query) {
532
+		if ($query->is_main_query() && is_home()) {
533
+			$query->set('ignore_sticky_posts', true);
534 534
 		}
535 535
 	}
536 536
 
@@ -538,46 +538,46 @@  discard block
 block discarded – undo
538 538
 	 * Rewrite the search URL
539 539
 	 */
540 540
 	public function pretty_search_redirect() {
541
-		global $wp_rewrite,$wp_query;
541
+		global $wp_rewrite, $wp_query;
542 542
 
543
-		if ( ! isset( $wp_rewrite ) || ! is_object( $wp_rewrite ) || ! $wp_rewrite->using_permalinks() ) {
543
+		if (!isset($wp_rewrite) || !is_object($wp_rewrite) || !$wp_rewrite->using_permalinks()) {
544 544
 			return;
545 545
 		}
546 546
 
547 547
 		$search_base = $wp_rewrite->search_base;
548 548
 
549
-		if ( is_search() && ! is_admin() && strpos( $_SERVER['REQUEST_URI'], "/{$search_base}/" ) === false ) {
550
-			$search_query = get_query_var( 's' );
549
+		if (is_search() && !is_admin() && strpos($_SERVER['REQUEST_URI'], "/{$search_base}/") === false) {
550
+			$search_query = get_query_var('s');
551 551
 			$engine = '';
552 552
 
553 553
 			// If the search was triggered by a supplemental engine.
554
-			if ( isset( $_GET['engine'] ) && 'default' !== $_GET['engine'] ) {
555
-				$engine = sanitize_text_field( wp_unslash( $_GET['engine'] ) );
556
-				$index  = array_search( $engine, $this->post_type_slugs, true );
557
-				if ( false !== $index ) {
554
+			if (isset($_GET['engine']) && 'default' !== $_GET['engine']) {
555
+				$engine = sanitize_text_field(wp_unslash($_GET['engine']));
556
+				$index  = array_search($engine, $this->post_type_slugs, true);
557
+				if (false !== $index) {
558 558
 					$engine = $index;
559 559
 				}
560
-				$engine = $engine . '/';
560
+				$engine = $engine.'/';
561 561
 			}
562 562
 
563 563
 			$get_array = $_GET;
564 564
 
565
-			if ( is_array( $get_array ) && ! empty( $get_array ) ) {
565
+			if (is_array($get_array) && !empty($get_array)) {
566 566
 				$vars_to_maintain = array();
567 567
 
568
-				foreach ( $get_array as $ga_key => $ga_value ) {
569
-					if ( false !== strpos( $ga_key, 'fwp_' ) ) {
570
-						$vars_to_maintain[] = $ga_key . '=' . $ga_value;
568
+				foreach ($get_array as $ga_key => $ga_value) {
569
+					if (false !== strpos($ga_key, 'fwp_')) {
570
+						$vars_to_maintain[] = $ga_key.'='.$ga_value;
571 571
 					}
572 572
 				}
573 573
 			}
574 574
 
575
-			$redirect_url = home_url( "/{$search_base}/" . $engine . urlencode( $search_query ) );
575
+			$redirect_url = home_url("/{$search_base}/".$engine.urlencode($search_query));
576 576
 
577
-			if ( ! empty( $vars_to_maintain ) ) {
578
-				$redirect_url .= '?' . implode( '&', $vars_to_maintain );
577
+			if (!empty($vars_to_maintain)) {
578
+				$redirect_url .= '?'.implode('&', $vars_to_maintain);
579 579
 			}
580
-			wp_redirect( $redirect_url );
580
+			wp_redirect($redirect_url);
581 581
 			exit();
582 582
 		}
583 583
 	}
@@ -585,7 +585,7 @@  discard block
 block discarded – undo
585 585
 	/**
586 586
 	 * Parse the Query and trigger a search
587 587
 	 */
588
-	public function pretty_search_parse_query( $query ) {
588
+	public function pretty_search_parse_query($query) {
589 589
 		$this->post_type_slugs = array(
590 590
 			'post' => 'posts',
591 591
 			'project' => 'projects',
@@ -595,26 +595,26 @@  discard block
 block discarded – undo
595 595
 			'video' => 'videos',
596 596
 			'product' => 'products', // WooCommerce
597 597
 		);
598
-		if ( $query->is_search() && ! is_admin() && $query->is_main_query() ) {
599
-			$search_query = $query->get( 's' );
600
-			$keyword_test = explode( '/', $search_query );
598
+		if ($query->is_search() && !is_admin() && $query->is_main_query()) {
599
+			$search_query = $query->get('s');
600
+			$keyword_test = explode('/', $search_query);
601 601
 
602
-			$index = array_search( $keyword_test[0], $this->post_type_slugs, true );
603
-			if ( false !== $index ) {
604
-				$engine = $this->post_type_slugs[ $index ];
602
+			$index = array_search($keyword_test[0], $this->post_type_slugs, true);
603
+			if (false !== $index) {
604
+				$engine = $this->post_type_slugs[$index];
605 605
 
606
-				$query->set( 'post_type', $engine );
607
-				$query->set( 'engine', $engine );
606
+				$query->set('post_type', $engine);
607
+				$query->set('engine', $engine);
608 608
 
609
-				if ( count( $keyword_test ) > 1 ) {
610
-					$query->set( 's', $keyword_test[1] );
611
-				} elseif ( post_type_exists( $engine ) ) {
612
-					$query->set( 's', '' );
609
+				if (count($keyword_test) > 1) {
610
+					$query->set('s', $keyword_test[1]);
611
+				} elseif (post_type_exists($engine)) {
612
+					$query->set('s', '');
613 613
 				}
614 614
 			} else {
615
-				if ( isset( $this->options['general']['search_post_types'] ) && is_array( $this->options['general']['search_post_types'] ) ) {
616
-					$post_types = array_keys( $this->options['general']['search_post_types'] );
617
-					$query->set( 'post_type', $post_types );
615
+				if (isset($this->options['general']['search_post_types']) && is_array($this->options['general']['search_post_types'])) {
616
+					$post_types = array_keys($this->options['general']['search_post_types']);
617
+					$query->set('post_type', $post_types);
618 618
 				}
619 619
 			}
620 620
 		}
@@ -627,18 +627,18 @@  discard block
 block discarded – undo
627 627
 	 * @return url
628 628
 	 */
629 629
 	public function change_json_ld_search_url() {
630
-		return trailingslashit( home_url() ) . 'search/{search_term_string}';
630
+		return trailingslashit(home_url()).'search/{search_term_string}';
631 631
 	}
632 632
 
633 633
 	/**
634 634
 	 * A filter to set the layout to 2 column.
635 635
 	 */
636
-	public function lsx_layout( $layout ) {
637
-		if ( ! empty( $this->options['display'][ $this->search_prefix . '_layout' ] ) ) {
638
-			if ( false === $this->has_posts ) {
636
+	public function lsx_layout($layout) {
637
+		if (!empty($this->options['display'][$this->search_prefix.'_layout'])) {
638
+			if (false === $this->has_posts) {
639 639
 				$layout = '1c';
640 640
 			} else {
641
-				$layout = $this->options['display'][ $this->search_prefix . '_layout' ];
641
+				$layout = $this->options['display'][$this->search_prefix.'_layout'];
642 642
 			}
643 643
 		}
644 644
 		return $layout;
@@ -648,23 +648,23 @@  discard block
 block discarded – undo
648 648
 	 * Outputs the Search Title Facet
649 649
 	 */
650 650
 	public function search_sidebar_top() {
651
-		if ( ! empty( $this->options['display'][ $this->search_prefix . '_facets' ] ) && is_array( $this->options['display'][ $this->search_prefix . '_facets' ] ) && true !== apply_filters( 'lsx_search_hide_search_box', false ) ) {
651
+		if (!empty($this->options['display'][$this->search_prefix.'_facets']) && is_array($this->options['display'][$this->search_prefix.'_facets']) && true !== apply_filters('lsx_search_hide_search_box', false)) {
652 652
 
653
-			if ( ! is_search() ) {
653
+			if (!is_search()) {
654 654
 
655
-				foreach ( $this->options['display'][ $this->search_prefix . '_facets' ] as $facet => $facet_useless ) {
655
+				foreach ($this->options['display'][$this->search_prefix.'_facets'] as $facet => $facet_useless) {
656 656
 
657
-					if ( isset( $this->facet_data[ $facet ] ) && 'search' === $this->facet_data[ $facet ]['type'] ) {
658
-						echo wp_kses_post( '<div class="row">' );
659
-							$this->display_facet_default( $facet );
660
-						echo wp_kses_post( '</div>' );
661
-						unset( $this->options['display'][ $this->search_prefix . '_facets' ][ $facet ] );
657
+					if (isset($this->facet_data[$facet]) && 'search' === $this->facet_data[$facet]['type']) {
658
+						echo wp_kses_post('<div class="row">');
659
+							$this->display_facet_default($facet);
660
+						echo wp_kses_post('</div>');
661
+						unset($this->options['display'][$this->search_prefix.'_facets'][$facet]);
662 662
 					}
663 663
 				}
664 664
 			} else {
665
-				echo wp_kses_post( '<div class="row">' );
665
+				echo wp_kses_post('<div class="row">');
666 666
 					$this->display_facet_search();
667
-				echo wp_kses_post( '</div>' );
667
+				echo wp_kses_post('</div>');
668 668
 			}
669 669
 		}
670 670
 	}
@@ -676,13 +676,13 @@  discard block
 block discarded – undo
676 676
 	 *
677 677
 	 * @return string
678 678
 	 */
679
-	public function search_facet_html( $output, $params ) {
680
-		if ( 'search' == $params['facet']['type'] ) {
679
+	public function search_facet_html($output, $params) {
680
+		if ('search' == $params['facet']['type']) {
681 681
 
682 682
 			$value = (array) $params['selected_values'];
683
-			$value = empty( $value ) ? '' : stripslashes( $value[0] );
684
-			$placeholder = isset( $params['facet']['placeholder'] ) ? $params['facet']['placeholder'] : __( 'Search...', 'lsx-search' );
685
-			$placeholder = facetwp_i18n( $placeholder );
683
+			$value = empty($value) ? '' : stripslashes($value[0]);
684
+			$placeholder = isset($params['facet']['placeholder']) ? $params['facet']['placeholder'] : __('Search...', 'lsx-search');
685
+			$placeholder = facetwp_i18n($placeholder);
686 686
 
687 687
 			ob_start();
688 688
 			?>
@@ -690,11 +690,11 @@  discard block
 block discarded – undo
690 690
 				<div class="search-form lsx-search-form 2">
691 691
 					<div class="input-group facetwp-search-wrap">
692 692
 						<div class="field">
693
-							<input class="facetwp-search search-field form-control" type="text" placeholder="<?php echo esc_attr( $placeholder ); ?>" autocomplete="off" value="<?php echo esc_attr( $value ); ?>">
693
+							<input class="facetwp-search search-field form-control" type="text" placeholder="<?php echo esc_attr($placeholder); ?>" autocomplete="off" value="<?php echo esc_attr($value); ?>">
694 694
 						</div>
695 695
 
696 696
 						<div class="field submit-button">
697
-							<button class="search-submit btn facetwp-btn" type="submit"><?php esc_html_e( 'Search', 'lsx-search' ); ?></button>
697
+							<button class="search-submit btn facetwp-btn" type="submit"><?php esc_html_e('Search', 'lsx-search'); ?></button>
698 698
 						</div>
699 699
 					</div>
700 700
 				</div>
@@ -708,23 +708,23 @@  discard block
 block discarded – undo
708 708
 	/**
709 709
 	 * Change the primary and secondary column classes.
710 710
 	 */
711
-	public function lsx_layout_selector( $return_class, $class, $layout, $size ) {
712
-		if ( ! empty( $this->options['display'][ $this->search_prefix . '_layout' ] ) ) {
711
+	public function lsx_layout_selector($return_class, $class, $layout, $size) {
712
+		if (!empty($this->options['display'][$this->search_prefix.'_layout'])) {
713 713
 
714
-			if ( '2cl' === $layout || '2cr' === $layout ) {
714
+			if ('2cl' === $layout || '2cr' === $layout) {
715 715
 				$main_class    = 'col-sm-8 col-md-9';
716 716
 				$sidebar_class = 'col-sm-4 col-md-3';
717 717
 
718
-				if ( '2cl' === $layout ) {
718
+				if ('2cl' === $layout) {
719 719
 					$main_class    .= ' col-sm-pull-4 col-md-pull-3 search-sidebar-left';
720 720
 					$sidebar_class .= ' col-sm-push-8 col-md-push-9';
721 721
 				}
722 722
 
723
-				if ( 'main' === $class ) {
723
+				if ('main' === $class) {
724 724
 					return $main_class;
725 725
 				}
726 726
 
727
-				if ( 'sidebar' === $class ) {
727
+				if ('sidebar' === $class) {
728 728
 					return $sidebar_class;
729 729
 				}
730 730
 			}
@@ -739,14 +739,14 @@  discard block
 block discarded – undo
739 739
 	 * @return void
740 740
 	 */
741 741
 	public function display_alphabet_facet() {
742
-		if ( isset( $this->options['display'][ $this->search_prefix . '_az_pagination' ] ) ) {
743
-			$az_pagination = $this->options['display'][ $this->search_prefix . '_az_pagination' ];
742
+		if (isset($this->options['display'][$this->search_prefix.'_az_pagination'])) {
743
+			$az_pagination = $this->options['display'][$this->search_prefix.'_az_pagination'];
744 744
 		} else {
745 745
 			$az_pagination = false;
746 746
 		}
747
-		$az_pagination = apply_filters( 'lsx_search_top_az_pagination', $az_pagination );
748
-		if ( false !== $az_pagination && '' !== $az_pagination ) {
749
-			echo do_shortcode( '[facetwp facet="' . $az_pagination . '"]' );
747
+		$az_pagination = apply_filters('lsx_search_top_az_pagination', $az_pagination);
748
+		if (false !== $az_pagination && '' !== $az_pagination) {
749
+			echo do_shortcode('[facetwp facet="'.$az_pagination.'"]');
750 750
 		}
751 751
 	}
752 752
 
@@ -754,44 +754,44 @@  discard block
 block discarded – undo
754 754
 	 * Outputs top.
755 755
 	 */
756 756
 	public function facet_top_bar() {
757
-		if ( true === apply_filters( 'lsx_search_hide_top_bar', false ) ) {
757
+		if (true === apply_filters('lsx_search_hide_top_bar', false)) {
758 758
 			return;
759 759
 		}
760 760
 
761 761
 		$show_pagination     = true;
762 762
 		$pagination_visible  = false;
763
-		$show_per_page_combo = empty( $this->options['display'][ $this->search_prefix . '_disable_per_page' ] );
764
-		$show_sort_combo     = empty( $this->options['display'][ $this->search_prefix . '_disable_sorting' ] );
765
-
766
-		$show_pagination     = apply_filters( 'lsx_search_top_show_pagination', $show_pagination );
767
-		$pagination_visible  = apply_filters( 'lsx_search_top_pagination_visible', $pagination_visible );
768
-		$show_per_page_combo = apply_filters( 'lsx_search_top_show_per_page_combo', $show_per_page_combo );
769
-		$show_sort_combo     = apply_filters( 'lsx_search_top_show_sort_combo', $show_sort_combo );
770
-		$facet_row_classes   = apply_filters( 'lsx_search_top_facetwp_row_classes', '' );
763
+		$show_per_page_combo = empty($this->options['display'][$this->search_prefix.'_disable_per_page']);
764
+		$show_sort_combo     = empty($this->options['display'][$this->search_prefix.'_disable_sorting']);
765
+
766
+		$show_pagination     = apply_filters('lsx_search_top_show_pagination', $show_pagination);
767
+		$pagination_visible  = apply_filters('lsx_search_top_pagination_visible', $pagination_visible);
768
+		$show_per_page_combo = apply_filters('lsx_search_top_show_per_page_combo', $show_per_page_combo);
769
+		$show_sort_combo     = apply_filters('lsx_search_top_show_sort_combo', $show_sort_combo);
770
+		$facet_row_classes   = apply_filters('lsx_search_top_facetwp_row_classes', '');
771 771
 		?>
772 772
 		<div id="facetwp-top">
773
-			<?php if ( $show_sort_combo || ( $show_pagination && $show_per_page_combo ) ) { ?>
774
-				<div class="row facetwp-top-row-1 hidden-xs <?php echo esc_attr( $facet_row_classes ); ?>">
773
+			<?php if ($show_sort_combo || ($show_pagination && $show_per_page_combo)) { ?>
774
+				<div class="row facetwp-top-row-1 hidden-xs <?php echo esc_attr($facet_row_classes); ?>">
775 775
 					<div class="col-xs-12">
776 776
 
777
-						<?php if ( ! empty( $this->options['display'][ $this->search_prefix . '_display_result_count' ] ) && false === apply_filters( 'lsx_search_hide_result_count', false ) ) { ?>
777
+						<?php if (!empty($this->options['display'][$this->search_prefix.'_display_result_count']) && false === apply_filters('lsx_search_hide_result_count', false)) { ?>
778 778
 							<div class="row">
779 779
 								<div class="col-md-12 facetwp-item facetwp-results">
780
-									<h3 class="lsx-search-title lsx-search-title-results"><?php esc_html_e( 'Results', 'lsx-search' ); ?> <?php echo '(' . do_shortcode( '[facetwp counts="true"]' ) . ')&nbsp;'; ?>
781
-									<?php if ( false !== $this->options && isset( $this->options['display'] ) && ( ! empty( $this->options['display'][ $this->search_prefix . '_display_clear_button' ] ) ) && 'on' === $this->options['display'][ $this->search_prefix . '_display_clear_button' ] ) { ?>
782
-										<span class="clear-facets hidden">- <a title="<?php esc_html_e( 'Clear the current search filters.', 'lsx-search' ); ?>" class="facetwp-results-clear" type="button" onclick="<?php echo esc_attr( apply_filters( 'lsx_search_clear_function', 'lsx_search.clearFacets(this);' ) ); ?>"><?php esc_html_e( 'Clear', 'lsx-search' ); ?></a></span>
780
+									<h3 class="lsx-search-title lsx-search-title-results"><?php esc_html_e('Results', 'lsx-search'); ?> <?php echo '('.do_shortcode('[facetwp counts="true"]').')&nbsp;'; ?>
781
+									<?php if (false !== $this->options && isset($this->options['display']) && (!empty($this->options['display'][$this->search_prefix.'_display_clear_button'])) && 'on' === $this->options['display'][$this->search_prefix.'_display_clear_button']) { ?>
782
+										<span class="clear-facets hidden">- <a title="<?php esc_html_e('Clear the current search filters.', 'lsx-search'); ?>" class="facetwp-results-clear" type="button" onclick="<?php echo esc_attr(apply_filters('lsx_search_clear_function', 'lsx_search.clearFacets(this);')); ?>"><?php esc_html_e('Clear', 'lsx-search'); ?></a></span>
783 783
 									<?php } ?>
784 784
 									</h3>
785 785
 								</div>
786 786
 							</div>
787 787
 						<?php } ?>
788 788
 
789
-						<?php do_action( 'lsx_search_facetwp_top_row' ); ?>
789
+						<?php do_action('lsx_search_facetwp_top_row'); ?>
790 790
 
791 791
 						<?php $this->display_alphabet_facet(); ?>
792 792
 
793
-						<?php if ( $show_sort_combo ) { ?>
794
-							<?php echo do_shortcode( '[facetwp sort="true"]' ); ?>
793
+						<?php if ($show_sort_combo) { ?>
794
+							<?php echo do_shortcode('[facetwp sort="true"]'); ?>
795 795
 						<?php } ?>
796 796
 
797 797
 					</div>
@@ -805,30 +805,30 @@  discard block
 block discarded – undo
805 805
 	 * Outputs bottom.
806 806
 	 */
807 807
 	public function facet_bottom_bar() {
808
-		if ( true === apply_filters( 'lsx_search_hide_bottom_bar', false ) ) {
808
+		if (true === apply_filters('lsx_search_hide_bottom_bar', false)) {
809 809
 			return;
810 810
 		}
811 811
 		$show_pagination    = true;
812 812
 		$pagination_visible = false;
813
-		if ( isset( $this->options['display'][ $this->search_prefix . '_az_pagination' ] ) ) {
814
-			$az_pagination = $this->options['display'][ $this->search_prefix . '_az_pagination' ];
813
+		if (isset($this->options['display'][$this->search_prefix.'_az_pagination'])) {
814
+			$az_pagination = $this->options['display'][$this->search_prefix.'_az_pagination'];
815 815
 		} else {
816 816
 			$az_pagination = false;
817 817
 		}
818 818
 
819
-		$show_per_page_combo = empty( $this->options['display'][ $this->search_prefix . '_disable_per_page' ] );
820
-		$show_sort_combo     = empty( $this->options['display'][ $this->search_prefix . '_search_disable_sorting' ] );
819
+		$show_per_page_combo = empty($this->options['display'][$this->search_prefix.'_disable_per_page']);
820
+		$show_sort_combo     = empty($this->options['display'][$this->search_prefix.'_search_disable_sorting']);
821 821
 
822
-		$show_pagination     = apply_filters( 'lsx_search_bottom_show_pagination', $show_pagination );
823
-		$pagination_visible  = apply_filters( 'lsx_search_bottom_pagination_visible', $pagination_visible );
824
-		$show_per_page_combo = apply_filters( 'lsx_search_bottom_show_per_page_combo', $show_per_page_combo );
825
-		$show_sort_combo     = apply_filters( 'lsx_search_bottom_show_sort_combo', $show_sort_combo );
822
+		$show_pagination     = apply_filters('lsx_search_bottom_show_pagination', $show_pagination);
823
+		$pagination_visible  = apply_filters('lsx_search_bottom_pagination_visible', $pagination_visible);
824
+		$show_per_page_combo = apply_filters('lsx_search_bottom_show_per_page_combo', $show_per_page_combo);
825
+		$show_sort_combo     = apply_filters('lsx_search_bottom_show_sort_combo', $show_sort_combo);
826 826
 
827
-		if ( $show_pagination || ! empty( $az_pagination ) ) { ?>
827
+		if ($show_pagination || !empty($az_pagination)) { ?>
828 828
 			<div id="facetwp-bottom">
829 829
 				<div class="row facetwp-bottom-row-1">
830 830
 					<div class="col-xs-12">
831
-						<?php do_action( 'lsx_search_facetwp_bottom_row' ); ?>
831
+						<?php do_action('lsx_search_facetwp_bottom_row'); ?>
832 832
 
833 833
 						<?php //if ( $show_sort_combo ) { ?>
834 834
 							<?php //echo do_shortcode( '[facetwp sort="true"]' ); ?>
@@ -839,16 +839,16 @@  discard block
 block discarded – undo
839 839
 						<?php //} ?>
840 840
 
841 841
 						<?php
842
-						if ( $show_pagination ) {
843
-							$output_pagination = do_shortcode( '[facetwp pager="true"]' );
844
-							if ( ! empty( $this->options['display'][ $this->search_prefix . '_facets' ] ) && is_array( $this->options['display'][ $this->search_prefix . '_facets' ] ) ) {
845
-								foreach ( $this->options['display'][ $this->search_prefix . '_facets' ] as $facet => $facet_useless ) {
846
-									if ( isset( $this->facet_data[ $facet ] ) && in_array( $this->facet_data[ $facet ]['type'], array( 'pager' ) ) ) {
847
-										$output_pagination = do_shortcode( '[facetwp facet="pager_"]' );
842
+						if ($show_pagination) {
843
+							$output_pagination = do_shortcode('[facetwp pager="true"]');
844
+							if (!empty($this->options['display'][$this->search_prefix.'_facets']) && is_array($this->options['display'][$this->search_prefix.'_facets'])) {
845
+								foreach ($this->options['display'][$this->search_prefix.'_facets'] as $facet => $facet_useless) {
846
+									if (isset($this->facet_data[$facet]) && in_array($this->facet_data[$facet]['type'], array('pager'))) {
847
+										$output_pagination = do_shortcode('[facetwp facet="pager_"]');
848 848
 									}
849 849
 								}
850 850
 							}
851
-							echo wp_kses_post( $output_pagination );
851
+							echo wp_kses_post($output_pagination);
852 852
 						?>
853 853
 						<?php } ?>
854 854
 					</div>
@@ -882,7 +882,7 @@  discard block
 block discarded – undo
882 882
 	/**
883 883
 	 * Disables default sidebar.
884 884
 	 */
885
-	public function lsx_sidebar_enable( $sidebar_enabled ) {
885
+	public function lsx_sidebar_enable($sidebar_enabled) {
886 886
 		$sidebar_enabled = false;
887 887
 		return $sidebar_enabled;
888 888
 	}
@@ -892,19 +892,19 @@  discard block
 block discarded – undo
892 892
 	 */
893 893
 	public function search_sidebar() {
894 894
 
895
-		$this->options = apply_filters( 'lsx_search_sidebar_options', $this->options );
895
+		$this->options = apply_filters('lsx_search_sidebar_options', $this->options);
896 896
 		?>
897
-			<?php do_action( 'lsx_search_sidebar_before' ); ?>
897
+			<?php do_action('lsx_search_sidebar_before'); ?>
898 898
 
899
-			<div id="secondary" class="facetwp-sidebar widget-area <?php echo esc_attr( lsx_sidebar_class() ); ?>" role="complementary">
899
+			<div id="secondary" class="facetwp-sidebar widget-area <?php echo esc_attr(lsx_sidebar_class()); ?>" role="complementary">
900 900
 
901
-				<?php do_action( 'lsx_search_sidebar_top' ); ?>
901
+				<?php do_action('lsx_search_sidebar_top'); ?>
902 902
 
903
-				<?php if ( ! empty( $this->options['display'][ $this->search_prefix . '_facets' ] ) && is_array( $this->options['display'][ $this->search_prefix . '_facets' ] ) ) { ?>
903
+				<?php if (!empty($this->options['display'][$this->search_prefix.'_facets']) && is_array($this->options['display'][$this->search_prefix.'_facets'])) { ?>
904 904
 					<div class="row facetwp-row lsx-search-filer-area">
905
-						<h3 class="facetwp-filter-title"><?php echo esc_html_e( 'Refine by', 'lsx-search' ); ?></h3>
905
+						<h3 class="facetwp-filter-title"><?php echo esc_html_e('Refine by', 'lsx-search'); ?></h3>
906 906
 						<div class="col-xs-12 facetwp-item facetwp-filters-button hidden-sm hidden-md hidden-lg">
907
-							<button class="ssm-toggle-nav btn btn-block" rel="lsx-search-filters"><?php esc_html_e( 'Filters', 'lsx-search' ); ?> <i class="fa fa-chevron-down" aria-hidden="true"></i></button>
907
+							<button class="ssm-toggle-nav btn btn-block" rel="lsx-search-filters"><?php esc_html_e('Filters', 'lsx-search'); ?> <i class="fa fa-chevron-down" aria-hidden="true"></i></button>
908 908
 						</div>
909 909
 
910 910
 						<div class="ssm-overlay ssm-toggle-nav" rel="lsx-search-filters"></div>
@@ -912,16 +912,16 @@  discard block
 block discarded – undo
912 912
 						<div class="col-xs-12 facetwp-item-wrap facetwp-filters-wrap" id="lsx-search-filters">
913 913
 							<div class="row hidden-sm hidden-md hidden-lg ssm-row-margin-bottom">
914 914
 								<div class="col-xs-12 facetwp-item facetwp-filters-button">
915
-									<button class="ssm-close-btn ssm-toggle-nav btn btn-block" rel="lsx-search-filters"><?php esc_html_e( 'Close Filters', 'lsx-search' ); ?> <i class="fa fa-times" aria-hidden="true"></i></button>
915
+									<button class="ssm-close-btn ssm-toggle-nav btn btn-block" rel="lsx-search-filters"><?php esc_html_e('Close Filters', 'lsx-search'); ?> <i class="fa fa-times" aria-hidden="true"></i></button>
916 916
 								</div>
917 917
 							</div>
918 918
 
919 919
 							<div class="row">
920 920
 								<?php
921 921
 								// Slider.
922
-								foreach ( $this->options['display'][ $this->search_prefix . '_facets' ] as $facet => $facet_useless ) {
923
-									if ( isset( $this->facet_data[ $facet ] ) && ! in_array( $this->facet_data[ $facet ]['type'], array( 'alpha', 'search', 'pager' ) ) ) {
924
-										$this->display_facet_default( $facet );
922
+								foreach ($this->options['display'][$this->search_prefix.'_facets'] as $facet => $facet_useless) {
923
+									if (isset($this->facet_data[$facet]) && !in_array($this->facet_data[$facet]['type'], array('alpha', 'search', 'pager'))) {
924
+										$this->display_facet_default($facet);
925 925
 									}
926 926
 								}
927 927
 								?>
@@ -929,17 +929,17 @@  discard block
 block discarded – undo
929 929
 
930 930
 							<div class="row hidden-sm hidden-md hidden-lg ssm-row-margin-top">
931 931
 								<div class="col-xs-12 facetwp-item facetwp-filters-button">
932
-									<button class="ssm-apply-btn ssm-toggle-nav btn btn-block" rel="lsx-search-filters"><?php esc_html_e( 'Apply Filters', 'lsx-search' ); ?> <i class="fa fa-check" aria-hidden="true"></i></button>
932
+									<button class="ssm-apply-btn ssm-toggle-nav btn btn-block" rel="lsx-search-filters"><?php esc_html_e('Apply Filters', 'lsx-search'); ?> <i class="fa fa-check" aria-hidden="true"></i></button>
933 933
 								</div>
934 934
 							</div>
935 935
 						</div>
936 936
 					</div>
937 937
 				<?php } ?>
938 938
 
939
-				<?php do_action( 'lsx_search_sidebar_bottom' ); ?>
939
+				<?php do_action('lsx_search_sidebar_bottom'); ?>
940 940
 			</div>
941 941
 
942
-			<?php do_action( 'lsx_search_sidebar_after' ); ?>
942
+			<?php do_action('lsx_search_sidebar_after'); ?>
943 943
 		<?php
944 944
 	}
945 945
 
@@ -952,9 +952,9 @@  discard block
 block discarded – undo
952 952
 
953 953
 		$pager_facet_off = false;
954 954
 
955
-		if ( ! empty( $this->options['display'][ $this->search_prefix . '_facets' ] ) && is_array( $this->options['display'][ $this->search_prefix . '_facets' ] ) ) {
956
-			foreach ( $this->options['display'][ $this->search_prefix . '_facets' ] as $facet => $facet_useless ) {
957
-				if ( isset( $this->facet_data[ $facet ] ) && ! in_array( $this->facet_data[ $facet ]['type'], array( 'pager' ) ) ) {
955
+		if (!empty($this->options['display'][$this->search_prefix.'_facets']) && is_array($this->options['display'][$this->search_prefix.'_facets'])) {
956
+			foreach ($this->options['display'][$this->search_prefix.'_facets'] as $facet => $facet_useless) {
957
+				if (isset($this->facet_data[$facet]) && !in_array($this->facet_data[$facet]['type'], array('pager'))) {
958 958
 					$pager_facet_off = true;
959 959
 				}
960 960
 			}
@@ -968,9 +968,9 @@  discard block
 block discarded – undo
968 968
 	 */
969 969
 	public function wc_archive_header() {
970 970
 		$default_size   = 'sm';
971
-		$size           = apply_filters( 'lsx_bootstrap_column_size', $default_size );
971
+		$size           = apply_filters('lsx_bootstrap_column_size', $default_size);
972 972
 		?>
973
-			<div class="archive-header-wrapper banner-woocommerce col-<?php echo esc_attr( $size ); ?>-12">
973
+			<div class="archive-header-wrapper banner-woocommerce col-<?php echo esc_attr($size); ?>-12">
974 974
 				<?php lsx_global_header_inner_bottom(); ?>
975 975
 				<header class="archive-header">
976 976
 					<h1 class="archive-title"><?php woocommerce_page_title(); ?></h1>
@@ -985,14 +985,14 @@  discard block
 block discarded – undo
985 985
 	public function display_facet_search() {
986 986
 		?>
987 987
 		<div class="col-xs-12 facetwp-item facetwp-form">
988
-			<form class="search-form lsx-search-form" action="<?php echo esc_attr( home_url() ); ?>" method="get">
988
+			<form class="search-form lsx-search-form" action="<?php echo esc_attr(home_url()); ?>" method="get">
989 989
 				<div class="input-group">
990 990
 					<div class="field">
991
-						<input class="facetwp-search search-field form-control" name="s" type="search" placeholder="<?php esc_html_e( 'Search', 'lsx-search' ); ?>..." autocomplete="off" value="<?php echo get_search_query() ?>">
991
+						<input class="facetwp-search search-field form-control" name="s" type="search" placeholder="<?php esc_html_e('Search', 'lsx-search'); ?>..." autocomplete="off" value="<?php echo get_search_query() ?>">
992 992
 					</div>
993 993
 
994 994
 					<div class="field submit-button">
995
-						<button class="search-submit btn" type="submit"><?php esc_html_e( 'Search', 'lsx-search' ); ?></button>
995
+						<button class="search-submit btn" type="submit"><?php esc_html_e('Search', 'lsx-search'); ?></button>
996 996
 					</div>
997 997
 				</div>
998 998
 			</form>
@@ -1003,26 +1003,26 @@  discard block
 block discarded – undo
1003 1003
 	/**
1004 1004
 	 * Display facet default.
1005 1005
 	 */
1006
-	public function display_facet_default( $facet ) {
1006
+	public function display_facet_default($facet) {
1007 1007
 
1008
-		$show_collapse = ! isset( $this->options['display'][$this->search_prefix . '_collapse'] ) || 'on' !== $this->options['display'][$this->search_prefix . '_collapse'];
1008
+		$show_collapse = !isset($this->options['display'][$this->search_prefix.'_collapse']) || 'on' !== $this->options['display'][$this->search_prefix.'_collapse'];
1009 1009
 		$col_class = '';
1010 1010
 
1011
-		if ( 'search' === $this->facet_data[ $facet ]['type'] ) : ?>
1012
-			<?php echo do_shortcode( '[facetwp facet="' . $facet . '"]' ); ?>
1011
+		if ('search' === $this->facet_data[$facet]['type']) : ?>
1012
+			<?php echo do_shortcode('[facetwp facet="'.$facet.'"]'); ?>
1013 1013
 		<?php else : ?>
1014
-			<div class="col-xs-12 facetwp-item parent-facetwp-facet-<?php echo esc_html( $facet ); ?> <?php echo esc_attr( $col_class ); ?>">
1015
-				<?php if ( ! $show_collapse ) { ?>
1014
+			<div class="col-xs-12 facetwp-item parent-facetwp-facet-<?php echo esc_html($facet); ?> <?php echo esc_attr($col_class); ?>">
1015
+				<?php if (!$show_collapse) { ?>
1016 1016
 					<div class="facetwp-collapsed">
1017
-						<h3 class="lsx-search-title"><?php echo wp_kses_post( $this->facet_data[ $facet ]['label'] ); ?></h3>
1018
-						<button title="<?php echo esc_html_e( 'Click to Expand', 'lsx-search' ); ?>" class="facetwp-collapse" type="button" data-toggle="collapse" data-target="#collapse-<?php echo esc_html( $facet ); ?>" aria-expanded="false" aria-controls="collapse-<?php echo esc_html( $facet ); ?>"></button>
1017
+						<h3 class="lsx-search-title"><?php echo wp_kses_post($this->facet_data[$facet]['label']); ?></h3>
1018
+						<button title="<?php echo esc_html_e('Click to Expand', 'lsx-search'); ?>" class="facetwp-collapse" type="button" data-toggle="collapse" data-target="#collapse-<?php echo esc_html($facet); ?>" aria-expanded="false" aria-controls="collapse-<?php echo esc_html($facet); ?>"></button>
1019 1019
 					</div>
1020
-					<div id="collapse-<?php echo esc_html( $facet ); ?>" class="collapse">
1021
-						<?php echo do_shortcode( '[facetwp facet="' . $facet . '"]' ); ?>
1020
+					<div id="collapse-<?php echo esc_html($facet); ?>" class="collapse">
1021
+						<?php echo do_shortcode('[facetwp facet="'.$facet.'"]'); ?>
1022 1022
 					</div>
1023 1023
 				<?php } else { ?>
1024
-					<h3 class="lsx-search-title"><?php echo wp_kses_post( $this->facet_data[ $facet ]['label'] ); ?></h3>
1025
-					<?php echo do_shortcode( '[facetwp facet="' . $facet . '"]' ); ?>
1024
+					<h3 class="lsx-search-title"><?php echo wp_kses_post($this->facet_data[$facet]['label']); ?></h3>
1025
+					<?php echo do_shortcode('[facetwp facet="'.$facet.'"]'); ?>
1026 1026
 				<?php } ?>
1027 1027
 			</div>
1028 1028
 		<?php
@@ -1032,8 +1032,8 @@  discard block
 block discarded – undo
1032 1032
 	/**
1033 1033
 	 * Changes slot column class.
1034 1034
 	 */
1035
-	public function change_slot_column_class( $class ) {
1036
-		if ( is_post_type_archive( 'video' ) || is_tax( 'video-category' ) ) {
1035
+	public function change_slot_column_class($class) {
1036
+		if (is_post_type_archive('video') || is_tax('video-category')) {
1037 1037
 			$column_class = 'col-xs-12 col-sm-4';
1038 1038
 		}
1039 1039
 
@@ -1044,15 +1044,15 @@  discard block
 block discarded – undo
1044 1044
 	 * Add post type label to the title.
1045 1045
 	 */
1046 1046
 	public function add_label_to_title() {
1047
-		if ( is_search() ) {
1048
-			if ( ! empty( $this->options['display']['engine_search_enable_pt_label'] ) ) {
1047
+		if (is_search()) {
1048
+			if (!empty($this->options['display']['engine_search_enable_pt_label'])) {
1049 1049
 				$post_type = get_post_type();
1050
-				$post_type = str_replace( '_', ' ', $post_type );
1051
-				$post_type = str_replace( '-', ' ', $post_type );
1052
-				if ( 'tribe events' === $post_type ) {
1050
+				$post_type = str_replace('_', ' ', $post_type);
1051
+				$post_type = str_replace('-', ' ', $post_type);
1052
+				if ('tribe events' === $post_type) {
1053 1053
 					$post_type = 'Events';
1054 1054
 				}
1055
-				echo wp_kses_post( ' <span class="label label-default lsx-label-post-type">' . $post_type . '</span>' );
1055
+				echo wp_kses_post(' <span class="label label-default lsx-label-post-type">'.$post_type.'</span>');
1056 1056
 			}
1057 1057
 		}
1058 1058
 	}
@@ -1060,22 +1060,22 @@  discard block
 block discarded – undo
1060 1060
 	/**
1061 1061
 	 * Changes the sort options.
1062 1062
 	 */
1063
-	public function facetwp_sort_options( $options, $params ) {
1063
+	public function facetwp_sort_options($options, $params) {
1064 1064
 		$this->set_vars();
1065 1065
 
1066
-		if ( true === $this->search_enabled ) {
1067
-			if ( 'default' !== $params['template_name'] && 'wp' !== $params['template_name'] ) {
1066
+		if (true === $this->search_enabled) {
1067
+			if ('default' !== $params['template_name'] && 'wp' !== $params['template_name']) {
1068 1068
 				return $options;
1069 1069
 			}
1070 1070
 
1071
-			if ( ! empty( $this->options['display'][ $this->search_prefix . '_disable_date' ] ) ) {
1072
-				unset( $options['date_desc'] );
1073
-				unset( $options['date_asc'] );
1071
+			if (!empty($this->options['display'][$this->search_prefix.'_disable_date'])) {
1072
+				unset($options['date_desc']);
1073
+				unset($options['date_asc']);
1074 1074
 			}
1075 1075
 
1076
-			if ( ! empty( $this->options['display'][ $this->search_prefix . '_disable_az_sorting' ] ) ) {
1077
-				unset( $options['title_desc'] );
1078
-				unset( $options['title_asc'] );
1076
+			if (!empty($this->options['display'][$this->search_prefix.'_disable_az_sorting'])) {
1077
+				unset($options['title_desc']);
1078
+				unset($options['title_asc']);
1079 1079
 			}
1080 1080
 		}
1081 1081
 
@@ -1088,9 +1088,9 @@  discard block
 block discarded – undo
1088 1088
 	 *
1089 1089
 	 * @return mixed
1090 1090
 	 */
1091
-	public function kses_allowed_html( $allowedtags, $context ) {
1091
+	public function kses_allowed_html($allowedtags, $context) {
1092 1092
 		$allowedtags['a']['data-value'] = true;
1093
-		$allowedtags['a']['data-selection']  = true;
1093
+		$allowedtags['a']['data-selection'] = true;
1094 1094
 		$allowedtags['button']['data-toggle'] = true;
1095 1095
 		return $allowedtags;
1096 1096
 	}
@@ -1098,13 +1098,13 @@  discard block
 block discarded – undo
1098 1098
 	/**
1099 1099
 	 * Change FaceWP result count HTML
1100 1100
 	 */
1101
-	public function get_search_query( $keyword ) {
1102
-		$needle = trim( '/ ' );
1103
-		$words = explode( $needle, $keyword );
1104
-		if ( is_array( $words ) && ! empty( $words ) ) {
1105
-			$keyword = $words[ count( $words ) - 1 ];
1101
+	public function get_search_query($keyword) {
1102
+		$needle = trim('/ ');
1103
+		$words = explode($needle, $keyword);
1104
+		if (is_array($words) && !empty($words)) {
1105
+			$keyword = $words[count($words) - 1];
1106 1106
 		}
1107
-		$keyword = str_replace( '+', ' ', $keyword );
1107
+		$keyword = str_replace('+', ' ', $keyword);
1108 1108
 		return $keyword;
1109 1109
 	}
1110 1110
 }
Please login to merge, or discard this patch.