获得产品可见性价值 - WooCommerce

Seb*_*b G 1 php wordpress product shortcode woocommerce

我需要通过产品的 id 检查产品的可见性状态。不仅仅是它是否可见,而是它是否被搜索、隐藏或可见。

我已经尝试过get_post_meta($id, '_visibility', true);,但是只有我的旧产品在数据库中具有该帖子元,所以我假设它不再使用。

这样做的总体原因是因为我试图用产品短代码显示产品,但没有选项可以在可见性内“显示全部”。例如,

echo do_shortcode('[products ids="' . $id . '" visibility="all"]');
Run Code Online (Sandbox Code Playgroud)

所以现在我必须检查产品的可见性并回显适当的短代码来显示它。除非我弄错了,并且有一种方法可以显示带有短代码的产品,无论它们的可见性如何......

Seb*_*b G 5

解决方案

哎呀,完全错过了这个:get_catalog_visibility();

我只需使用其 id 获取产品,然后使用上面的函数即可。

例子:

$product = get_product($id);
$product_visibility = $product->get_catalog_visibility();
Run Code Online (Sandbox Code Playgroud)


小智 5

在另一个答案中,get_product()自版本 3 起已弃用。wc_get_product()如果使用版本 >= 3.0.0,则应使用。