显示类别中缺货的产品

时间:2016-05-17 16:04:47

标签: php wordpress woocommerce categories product

在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' );
}

因为可以这样做吗?

谢谢!

1 个答案:

答案 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 );
    }
}