kmb*_*116 4 wordpress wordpress-theming woocommerce hook-woocommerce
如何获取变体父产品 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
正如 LoicTheAztec 在评论中建议的那样,你应该使用这个:
$parent_product = wc_get_product($product->get_parent_id());
Run Code Online (Sandbox Code Playgroud)
您应该通过检索父产品的原因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);
Run Code Online (Sandbox Code Playgroud)
这也可以工作,但它不会触发 WC 特定的钩子:
$parent_product_id = wp_get_post_parent_id($product->get_id());
$parent_product = wc_get_product($parent_product_id);
Run Code Online (Sandbox Code Playgroud)
注意:这在循环之外不起作用,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);
Run Code Online (Sandbox Code Playgroud)
$parent_product = $product->get_parent(); // will always return '0
Run Code Online (Sandbox Code Playgroud)