在WooCommerce中 *(latest version)* I have one
变量 product with
Id:9` .
通过下面的变体属性,我创建了多个产品变体 .
然后,我想从父产品ID( Id: 9
)和以下属性值获取特定的产品变体:
<attribute_for_variation>: <attribute_value_to_filter>
pa_size: size_8x10
pa_material: mat_luster_photo_paper
pa_frame: fra_silver_wood
pa_mat_usage: musa_yes
您可以在下面看到该变体的屏幕截图:
我尝试了以下代码及其相应的结果 . 为简单起见,现在只尝试使用 pa_frame
属性 .
Try 1:
static function filterVariations() {
$query = [
'post_parent' => 9,
'post_status' => 'publish',
'post_type' => ['product_variation'],
'posts_per_page' => -1,
];
$result = [];
$wc_query = new \WP_Query($query);
while ($wc_query->have_posts()) {
$wc_query->next_post();
$result[] = $wc_query->post;
}
return $result;
}
// ---> RESULT: all the variations, that's OK
Try 2:
static function filterVariations() {
$query = [
'post_parent' => 9,
'post_status' => 'publish',
'post_type' => ['product_variation'],
'posts_per_page' => -1,
'tax_query' => [
'relation' => 'AND',
[
'taxonomy' => 'pa_frame',
'field' => 'slug',
'terms' => [ 'fra_silver_wood' ],
],
],
];
$result = [];
$wc_query = new \WP_Query($query);
while ($wc_query->have_posts()) {
$wc_query->next_post();
$result[] = $wc_query->post;
}
return $result;
}
// ---> RESULT: empty list
有关如何使用特定属性值返回所有变体的任何想法?
1 回答
变量产品中的产品属性 are set as meta data 在wp_postmeta数据库表中 . 然后 you will need to use a Meta query 而不是税查询 . 试试这个:
这应该按预期工作......
对于您的问题中列出的多个产品属性对(键/值),您只需在_481213中使用它们:
然后你会得到相应的产品变化(只有一个)......
文件:WP_Query and Custom Field Parameters (meta query)