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 雄辩的嵌套条件,用于使用枢轴进行过滤