我遇到了一个非常类似的问题。我在woocommerce代码中找不到任何可以让您直接从变体sku中查找父产品的内容。但是,由于产品变化存储在wp_posts
具有类型的表product_variation
, SKU存储在wp_post_meta
表中,通过使用get_posts()
wordpress功能。
$args = array(
\'post_type\' => \'product_variation\',
\'meta_query\' => array(
array(
\'key\' => \'_sku\',
\'value\' => \'PRODUCT_SKU\',
)
)
);
$posts = get_posts( $args);
这将返回匹配的
product_variation
自定义帖子类型。
一旦有了它,就可以使用列查找父产品post_parent
WooCommerce用于将变体链接到父变量产品。
将其转化为函数非常简单:
function wc_get_product_id_by_variation_sku($sku) {
$args = array(
\'post_type\' => \'product_variation\',
\'meta_query\' => array(
array(
\'key\' => \'_sku\',
\'value\' => $sku,
)
)
);
// Get the posts for the sku
$posts = get_posts( $args);
if ($posts) {
return $posts[0]->post_parent;
} else {
return false;
}
}
我在我的网站上使用它,效果很好。希望这有帮助。