【问题标题】:Query to get Woo products in a parent-children order查询以父子顺序获取Woo产品
【发布时间】:2022-11-13 17:31:34
【问题描述】:

我想为 Woo 数据库模式构建一个 MySQL 查询以获取简单/可变产品,但按特定顺序:我想以 ID ASCending 顺序获取它们,但是当满足可变产品时,我想要得到完全低于其父级的变化。

因此,对于简单产品或可变产品的父级,post_type 字段设置为“产品”,post_parent 字段设置为 0。对于可变产品(即变体)的子级,@987654326 @ 字段设置为“variable_product”,post_parent 字段设置为父产品的ID

所以,想象一下这个期望的顺序:

ID post_title post_type post_parent
1100 title1 product 0
1104 title2 product 0
1130 title2 - variation1 variable_product 1104
1200 title2 - variation2 variable_product 1104
1208 title2 - variation3 variable_product 1104
1107 title3 product 0
1111 title4 product 0
1205 title4 - variation1 variable_product 1111
1210 title4 - variation4 variable_product 1111
1430 title4 - variation3 variable_product 1111
1432 title4 - variation2 variable_product 1111

因此,通过上表,您可以看到我希望产品按其 ID 排序,直到满足产品的变体,我希望将其放置在其父级下,并且也按其 ID 对其自身进行排序。所以我不关心没有按字母顺序排序的标题(title4-variation4 排序在 title4-variation3 之上,因为变体的 ID 是按升序排序的)。

所以我试着用ORDER BY ID ASC, post_parent ASCORDER BY ID ASC, post_type ASC 玩一点,因为产品按字母顺序排序在variation_product 上方,但我无法正确排序。我总是以父产品的排序高于变体,只是因为它们的 ID 更小。

SELECT * FROM wp6c_posts WHERE post_type IN ('product', 'product_variation') ORDER BY ID ASC, post_parent ASC;

显然我必须查询表 wp6c_posts 两次,一次是针对简单/父产品,然后是针对可变产品的变体,但我想不出正确的查询。

有人可以帮我弄这个吗?

【问题讨论】:

    标签: mysql wordpress woocommerce variable-product


    【解决方案1】:

    您可以使用以下查询。它可能满足您的要求。

      $args = array(
            'post_per_page' => 1,
            'order'         => 'DESC',
            'post_type'     => ['product', 'variable_product'],
        );
    
        $products = get_children($args);
    
        if ($products) {
            foreach ($products as $product) {
    
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-31
      • 1970-01-01
      相关资源
      最近更新 更多