【问题标题】:Woocommerce get product by custom queryWoocommerce 通过自定义查询获取产品
【发布时间】:2018-12-24 19:59:55
【问题描述】:

这是基于 WordPress 和 WooCommerce 并处理 post 和 post_meta 表

我必须获取所有具有 meta_key = "_shop" 和 meta_value = "yes" 的产品 ID

典型情况:

如果元键和元值与父产品匹配,那么它的所有变体也必须包括。

如果元键和元值未与父项一起行进,但其变体具有元键和元值匹配,则仅返回变体。

Product(#18)(simple):           _shop = 'yes'
Product(#19)(variable):         _shop = 'yes' (Parent is Yes)
       Product(#20)(variation): _shop = 'yes'
       Product(#21)(variation): _shop = 'no'
       Product(#22)(variation): _shop = 'no'
Product(#23)(simple):           _shop = 'yes'
Product(#24)(variable):         _shop = 'no'  (parent is no)
       Product(#25)(variation): _shop = 'no'
       Product(#26)(variation): _shop = 'yes' (Only this variation)
       Product(#20)(variation): _shop = 'no'

我需要的IDS:

#18 #19 #20 #21 #22 #23 #26

【问题讨论】:

  • 您根据什么确定变异的父代?像 #25 的父母是 #24 吗?

标签: mysql wordpress woocommerce


【解决方案1】:
    select  productID from your_table
   where meta_key = "_shop" and meta_value = "yes"

【讨论】:

  • 感谢您的建议。但是有两种典型的情况。
  • 你能把典型的情况说清楚一点吗
  • 好的。它基于 WordPress 和 WooCommerce。获取所有元键 = 'shop' 和元值 = 'yes' 的产品 ID。如果产品类型是变量检查其元键和值匹配,则返回其下的所有变体。
  • 这意味着条件是如果产品类型=变量和元键='商店'和元值='是'然后返回所有产品ID
  • 是的。返回其所有变体,如果父代不匹配,则检查其变体,如果变体匹配则返回变体的 ID
【解决方案2】:
add_action('init',function(){
    global $wpdb;
    $ids = $wpdb->get_results("
                                SELECT p.ID as id 
                                From $wpdb->posts as p
                                LEFT JOIN $wpdb->postmeta as m
                                ON p.ID = m.post_id
                                WHERE m.meta_key = '_shop'
                                AND m.meta_value = 'yes'
                                AND p.post_type = 'product' OR p.post_type = 'product_variation'
                            ");
    if(!empty($ids)){
        foreach ($ids as $id) {
            echo $id->id;
        }
    }
});

【讨论】:

  • 感谢您的建议。有两种情况,如果父产品匹配场景返回所有变体,否则只返回变体
猜你喜欢
  • 2018-01-31
  • 1970-01-01
  • 2016-11-24
  • 1970-01-01
  • 2019-07-02
  • 2021-10-24
  • 2018-09-27
  • 1970-01-01
  • 2012-11-02
相关资源
最近更新 更多