我的商店中有一个功能,允许我自动生成产品报价,在报价的属性、价格和运输规则之后,我即时创建一个新产品。
我不希望这些产品显示在我的目录或搜索中,因此我一直在尝试弄清楚如何将"目录可见性"更新为隐藏。
起初我在尝试:
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