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

Jpv*_*Jpv 2 php wordpress woocommerce

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

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

起初我正在尝试:

update_post_meta( $prod_ID, '_visibility', 'hidden' );
Run Code Online (Sandbox Code Playgroud)

添加了元数据,但是,通过查看它,我发现 WooCommerce 更改了指定产品是否可见或隐藏的方式:: 下面来自 WooCommerce

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

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

Rei*_*gel 6

它应该是这样的:

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

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