php wc供应商产品类别下拉过滤器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php wc供应商产品类别下拉过滤器相关的知识,希望对你有一定的参考价值。


function vendor_page_filters_helper($query) {
  if (WCV_Vendors::is_vendor_page()) {
  	$vendor_shop = urldecode( get_query_var( 'vendor_shop' ) );
	$vendor_id   = WCV_Vendors::get_vendor_id( $vendor_shop );
    $query->set('author', $vendor_id);
    if(isset($_GET["vendor_cat"])) {
    	$query->set( 'tax_query', array(
        	'relation' => 'AND',
        	 array(
                    'taxonomy' => 'product_cat',
                    'field' => 'slug',
                    'terms' => $_GET["vendor_cat"]
                ),
        	) );
    }
  }
}
add_action('pre_get_posts', 'vendor_page_filters_helper');

function vendor_cat_filter_js() {
	?>
	<script>
		function updateQueryStringParameter(uri, key, value) {
		  var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
		  var separator = uri.indexOf('?') !== -1 ? "&" : "?";
		  if (uri.match(re)) {
		    return uri.replace(re, '$1' + key + "=" + value + '$2');
		  }
		  else {
		    return uri + separator + key + "=" + value;
		  }
		}

		jQuery(document).ready(function($) {
			if($('.wcv-store-grid').length) {
				$('.dropdown_product_cat').unbind();
				jQuery(document).on('change','.dropdown_product_cat', function(e) {
					e.preventDefault();
					e.stopPropagation();
					e.stopImmediatePropagation();
					var url 	= window.location.href;
					var value 	= jQuery(this).val();
					if (url.indexOf('vendor_cat') != -1) {
						url = updateQueryStringParameter(url, 'vendor_cat', value);
					} else if (url.indexOf('?') > -1){
					   url += '&vendor_cat=' + value;
					} else {
					   url += '?vendor_cat=' + value;
					}
					window.location.href = url;
				})
			}
		});	
	</script>
	<?php
}
add_action('wp_footer', 'vendor_cat_filter_js', 99);

以上是关于php wc供应商产品类别下拉过滤器的主要内容,如果未能解决你的问题,请参考以下文章

php WordPress |类别过滤器下拉列表

php WooCommerce搜索产品按类别下拉列表

php 存档中的WooCommerce产品类别下拉列表

在 Woocommerce wc_get_loop_prop 产品循环中仅包含某些类别

php WooCommerce:过滤产品类别列表

Laravel 7 雄辩的嵌套条件,用于使用枢轴进行过滤