php - 隐藏某些用户在 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+
任何帮助或评论都会受到好评。
提前致谢。
解决方案
您不应该直接更改此类内容 - 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();
推荐阅读
- sql - 在两组日期之间选择客户,而不仅仅是两个日期
- oracle-cloud-infrastructure - 无法从 java sdk 创建实例
- python-3.x - PyQt 无法将 tableWIdget 添加到现有应用程序
- c# - 调用 DLL 函数时遇到问题
- html - 背景剪辑与边界半径混淆
- python - Python 并行附加到代理列表返回“函数”对象不可迭代或“NoneType”对象不可迭代
- ios - reloadData() 快速中断集合视图单元格
- node.js - React Native 中的 Fetch 功能在发送 SMS 时不起作用
- excel - 在 Excel 工作表中提取 Instagram 链接用户名的公式
- c# - C#检测用户控件宽度