Passed
Push — master ( 870452...c2cd5c )
by Fernando
02:15
created

woocommerce.php ➔ lsx_customizer_wc_controls()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 57
Code Lines 34

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 34
nc 1
nop 1
dl 0
loc 57
rs 9.6818
c 0
b 0
f 0

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
/**
3
 * LSX functions and definitions - WooCommerce.
4
 *
5
 * @package    lsx
6
 * @subpackage layout
7
 */
8
9
if ( ! defined( 'ABSPATH' ) ) {
10
	exit;
11
}
12
13
if ( ! function_exists( 'lsx_wc_support' ) ) :
14
15
	/**
16
	 * WooCommerce support.
17
	 *
18
	 * @package    lsx
19
	 * @subpackage woocommerce
20
	 */
21
	function lsx_wc_support() {
22
		add_theme_support( 'woocommerce' );
23
	}
24
25
	add_action( 'after_setup_theme', 'lsx_wc_support' );
26
27
endif;
28
29
if ( ! function_exists( 'lsx_wc_scripts_add_styles' ) ) :
30
31
	/**
32
	 * WooCommerce enqueue styles.
33
	 *
34
	 * @package    lsx
35
	 * @subpackage woocommerce
36
	 */
37
	function lsx_wc_scripts_add_styles() {
38
		wp_enqueue_style( 'woocommerce-lsx', get_template_directory_uri() . '/assets/css/woocommerce.css', array( 'lsx_main' ), LSX_VERSION );
39
		wp_style_add_data( 'woocommerce-lsx', 'rtl', 'replace' );
40
41
		// Remove select2 added by WooCommerce
42
43
		if ( ! is_admin() ) {
44
			wp_dequeue_style( 'select2' );
45
			wp_deregister_style( 'select2' );
46
47
			wp_dequeue_script( 'select2' );
48
			//wp_deregister_script( 'select2' );
0 ignored issues
show
Unused Code Comprehensibility introduced by
58% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
49
		}
50
	}
51
52
	add_action( 'wp_enqueue_scripts', 'lsx_wc_scripts_add_styles' );
53
54
endif;
55
56
if ( ! function_exists( 'lsx_wc_form_field_args' ) ) :
57
58
	/**
59
	 * WooCommerce form fields.
60
	 *
61
	 * @package    lsx
62
	 * @subpackage woocommerce
63
	 */
64
	function lsx_wc_form_field_args( $args, $key, $value ) {
0 ignored issues
show
Unused Code introduced by
The parameter $key is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $value is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
65
		$args['input_class'][] = 'form-control';
66
67
		return $args;
68
	}
69
70
	add_action( 'woocommerce_form_field_args', 'lsx_wc_form_field_args', 10, 3 );
71
72
endif;
73
74
if ( ! function_exists( 'lsx_wc_theme_wrapper_start' ) ) :
75
76
	/**
77
	 * WooCommerce wrapper start.
78
	 *
79
	 * @package    lsx
80
	 * @subpackage woocommerce
81
	 */
82
	function lsx_wc_theme_wrapper_start() {
83
		lsx_content_wrap_before();
84
		echo '<div id="primary" class="content-area ' . esc_attr( lsx_main_class() ) . '">';
85
		lsx_content_before();
86
		echo '<main id="main" class="site-main" role="main">';
87
		lsx_content_top();
88
	}
