【问题标题】:How to filter out hidden products in Woocommerce using array如何使用数组过滤 Woocommerce 中的隐藏产品
【发布时间】:2019-07-31 07:38:55
【问题描述】:

我有一个数组,但我无法添加最后一点,我想过滤掉隐藏的产品,这似乎不起作用。

所以首先我尝试使用get_defined_vars() 打印出所有变量,它按预期打印出所有变量。然后我找到了我感兴趣的数组部分

Array ( [name] => Test1 
        [slug] => test1 
        [date_created] => WC_DateTime Object ( 
            [utc_offset:protected] => 0 
            [date] => 2018-03-06 11:29:10.000000 
            [timezone_type] => 3 
            [timezone] => Europe) 
        [date_modified] => WC_DateTime Object ( 
            [utc_offset:protected] => 0 
            [date] => 2018-05-30 22:33:49.000000 
            [timezone_type] => 3 
            [timezone] => Europe) 
        [status] => publish 
        [featured] => [catalog_visibility] => hidden 

我认为这就是我所需要的,所以我尝试将这一行插入到数组中:

'catalog_visibility' => 'visible', 这不起作用。我是否还必须包含 [featured] 元素才能使其正常工作?

执行echo $product->visibility; 打印出来,如果产品是隐藏或可见的。

我有这个数组:

$args = array(
     'post_type' => 'product',
      'orderby' => 'rand',
      'posts_per_page' => 1,
      'product_cat' => 'c_pubescens',
      'post_status' => 'publish',
      'meta_query' => array(
           array(
               'key' => '_stock_status',
               'value' => 'instock'
       )
  )
);
$loop = new WP_Query( $args );

我迷失了。为什么它会打印状态,如果我执行echo $product->visibility; 但如果我执行echo $product->catalog_visibility;(在数组中)它不会返回任何内容?主要是如何让它发挥作用?

【问题讨论】:

    标签: php arrays wordpress woocommerce


    【解决方案1】:

    好的,我自己找到了答案。忘记发了,就这样吧。

    $args = array(
         'post_type' => 'product',
         'orderby' => 'rand',
         'posts_per_page' => 1,
         'product_cat' => 'c_pubescens',
         'post_status' => 'publish',
         'tax_query'    => array(
               array(
                  'taxonomy'         => 'product_visibility',
                  'terms'            => array( 'exclude-from-catalog', 'exclude-from-search' ),
                  'field'            => 'name',
                  'operator'         => 'NOT IN',
               ),
          ),
         'meta_query' => array(
             array(
                 'key' => '_stock_status',
                 'value' => 'instock'
       )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-18
      • 2013-07-25
      • 2021-06-13
      • 1970-01-01
      • 2015-12-11
      • 1970-01-01
      • 2014-08-20
      • 2021-09-21
      相关资源
      最近更新 更多