通过 PHP 在 WooCommerce 3+ 上更改产品可见性



我的商店中有一个功能,允许我自动生成产品报价,在报价的属性、价格和运输规则之后,我即时创建一个新产品。

我不希望这些产品显示在我的目录或搜索中,因此我一直在尝试弄清楚如何将"目录可见性"更新为隐藏。

起初我在尝试:

update_post_meta( $prod_ID, '_visibility', 'hidden' );

添加了元,但是,查看它,我发现WooCommerce改变了它指定产品是可见还是隐藏的方式::以下来自WooCommerce

产品可见性是基于分类法而不是

基于元的 3.0.0引入了新的产品可见性分类法;目录、搜索、隐藏、精选、缺货是术语。这些设置为在前端查询期间升级并帮助筛选目录中的产品。

我的问题是;我如何通过PHP修改分类法。

它应该是这样的:

$terms = array( 'exclude-from-search', 'exclude-from-catalog' ); // for hidden..
wp_set_post_terms( $prod_ID, $terms, 'product_visibility', false );

你可以在这里得到这个想法... woocommerce/include/data-stores/class-wc-product-data-store-cpt.php#L671

最新更新