89
90
	remove_action( 'woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 10 );
91
	add_action( 'woocommerce_before_main_content', 'lsx_wc_theme_wrapper_start' );
92
93
endif;
94
95
if ( ! function_exists( 'lsx_wc_theme_wrapper_end' ) ) :
96
97
	/**
98
	 * WooCommerce wrapper end.
99
	 *
100
	 * @package    lsx
101
	 * @subpackage woocommerce
102
	 */
103
	function lsx_wc_theme_wrapper_end() {
104
		lsx_content_bottom();
105
		echo '</main>';
106
		lsx_content_after();
107
		echo '</div>';
108
		lsx_content_wrap_after();
109
	}
110
111
	remove_action( 'woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 10 );
112
	add_action( 'woocommerce_after_main_content', 'lsx_wc_theme_wrapper_end' );
113
114
endif;
115
116
if ( ! function_exists( 'lsx_wc_disable_lsx_banner_plugin' ) ) :
117
118
	/**
119
	 * Disable LSX Banners plugin in some WC pages.
120
	 *
121
	 * @package    lsx
122
	 * @subpackage woocommerce
123
	 */
124
	function lsx_wc_disable_lsx_banner_plugin( $disabled ) {
125
		if ( is_cart() || is_checkout() || is_account_page() ) {
126
			$disabled = true;
127
		}
128
129
		return $disabled;
130
	}
131
132
	add_filter( 'lsx_banner_plugin_disable', 'lsx_wc_disable_lsx_banner_plugin' );
133
134
endif;
135
136
if ( ! function_exists( 'lsx_wc_disable_lsx_banner' ) ) :
137
138
	/**
139
	 * Disable LSX Banners banner in some WC pages.
140
	 *
141
	 * @package    lsx
142
	 * @subpackage woocommerce
143
	 */
144
	function lsx_wc_disable_lsx_banner( $disabled ) {
145
		if ( is_shop() || is_product_category() || is_product_tag() || is_product() ) {
146
			$disabled = true;
147
		}
148
149
		return $disabled;
150
	}
151
152
	add_filter( 'lsx_banner_disable', 'lsx_wc_disable_lsx_banner' );
153
154
endif;
155
156
if ( ! function_exists( 'lsx_wc_add_cart' ) ) :
157
158
	/**
159
	 * Adds WC cart to the header.
160
	 *
161
	 * @package    lsx
162
	 * @subpackage template-tags
163
	 */
164
	function lsx_wc_add_cart( $items, $args ) {
165
		$cart_menu_item_position = apply_filters( 'lsx_wc_cart_menu_item_position', 'primary' );
166
167
		if ( $cart_menu_item_position === $args->theme_location ) {
168
			$customizer_option  = get_theme_mod( 'lsx_header_wc_cart', false );
169
170
			if ( ! empty( $customizer_option ) ) {
171
				ob_start();
172
				the_widget( 'WC_Widget_Cart', 'title=' );
173
				$widget = ob_get_clean();
174
175
				if ( is_cart() ) {
176
					$item_class = 'current-menu-item';
0 ignored issues
show
Unused Code introduced by
$item_class is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
177
				} else {
178
					$item_class = '';
0 ignored issues
show
Unused Code introduced by
$item_class is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
179
				}
180
181
				$item_class = 'menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children dropdown lsx-wc-cart-menu-item ' . $class;
0 ignored issues
show
Bug introduced by
The variable $class does not exist. Did you forget to declare it?

This check marks access to variables or properties that have not been declared yet. While PHP has no explicit notion of declaring a variable, accessing it before a value is assigned to it is most likely a bug.

Loading history...
182
				$item_class = apply_filters( 'lsx_wc_cart_menu_item_class', $item_class );
183
184
				$item = '<li class="' . $item_class . '">' .
185
							'<a title="' . esc_attr__( 'View your shopping cart', 'lsx' ) . '" href="' . esc_url( wc_get_cart_url() ) . '" data-toggle="dropdown" class="dropdown-toggle" aria-haspopup="true">' .
186
								'<span class="lsx-wc-cart-amount">' . wp_kses_data( WC()->cart->get_cart_subtotal() ) . '</span>' .
187
								/* Translators: %s: items quantity */
188
								'<span class="lsx-wc-cart-count">' . wp_kses_data( sprintf( _n( '%d item', '%d items', WC()->cart->get_cart_contents_count(), 'lsx' ), WC()->cart->get_cart_contents_count() ) ) . '</span>' .
189
								( ! empty( WC()->cart->get_cart_contents_count() ) ? '<span class="lsx-wc-cart-count-badge">' . wp_kses_data( WC()->cart->get_cart_contents_count() ) . '</span>' : '' ) .
190
							'</a>' .
191
							'<ul role="menu" class=" dropdown-menu lsx-wc-cart-sub-menu">' .
192
								'<li>' .
193
									'<div class="lsx-wc-cart-dropdown">' . $widget . '</div>' .
194
								'</li>' .
195
							'</ul>' .
196
						'</li>';
197
198
				if ( 'top-menu' === $args->theme_location ) {
199
					$items = $item . $items;
200
				} else {
201
					$items = $items . $item;
202
				}
203
			}
204
		}
205
206
		return $items;
207
	}
208
209
	add_filter( 'wp_nav_menu_items', 'lsx_wc_add_cart', 10, 2 );
210
211
endif;
212
213
if ( ! function_exists( 'lsx_wc_products_widget_wrapper_before' ) ) :
214
215
	/**
216
	 * Change WC products widget wrapper (before).
217
	 *
218
	 * @package    lsx
219
	 * @subpackage woocommerce
220
	 */
221
	function lsx_wc_products_widget_wrapper_before( $html ) {
0 ignored issues
show
Unused Code introduced by
The parameter $html is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
222
		$html = '<div class="lsx-woocommerce-slider lsx-woocommerce-shortcode">';
223
		return $html;
224
	}
225
226
	add_filter( 'woocommerce_before_widget_product_list', 'lsx_wc_products_widget_wrapper_before', 15 );
227
228
endif;
229
230
if ( ! function_exists( 'lsx_wc_products_widget_wrapper_after' ) ) :
231
232
	/**
233
	 * Change WC products widget wrapper (after).
234
	 *
235
	 * @package    lsx
236
	 * @subpackage woocommerce
237
	 */
238
	function lsx_wc_products_widget_wrapper_after( $html ) {
0 ignored issues
show
Unused Code introduced by
The parameter $html is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
239
		$html = '</div>';
240
		return $html;
241
	}
242
243
	add_filter( 'woocommerce_after_widget_product_list', 'lsx_wc_products_widget_wrapper_after', 15 );
244
245
endif;
246
247
if ( ! function_exists( 'lsx_wc_reviews_widget_override' ) ) :
248
249
	/**
250
	 * Override WC ewviews widget.
251
	 *
252
	 * @package    lsx
253
	 * @subpackage woocommerce
254
	 */
255
	function lsx_wc_reviews_widget_override() {
256
		if ( class_exists( 'WC_Widget_Recent_Reviews' ) ) {
257
			unregister_widget( 'WC_Widget_Recent_Reviews' );
258
			require get_template_directory() . '/includes/classes/class-lsx-wc-widget-recent-reviews.php';
259
			register_widget( 'LSX_WC_Widget_Recent_Reviews' );
260
		}
261
	}
262
263
	add_action( 'widgets_init', 'lsx_wc_reviews_widget_override', 15 );
264
265
endif;
266
267
if ( ! function_exists( 'lsx_wc_change_price_html' ) ) :
268
269
	/**
270
	 * Change WC ZERO price to "free".
271
	 *
272
	 * @package    lsx
273
	 * @subpackage woocommerce
274
	 */
275
	function lsx_wc_change_price_html( $price, $product ) {
276
		if ( empty( $product->get_price() ) ) {
277
			if ( $product->is_on_sale() && $product->get_regular_price() ) {
278
				$regular_price = wc_get_price_to_display( $product, array(
279
					'qty' => 1,
280
					'price' => $product->get_regular_price(),
281
				) );
282
283
				$price = wc_format_price_range( $regular_price, esc_html__( 'Free!', 'lsx' ) );
284
			} else {
285
				$price = '<span class="amount">' . esc_html__( 'Free!', 'lsx' ) . '</span>';
286
			}
287
		}
288
289
		return $price;
290
	}
291
292
	add_filter( 'woocommerce_get_price_html', 'lsx_wc_change_price_html', 15, 2 );
293
294
endif;
295
296
if ( ! function_exists( 'lsx_wc_cart_link_fragment' ) ) :
297
298
	/**
299
	 * Cart Fragments.
300
	 * Ensure cart contents update when products are added to the cart via AJAX.
301
	 *
302
	 * @package    lsx
303
	 * @subpackage woocommerce
304
	 */
305
	function lsx_wc_cart_link_fragment( $fragments ) {
306
		global $woocommerce;
307
308
		ob_start();
309
		lsx_wc_cart_link();
310
		$fragments['li.lsx-wc-cart-menu-item > a'] = ob_get_clean();
311
312
		ob_start();
313
		lsx_wc_items_counter();
314
		$items_counter = ob_get_clean();
315
316
		if ( ! empty( $items_counter ) ) {
317
			$fragments['div.widget_shopping_cart_content'] = preg_replace( '/(.+)(<\/ul>)[\s\n]*(<p class="woocommerce-mini-cart__total)(.+)/', '$1' . $items_counter . '$2$3$4', $fragments['div.widget_shopping_cart_content'] );
318
		}
319
320
		return $fragments;
321
	}
322
323
endif;
324
325
if ( ! function_exists( 'lsx_wc_cart_link' ) ) :
326
327
	/**
328
	 * Cart Link.
329
	 * Displayed a link to the cart including the number of items present and the cart total.
330
	 *
331
	 * @package    lsx
332
	 * @subpackage woocommerce
333
	 */
334
	function lsx_wc_cart_link() {
335
		?>
336
			<a title="<?php esc_attr_e( 'View your shopping cart', 'lsx' ); ?>" href="<?php echo esc_url( wc_get_cart_url() ); ?>" data-toggle="dropdown" class="dropdown-toggle" aria-haspopup="true">
337
				<span class="lsx-wc-cart-amount"><?php echo wp_kses_data( WC()->cart->get_cart_subtotal() ); ?></span>
338
339
				<?php /* Translators: %s: items quantity */ ?>
340
				<span class="lsx-wc-cart-count"><?php echo wp_kses_data( sprintf( _n( '%d item', '%d items', WC()->cart->get_cart_contents_count(), 'lsx' ), WC()->cart->get_cart_contents_count() ) );?></span>
341
342
				<?php if ( ! empty( WC()->cart->get_cart_contents_count() ) ) : ?>
343
					<span class="lsx-wc-cart-count-badge"><?php echo wp_kses_data( WC()->cart->get_cart_contents_count() );?></span>
344
				<?php endif; ?>
345
			</a>
346
		<?php
347
	}
348
349
endif;
350
351
if ( ! function_exists( 'lsx_wc_items_counter' ) ) :
352
353
	/**
354
	 * Add car item hidden items counter.
355
	 *
356
	 * @package    lsx
357
	 * @subpackage woocommerce
358
	 */
359
	function lsx_wc_items_counter() {
360
		$count = (int) WC()->cart->get_cart_contents_count();
361
		$items_counter = '';
362
363
		if ( ! empty( $count ) ) {
364
			$count -= 3;
365
366
			if ( 1 === $count ) {
367
				$items_counter = esc_html__( '1 other item in cart', 'lsx' );
368
			} elseif ( $count > 1 ) {
369
				/* Translators: %s: items counter */
370
				$items_counter = sprintf( esc_html__( '%s other items in cart', 'lsx' ), $count );
371
			}
372
		}
373
374
		if ( ! empty( $items_counter ) ) :
375
			?>
376
				<li class="woocommerce-mini-cart-item mini_cart_item" style="display: block;">
377
					<a href="<?php echo esc_url( WC()->cart->get_cart_url() ); ?>"><?php echo esc_html( $items_counter ); ?></a>
378
				</li>
379
			<?php
380
		endif;
381
	}
382
383
endif;
384
385
if ( ! function_exists( 'lsx_wc_loop_shop_per_page' ) ) :
386
387
	/**
388
	 * Changes the number of products to display on shop.
389
	 *
390
	 * @package    lsx
391
	 * @subpackage woocommerce
392
	 */
393
	function lsx_wc_loop_shop_per_page( $items ) {
0 ignored issues
show
Unused Code introduced by
The parameter $items is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
394
		$items = 20;
395
		return $items;
396
	}
397
398
	add_filter( 'loop_shop_per_page', 'lsx_wc_loop_shop_per_page', 20 );
399
400
endif;
401
402
if ( ! function_exists( 'lsx_wc_add_to_cart_message_html' ) ) :
403
404
	/**
405
	 * Changes the "added to cart" message HTML.
406
	 *
407
	 * @package    lsx
408
	 * @subpackage woocommerce
409
	 */
410
	function lsx_wc_add_to_cart_message_html( $message, $products ) {
0 ignored issues
show
Unused Code introduced by
The parameter $products is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
411
		$message = '<div class="woocommerce-message-added-to-cart">' . $message . '</div>';
412
		return $message;
413
	}
414
415
	add_filter( 'wc_add_to_cart_message_html', 'lsx_wc_add_to_cart_message_html', 20, 2 );
416
417
endif;
418
419
if ( defined( 'WC_VERSION' ) && version_compare( WC_VERSION, '2.3', '>=' ) ) {
420
	add_filter( 'woocommerce_add_to_cart_fragments', 'lsx_wc_cart_link_fragment' );
421
} else {
422
	add_filter( 'add_to_cart_fragments', 'lsx_wc_cart_link_fragment' );
423
}
424
425
remove_action( 'woocommerce_after_shop_loop', 'woocommerce_pagination', 10 );
426
427
add_action( 'woocommerce_after_shop_loop', 'lsx_wc_sorting_wrapper', 9 );
428
add_action( 'woocommerce_after_shop_loop', 'woocommerce_catalog_ordering', 10 );
429
add_action( 'woocommerce_after_shop_loop', 'woocommerce_result_count', 20 );
430
add_action( 'woocommerce_after_shop_loop', 'woocommerce_pagination', 30 );
431
add_action( 'woocommerce_after_shop_loop', 'lsx_wc_sorting_wrapper_close', 31 );
432
433
remove_action( 'woocommerce_before_shop_loop', 'woocommerce_result_count', 20 );
434
remove_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 30 );
435
436
add_action( 'woocommerce_before_shop_loop', 'lsx_wc_sorting_wrapper', 9 );
437
add_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 10 );
438
add_action( 'woocommerce_before_shop_loop', 'woocommerce_result_count', 20 );
439
add_action( 'woocommerce_before_shop_loop', 'lsx_wc_woocommerce_pagination', 30 );
440
add_action( 'woocommerce_before_shop_loop', 'lsx_wc_sorting_wrapper_close', 31 );
441
442
if ( ! function_exists( 'lsx_wc_sorting_wrapper' ) ) :
443
444
	/**
445
	 * Sorting wrapper.
446
	 *
447
	 * @package    lsx
448
	 * @subpackage woocommerce
449
	 */
