在WooCommerce中,我检查了“可见性缺货”选项,但我需要保留一些产品类别,即使选中该选项也是如此。
另一方面,主商店没有显示该类别。为此我使用了这段代码:
add_action( 'pre_get_posts', 'custom_pre_get_posts_query' );
function custom_pre_get_posts_query( $q ) {
if ( ! $q->is_main_query() ) return;
if ( ! $q->is_post_type_archive() ) return;
if ( ! is_admin() && is_shop() ) {
$q->set( 'tax_query', array(array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array( 'MYCATEGORY' ), // Don't show this category.
'operator' => 'NOT IN'
)));
}
remove_action( 'pre_get_posts', 'custom_pre_get_posts_query' );
}
因为可以这样做吗?
谢谢!
答案 0 :(得分:1)
这只是一个快速猜测,没有经过测试,但你可以尝试从以下内容开始:
global $product;
$terms = wp_get_post_terms( $post->ID, 'product_cat' );
foreach ( $terms as $term ) $categories[] = $term->slug;
$category_to_show = ‘MYCATEGORY’;
if( $categories ) {
if( in_array( $category_to_show, $categories ) && !$product->is_in_stock() ) {
apply_filters( 'woocommerce_product_is_visible', true, $product->id );
}
}