在Woocommerce产品的WP_Query中订购价格问题

时间:2018-03-21 09:58:13

标签: php wordpress product price variations

我正在尝试按价格对我的产品进行排序,但它不能正常工作,它只返回我的56种产品中的9种。我的所有产品都是类似产品,都是具有变化和属性的产品,所以我不知道它为什么会发生。

这是我获取产品的代码,如果我不使用“orderby”,它可以正常工作。

$args = [
"posts_per_page" => 20,
"paged"=> "1",
"tax_query" => [
    [
        "taxonomy" => "product_cat",
        "field" => "term_id",
        "terms" => "213",
        "operator" => "IN",
        "include_children" => false
    ],
    [
        "taxonomy" => "pa_color",
        "field" => "term_id",
        "terms" => [
            "red"
        ],
        "operator" => "IN"
    ],
    "relation" => "AND"
],
"post_type" => [
    "product",
    "product_variation"
],
"meta_query" => [
    [
        "key" => "_price",
        "value" => [
            "20",
            "30"
        ],
        "compare" => "BETWEEN",
        "type" => "NUMERIC"
    ],
    "relation" => "AND"
],
"orderby" => "meta_value_num",
"meta_key" => "_price",
"order" => "ASC"
]

$loop = new WP_Query( $args );

1 个答案:

答案 0 :(得分:0)

1)关于产品差异:

  • 产品类别产品标记的Woocommerce自定义分类在产品版本中未启用,但在父级中可变产品

  • 产品属性 (针对变体)无法通过税务查询获得。对于产品变体,它们设置为元数据,如attribute_pa_color (所有按键以attribute_开头),值为每个的一个术语slug

因此,您无法使查询适用于productproduct_variation这两种帖子。

注意:默认情况下,产品不会在产品循环中显示产品变体 。它们仅显示在购物车商品和订单商品中

2)关于可变产品:

  • 关于变量产品的价格(自WooCommerce 3 +以来),它们的价格会有多少(元键_prices),因为它有变化。因此,查询元键_prices会产生错误,因为第一个可用的价格将被采用(或者可能全部或全部都没有)
  • 关于产品属性,它不是那么简单,有两种:
    • 正常的产品属性(如简单产品)
    • 为变体启用了产品属性。<​​/ li>

注意:默认情况下,产品循环中会显示变量产品,但它们永远不会显示在购物车商品和订单商品中

  

出于所有原因,即使有或没有"orderby" => "meta_value_num",,您的查询也无法正常运作

您的查询中也存在一些错误或错误,例如:

  • tax_query "taxonomy" => "pa_color", "field"需要"slug"而不是"term_id"
  • 'post_status' => 'publish',缺失。
  • "operator" => "IN""relation" => "AND"不需要,因为它们是默认参数。
  

所以这并没有解决你的问题,但是告诉你这是不可能的。