450
	function lsx_wc_sorting_wrapper() {
451
		echo '<div class="lsx-wc-sorting">';
452
	}
453
454
endif;
455
456
if ( ! function_exists( 'lsx_wc_sorting_wrapper_close' ) ) :
457
458
	/**
459
	 * Sorting wrapper close.
460
	 *
461
	 * @package    lsx
462
	 * @subpackage woocommerce
463
	 */
464
	function lsx_wc_sorting_wrapper_close() {
465
		echo '</div>';
466
	}
467
468
endif;
469
470
if ( ! function_exists( 'lsx_wc_product_columns_wrapper_close' ) ) :
471
472
	/**
473
	 * Product columns wrapper close.
474
	 *
475
	 * @package    lsx
476
	 * @subpackage woocommerce
477
	 */
478
	function lsx_wc_product_columns_wrapper_close() {
479
		echo '</div>';
480
	}
481
482
endif;
483
484
if ( ! function_exists( 'lsx_wc_woocommerce_pagination' ) ) :
485
486
	/**
487
	 * LSX WooCommerce Pagination
488
	 * WooCommerce disables the product pagination inside the woocommerce_product_subcategories() function
489
	 * but since LSX adds pagination before that function is excuted we need a separate function to
490
	 * determine whether or not to display the pagination.
491
	 *
492
	 * @package    lsx
493
	 * @subpackage woocommerce
494
	 */
