如何获得变体父产品ID。
我有ID 35的产品,这个产品有两种颜色--红色(ID 351),黑色(ID 352)。
我的代码:$product = wc_get_product(get_the_ID()); //get_the_ID() is ID 351 and I need this parent ID 35
发布于 2021-03-13 16:30:37
正确的方式
正如LoicTheAztec在注释中所建议的那样,您应该使用以下方法:
$parent_product = wc_get_product($product->get_parent_id());您应该通过get_parent_id()检索父产品的原因是,它将触发钩子woocommerce_product_variation_get_parent_id,其他插件/主题很容易修改它:
add_filter('woocommerce_product_variation_get_parent_id', function($value, $wc_data) {
// ...
return $value;
}, 10, 2);这也能工作,但它不会触发特定于WC的钩子:
$parent_product_id = wp_get_post_parent_id($product->get_id());
$parent_product = wc_get_product($parent_product_id);旧答案
注意:这在循环之外不起作用,如果您试图用0替换get_the_ID(),则始终会返回$product->id --在这种情况下,使用$product->get_id(),如上面的示例所示。
使用wp_get_post_parent_id,因为变体有它们的父版本作为产品本身。
示例:
$variation_id = get_the_ID();
$product_id = wp_get_post_parent_id($variation_id);永远不要使用家长()
$parent_product = $product->get_parent(); // will always return '0https://stackoverflow.com/questions/66615867
复制相似问题