获取具有特定term_id的Woocommerce产品ID

时间:2019-05-03 13:39:12

标签: mysql database wordpress woocommerce attributes

好的,我需要直接从数据库中获取WooCommerce中所有post_id(产品)的列表,其中产品具有我可以找到的属性term_id

更全面地说,假设我有一个名为“颜色”的属性,其中包含一串颜色,就像这样

term_id name
1       white and blue 
2       blue and red and green
3       white and green 
4       green

我可以在名称字段中搜索单词'white'的所有实例,并获得数组1和3

我现在想查找与条款1和3相关的帖子

我已经走了这么远,但认为我在某个地方制造了一个问题。因此,使用此SQL查询

SELECT * FROM wpix_posts WHERE ID IN ( SELECT object_id FROM 
wpix_term_relationships WHERE term_taxonomy_id IN (
SELECT term_id FROM wpix_terms WHERE name LIKE '$filterstring' ) 
)

首先获取术语,然后在关系中查找它们,然后获取帖子...但是我知道它不正确,因为我得到的结果与正确的产品无关

在数据库中,我可以在meta_key'_product_attributes'的序列化字符串中看到wp_postmeta中的数据,该字符串包含我想要的term_id(下面的示例,其中'colours'的值为3 | 6,因此我想要它与上面示例中数组中的“ 3”匹配)

  

a:20 {{s:4:“名称”; s:6:“ pa_pdf”; s:5:“值”; s:11:“ 1 | 4”; s:8:“位置”; i:16; s:10:“ is_visible”; b:0; s:12:“ is_variation”; b:0; s:11:“ is_taxonomy”; b:1;} s:8:“ pa_range”; a :6:{s:4:“名称”; s:8:“ pa_range”; s:5:“值”; s:11:“ 73758 | 73755”; s:8:“位置”; i:17; s:10:“ is_visible”; b:1; s:12:“ is_variation”; b:0; s:11:“ is_taxonomy”; b:1;} s:13:“ pa_appearance”; a:6:{ s:4:“名称”; s:13:“ pa_appearance”; s:5:“值”; s:11:“ 61076 | 61074”; s:8:“位置”; i:18; s:10: “ is_visible”; b:1; s:12:“ is_variation”; b:0; s:11:“ is_taxonomy”; b:1;} s:11:“ colours”; a:6:{s:4: “ name”; s:11:“ colours”; s:5:“ value”; s:11:“ 3 | 6”; s:8:“ position”; i:19; s:10:“ is_visible”; b:0; s:12:“ is_variation”; b:0; s:11:“ is_taxonomy”; b:1;}}

但是我不确定如何仅搜索那些条目并通过我拥有的数组将post_id返回

0 个答案:

没有答案