495
	function lsx_wc_woocommerce_pagination() {
496
		if ( woocommerce_products_will_display() ) {
497
			woocommerce_pagination();
498
		}
499
	}
500
501
endif;
502
503
if ( ! function_exists( 'lsx_customizer_wc_controls' ) ) :
504
505
	/**
506
	 * Returns an array of the core panel.
507
	 *
508
	 * @package    lsx
509
	 * @subpackage customizer
510
	 *
511
	 * @return $lsx_controls array()
0 ignored issues
show
Documentation introduced by
The doc-type $lsx_controls could not be parsed: Unknown type name "$lsx_controls" at position 0. (view supported doc-types)

This check marks PHPDoc comments that could not be parsed by our parser. To see which comment annotations we can parse, please refer to our documentation on supported doc-types.

Loading history...
512
	 */
513
	function lsx_customizer_wc_controls( $lsx_controls ) {
514
		$lsx_controls['panels']['lsx-wc'] = array(
515
			'title'       => esc_html__( 'WooCommerce', 'lsx' ),
516
			'description' => esc_html__( 'Change the WooCommerce settings.', 'lsx' ),
517
			'priority'    => 23,
518
		);
519
520
		/**
521
		 * Global.
522
		 */
523
524
		$lsx_controls['sections']['lsx-wc-global'] = array(
525
			'title'       => esc_html__( 'Global', 'lsx' ),
526
			'description' => esc_html__( 'Change the WooCommerce global settings.', 'lsx' ),
527
			'panel'       => 'lsx-wc',
528
			'priority'    => 1,
529
		);
530
531
		$lsx_controls['settings']['lsx_wc_mobile_footer_bar_status'] = array(
532
			'default'           => '1',
533
			'sanitize_callback' => 'lsx_sanitize_checkbox',
534
		);
535
536
		$lsx_controls['fields']['lsx_wc_mobile_footer_bar_status'] = array(
537
			'label'       => esc_html__( 'Footer Bar', 'lsx' ),
538
			'description' => esc_html__( 'Enable the mobile footer bar.', 'lsx' ),
539
			'section'     => 'lsx-wc-global',
540
			'type'        => 'checkbox',
541
			'priority'    => 1,
542
		);
543
544
		/**
545
		 * Cart.
546
		 */
547
548
		$lsx_controls['sections']['lsx-wc-cart'] = array(
549
			'title'       => esc_html__( 'Cart', 'lsx' ),
550
			'description' => esc_html__( 'Change the WooCommerce cart settings.', 'lsx' ),
551
			'panel'       => 'lsx-wc',
552
			'priority'    => 2,
553
		);
554
555
		$lsx_controls['settings']['lsx_header_wc_cart'] = array(
556
			'default'           => false,
557
			'sanitize_callback' => 'lsx_sanitize_checkbox',
558
		);
559
560
		$lsx_controls['fields']['lsx_header_wc_cart'] = array(
561
			'label'       => esc_html__( 'Menu Item', 'lsx' ),
562
			'description' => esc_html__( 'Enable the cart menu item.', 'lsx' ),
563
			'section'     => 'lsx-wc-cart',
564
			'type'        => 'checkbox',
565
			'priority'    => 1,
566
		);
567
568
		return $lsx_controls;
569
	}
