隐藏某些用户在Woocommerce上发布的产品

时间:2018-09-13 04:12:30

标签: php wordpress woocommerce

我试图根据发布产品的用户ID在Woocommerce中隐藏产品。

我创建了以下代码,但是效果不佳。

function Products_for_vendor() {
$args     = array( 'post_type' => 'product', 'post_author' => '2' );
$products = get_posts( $args );

    foreach ($products as $product->ID) {

        $post_id = $product->ID

        $terms = array( 'exclude-from-catalog', 'exclude-from-search' );
        wp_set_object_terms( $post_id, $terms, 'product_visibility', false );

    }

}

add_action( 'init', 'Products_for_vendor' );

隐藏该帖子,我提取了此查询中提到的代码:Change product visibility via PHP on Woocommerce 3+

任何帮助或评论都受到好评。

谢谢。

1 个答案:

答案 0 :(得分:0)

您不应该直接更改此类内容-WooCommerce具有特殊功能,可确保将来与任何数据库结构更改兼容,并确保产品数据在其内部缓存中正确同步。

相反,在您的foreach循环中,使用以下代码:

// Get an instance of the product
$theproduct = wc_get_product($product->ID);
// Change the product visibility (options are: 'hidden', 'visible', 'search' and 'catalog'.
$theproduct->set_catalog_visibility('hidden');
// Finally, save and sync the product changes
$theproduct->save();