我声明我不是专家!我的函数根据价格的存在修改产品的可见性。它适用于简单的产品,但不适用于具有变量的产品。更准确地说,变量的可见性在变量产品中更改,而不是在父产品中更改。
我的问题是:如果存在变量,如何在父产品上设置可见性过滤器?这是我当前的代码:
if ($listinoWeb == "")
{
delete_post_meta($product_id, 'wwpp_product_wholesale_visibility_filter', 'all');
add_post_meta($product_id, 'wwpp_product_wholesale_visibility_filter', 'wholesale_customer', TRUE);
}
else
{
add_post_meta($product_id, 'wwpp_product_wholesale_visibility_filter', 'all', TRUE);
delete_post_meta($product_id, 'wwpp_product_wholesale_visibility_filter', 'wholesale_customer');
}
您可以在产品对象上调用
get_parent_id()
函数。如果您在简单/父产品上调用它,它将返回 0
。所以你可以做这样的事情:
$product_id = $product->get_parent_id() ? $product->get_parent_id() : $product->get_id();
这样您就可以确定
$product_id
变量始终包含父 ID。