570
571
endif;
572
573
add_filter( 'lsx_customizer_controls', 'lsx_customizer_wc_controls' );
574
575
if ( ! function_exists( 'lsx_wc_footer_bar' ) ) :
576
577
	/**
578
	 * Display WC footer bar.
579
	 *
580
	 * @package    lsx
581
	 * @subpackage woocommerce
582
	 */
583
	function lsx_wc_footer_bar() {
584
		if ( ! empty( get_theme_mod( 'lsx_wc_mobile_footer_bar_status', '1' ) ) ) :
585
			?>
586
			<div class="lsx-wc-footer-bar">
587
				<form role="search" method="get" action="<?php echo esc_url( home_url() ); ?>" class="lsx-wc-footer-bar-form">
588
					<fieldset>
589
						<legend class="screen-reader-text"><?php esc_html_e( 'Search products', 'lsx' ); ?></legend>
590
						<input type="search" name="s" placeholder="<?php esc_attr_e( 'Search products…', 'lsx' ); ?>" class="form-control">
591
					</fieldset>
592
				</form>
593
594
				<ul class="lsx-wc-footer-bar-items">
595
					<li class="lsx-wc-footer-bar-item">
596
						<a href="<?php echo esc_url( home_url() ); ?>" class="lsx-wc-footer-bar-link">
597
							<i class="fa fa-home" aria-hidden="true"></i>
598
							<span><?php esc_html_e( 'Home', 'lsx' ); ?></span>
599
						</a>
600
					</li>
601
602
					<li class="lsx-wc-footer-bar-item">
603
						<a href="<?php echo esc_url( get_permalink( get_option( 'woocommerce_myaccount_page_id' ) ) ); ?>" class="lsx-wc-footer-bar-link">
604
							<i class="fa fa-user" aria-hidden="true"></i>
605
							<span><?php esc_html_e( 'Account', 'lsx' ); ?></span>
606
						</a>
607
					</li>
608
609
					<li class="lsx-wc-footer-bar-item">
610
						<a href="#" class="lsx-wc-footer-bar-link lsx-wc-footer-bar-link-toogle">
611
							<i class="fa fa-search" aria-hidden="true"></i>
612
							<span><?php esc_html_e( 'Search', 'lsx' ); ?></span>
613
						</a>
614
					</li>
615
616
					<li class="lsx-wc-footer-bar-item">
617
						<a href="<?php echo esc_url( WC()->cart->get_cart_url() ); ?>" class="lsx-wc-footer-bar-link">
618
							<i class="fa fa-shopping-basket" aria-hidden="true"></i>
619
							<?php $count = WC()->cart->get_cart_contents_count(); ?>
620
							<?php if ( ! empty( $count ) ) : ?>
621
								<span class="lsx-wc-footer-bar-count"><?php echo wp_kses_data( $count ); ?></span>
622
							<?php endif; ?>
623
							<span><?php esc_html_e( 'Cart', 'lsx' ); ?></span>
624
						</a>
625
					</li>
626
				</ul>
627
			</div>
628
			<?php
629
		endif;
630
	}
631
632
	add_action( 'lsx_body_bottom', 'lsx_wc_footer_bar', 15 );
633
634
endif;
635