如何在Woocommerce产品供应商插件供应商页面显示产品,如果组产品显示在商店页面?



我在functions.php中添加了以下代码,因为我想只显示组产品到woocommerce商店页面。代码是有效的。问题是单个产品没有显示在产品供应商插件的每个供应商页面下。

插件支持告诉我,要解决这个问题,我下面的代码需要添加一个条件,以便它只在某些页面上运行-否则它将影响整个网站.....

遗憾的是,我不知道该怎么做。

欢迎您的支持!

'''/**
* Show Only Grouped Products in Woocommerce
*/
add_filter( 'woocommerce_product_query_tax_query', 'only_grouped_products', 20, 1 );
function only_grouped_products( $tax_query ){
$tax_query[] = array(
'taxonomy'  => 'product_type',
'field'     => 'name',
'terms'     => array('grouped'),
);
return $tax_query;
}'''

我已经找到解决方案了:

/**
* Show Only Grouped Products in Woocommerce
*/
add_action( 'woocommerce_product_query', 
'prefix_custom_pre_get_posts_query' );
function prefix_custom_pre_get_posts_query( $q ) {
if( is_shop() || is_page('products-portfolio') ) {
$tax_query = (array) $q->get( 'tax_query' );
$tax_query[] = array(
'taxonomy' => 'product_type',
'field'    => 'name',
'terms'    => array( 'grouped'), // set product categories here
);
$q->set( 'tax_query', $tax_query );
}
elseif( is_product_category() ) {
$tax_query = (array) $q->get( 'tax_query' );
$tax_query[] = array(
'taxonomy' => 'product_type',
'field'    => 'name',
'terms'    => array( 'grouped'), // set product categories here
);
$q->set( 'tax_query', $tax_query );
}
elseif( is_product_tag() ) {
$tax_query = (array) $q->get( 'tax_query' );
$tax_query[] = array(
'taxonomy' => 'product_type',
'field'    => 'name',
'terms'    => array( 'grouped'), // set product categories here
);
$q->set( 'tax_query', $tax_query );
}
else {
}

}

最新更新