Woocommerce 产品的 SQL 查询:获取 sku 和产品标签

问题描述 投票:0回答:1

通过 SQL 查询,我想获取具有产品 SKU 和产品标签 ID、产品标签名称(但不是产品类别)的所有产品。

我尝试了以下代码,但不知道如何查询产品标签ID和产品标签名称:

SELECT 
 p.ID,
 p.post_title,
 `post_content`,
 `post_excerpt`,
 t.name AS product_category,
 t.term_id AS product_id,
 t.slug AS product_slug,
 t.name,
 tt.term_taxonomy_id AS tt_term_taxonomia,
 tr.term_taxonomy_id AS tr_term_taxonomia,
 MAX(CASE WHEN pm1.meta_key = '_price' then pm1.meta_value ELSE NULL END) as price,
 MAX(CASE WHEN pm1.meta_key = '_regular_price' then pm1.meta_value ELSE NULL END) as    regular_price,
 MAX(CASE WHEN pm1.meta_key = '_sale_price' then pm1.meta_value ELSE NULL END) as sale_price,
MAX(CASE WHEN pm1.meta_key = '_sku' then pm1.meta_value ELSE NULL END) as sku 
FROM uzn2_posts p 
LEFT JOIN uzn2_postmeta pm1 ON pm1.post_id = p.ID
LEFT JOIN uzn2_term_relationships AS tr ON tr.object_id = p.ID
JOIN uzn2_term_taxonomy AS tt ON tt.taxonomy = 'product_cat' AND tt.term_taxonomy_id = tr.term_taxonomy_id 
JOIN uzn2_terms AS t ON t.term_id = tt.term_id
WHERE p.post_type in('product', 'product_variation') AND p.post_status = 'publish' AND    p.post_content <> ''
GROUP BY p.ID,p.post_title
sql woocommerce product custom-taxonomy taxonomy-terms
1个回答
0
投票

产品变体不处理任何自定义分类法,如类别、标签、属性。

产品标签的分类很简单

product_tag

在下面的 SQL 查询中,您将获得产品 ID、sku、标签名称和 ID (如果需要,请将表名称中的“wp_”替换为正确的表索引):

SELECT p.ID AS product_id,
pm.meta_value AS product_sku,
t.name AS tag_name,
t.term_id AS tag_id
FROM wp_posts p 
LEFT JOIN wp_postmeta pm ON pm.post_id = p.ID
LEFT JOIN wp_term_relationships tr ON p.ID = tr.object_id 
LEFT JOIN wp_term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id 
LEFT JOIN wp_terms t ON tt.term_id = t.term_id
WHERE p.post_type = 'product' 
AND p.post_status = 'publish'
AND pm.meta_key = '_sku'
AND tt.taxonomy = 'product_tag'

对于产品变体类型,请使用 (我们从父变量产品中获取产品标签名称和 ID):

SELECT p.ID AS product_id,
pm.meta_value AS product_sku,
t.name AS tag_name,
t.term_id AS tag_id
FROM wp_posts p 
LEFT JOIN wp_postmeta pm ON pm.post_id = p.ID
LEFT JOIN wp_term_relationships tr ON p.post_parent = tr.object_id 
LEFT JOIN wp_term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id 
LEFT JOIN wp_terms t ON tt.term_id = t.term_id
WHERE p.post_type = 'product_variation' 
AND p.post_status = 'publish'
AND pm.meta_key = '_sku'
AND tt.taxonomy = 'product_tag'

注意:只有带有产品标签的产品才会列出。

© www.soinside.com 2019 - 2024. All rights reserved.