创建变体不会将数据添加到wp_term_relationships



创建变体后,wp_term_relationships表不会使用变体id/object_id和属性term id/term_taxonomy_id进行更新因此,我无法对product_variation执行tax_query。

我的税务查询示例:

$query_args = array(
‘post_type’ => ‘product_variation’,
‘post_status’ => ‘publish’,
‘posts_per_page’ => $attributes[‘limit’],
‘tax_query’ => array(
array(
‘taxonomy’ => ‘pa_purchase-as’,
‘field’ => ‘slug’,
‘terms’ => array(‘mirror’),
),
)
);

注:然而,这些属性被完美地保存为变体,我可以通过get_attributes((获得它们。它必须将属性保存为wp_post_meta中的JSON。

现在,Wooccommerce不将变体属性存储在term_relationships表中,而是将属性值存储在元键"attribute_your_att_slug"中。

在我的情况下,该值存储为元密钥"attribute_pa_purchase-as"。

因此,如果你想获得基于属性的变化,你可以使用元查询而不是tax_query来获得结果,就像我在下面的例子中使用的那样:

$query_args = array(
‘post_type’ => ‘product_variation’,
‘post_status’ => ‘publish’,
‘posts_per_page’ => $attributes[‘limit’],
'meta_query' => array(
array(
'key' => 'attribute_'.trim($attributes['attribute']),
'value' => $terms,
'compare' => 'IN',
)
)
);

希望这能帮助到别人。:(

最新更新