Фильтр по наличию

Главная / Wordpress / Фильтр по наличию

Стояла задача сделать фильтр по наличию в интернет-магазине.

После некоторых поисков нашла отличное решение https://opttour.ru/plugins/filtr-po-nalichiyu/

Немного изменила под свои задачи.

Взяла этот кусок кода и вставила в шаблон туда, где этот фильтр должен быть. В моем случае это wp-content/plugins/woocommerce/templates/loop/orderby.php На странице вывода категорий нужного товара в верхней части.

if ( !is_search() ) {

					$poductcatid = get_queried_object_id();
			
					$args = array(
						'post_type' => 'product',
						'numberposts' => -1,
						'fields' => 'ids',
						'tax_query' => array(
							array(
								'taxonomy' => 'product_cat',
								'field' => 'id',
								'terms' => $poductcatid
							),
						)
					);
			
					$products = get_posts( $args );
			
					foreach($products as $product){
						$produts_status[] = get_post_meta( $product, '_stock_status', true );;
					}
					
					$produts_status_uniq = array_unique($produts_status);
					wp_reset_postdata();	
					echo '<div class="car-brand__stock">';
					echo '<select name="stock-switcher" id="stock-switcher"><option value="all">Все авто</option>';
					if (in_array('instock', $produts_status_uniq)) { echo '<option value="instock">В наличии</option>'; }
					if (in_array('onbackorder', $produts_status_uniq)) { echo '<option value="onbackorder">Под заказ</option>'; }
					
					echo '</select>';		
					echo '</div>';
				}

Скрипт скопировала в отдельный файл carscript.js по адресу: моя дочерняя тема/assets/js/carscript.js

Подключила в functions.php дочерней темы (там уже подключался файл со стилями, поэтому добавила подключение скрипта туда же):

function oceanwp_child_enqueue_parent_style() {

	$theme   = wp_get_theme( 'OceanWP' );
	$version = $theme->get( 'Version' );

	// Load the stylesheet.
	wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array( 'oceanwp-style' ), $version );
	wp_enqueue_script( 'stock-script', get_template_directory_uri() . '/assets/js/carscript.js', array(), '1.0', true );
	
}

add_action( 'wp_enqueue_scripts', 'oceanwp_child_enqueue_parent_style' );

Все работает.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *