Woocommerce 在带有变量的产品中插入post meta

Woocommerce 在带有变量的产品中插入post meta,woocommerce,filter,visibility,meta,parentid,Woocommerce,Filter,Visibility,Meta,Parentid,我声明我不是专家!我的功能根据价格的存在修改产品的可见性。它适用于简单的产品,但不适用于具有变量的产品。更准确地说,变量的可见性在变量产品中更改,而不是在父产品中更改 我的问题是:如果存在变量,如何在父产品上设置可见性过滤器?这是我当前的代码: if ($listinoWeb == "") { delete_post_meta($product_id, 'wwpp_product_wholesale_visibility_filter', 'all');

我声明我不是专家!我的功能根据价格的存在修改产品的可见性。它适用于简单的产品,但不适用于具有变量的产品。更准确地说,变量的可见性在变量产品中更改,而不是在父产品中更改

我的问题是:如果存在变量,如何在父产品上设置可见性过滤器?这是我当前的代码:

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\u parent\u id()
函数。如果在简单/父产品上调用它,它将返回
0
。所以你可以这样做:

$product_id = $product->get_parent_id() ? $product->get_parent_id() : $product->get_id();

通过这种方式,您可以确保
$product\u id
变量始终包含父id。

如果此答案适用于您,请将其标记为已接受。