gpt4 book ai didi

php - WooCommerce:使用 SQL 查询获取产品类别的购买项目

转载 作者:行者123 更新时间:2023-11-29 07:22:12 25 4
gpt4 key购买 nike

我试图列出属于特定产品类别的所有已购买产品,例如“服装”产品类别下的所有 T 恤订单。

我发现 Woocommerce 数据库结构非常困惑,您必须编写长查询才能获得简单信息。

谁能提供一个示例查询来获取特定类别的所有订单?

我知道这可能涉及 wp_woocommerce_order_itemswp_terms 表,但从那里迷路了。

最佳答案

以下 SQL 查询将为您提供至少一次购买的属于“衣服”产品类别 slug 的产品 ID 列表:

SELECT DISTINCT tr.object_id
FROM wp_term_relationships tr
INNER JOIN wp_term_taxonomy tt
ON tr.term_taxonomy_id = tt.term_taxonomy_id
INNER JOIN wp_terms t
ON tt.term_id = t.term_id
INNER JOIN wp_woocommerce_order_itemmeta oim
ON tr.object_id = oim.meta_value
INNER JOIN wp_woocommerce_order_items oi
ON oim.order_item_id = oi.order_item_id
INNER JOIN wp_posts as o
ON oi.order_id = o.ID
WHERE tt.taxonomy = 'product_cat'
AND t.slug = 'clothes'
AND oim.meta_key = '_product_id'
AND o.post_type = 'shop_order'
AND o.post_status IN ('wc-completed','wc-processing')

已测试并有效

或者在 Wordpress 中使用 WPDB这可以通过以下方式完成:

global $wpdb;

$product_category = 'clothes'; // Term slug

$products_ids = $wpdb->get_col( "
SELECT DISTINCT tr.object_id
FROM wp_term_relationships tr
INNER JOIN wp_term_taxonomy tt
ON tr.term_taxonomy_id = tt.term_taxonomy_id
INNER JOIN wp_terms t
ON tt.term_id = t.term_id
INNER JOIN wp_woocommerce_order_itemmeta oim
ON tr.object_id = oim.meta_value
INNER JOIN wp_woocommerce_order_items oi
ON oim.order_item_id = oi.order_item_id
INNER JOIN wp_posts as o
ON oi.order_id = o.ID
WHERE tt.taxonomy = 'product_cat'
AND t.slug = '$product_category'
AND oim.meta_key = '_product_id'
AND o.post_type = 'shop_order'
AND o.post_status IN ('wc-completed','wc-processing')
");

// Pre-formatted raw display (an array of products ids)
echo '<pre>'; print_r($products_ids); echo '</pre>';

关于php - WooCommerce:使用 SQL 查询获取产品类别的购买项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55678653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com