Woocommerce - 从类别中删除产品
我正在尝试做以下事情,但我被困在编码方面。 希望有人能帮助我。Woocommerce - 从类别中删除产品
在Woocommerce(在产品编辑页面)我可以选择产品的类别。 我做了一个代码,当产品存在特定条件时,产品将被保存在额外的类别'Aanbiedingen'(id = 87)中。
if (!empty ($_POST['sale_enddate']) && ($_POST['sale_begindate'])) {
$cat_ids = array(87);
wp_set_object_terms($product_id, $cat_ids, 'product_cat', true);
}
现在我想有地方(在保存)产品将从“半价”类别中删除代码,但它仍然会在其他类别。产品属于'Aanbiedingen','Comfort','Therapie'和'Warmtezakken' 有人可以用代码帮助我(保存时)产品只能在'舒适',' Therapie'和'Warmtezakken'?
我想它有一些与wp_get_object_terms
类别取消,删除值'Aanbiedingen'(或ID 87),并保存这个改变的阵列与wp_set_object_terms
?
我尝试了几件事,但我无法完成它。 有人可以帮我吗?
您只需使用wp_remove_object_terms($post_id, $terms, $taxonomy)
函数从对象中删除特定的类别术语ID(在本例中为产品自定义帖子类型)。
作为一个侧面说明,你也想用isset()
检查,而不是!empty()
为$_POST
变量, - 你会用后一种方法得到一个警告,如果该值不在POST
“d值
// category ID array used for both adding & removing
$cat_ids = array(87);
if (isset($_POST['sale_enddate']) && $_POST['sale_begindate']) {
// conditions met for adding product to category
wp_set_object_terms($product_id, $cat_ids, 'product_cat', true);
} else {
// otherwise remove it
wp_remove_object_terms($product_id, $cat_ids, 'product_cat');
}
非常感谢!这确实是我正在寻找的代码! 我不知道wp_remove_object_terms()的存在.... – user3406217
当你说你已经“尝试了几件事情”,它通常可以帮助我们,如果你在你的问题中发布它们。 – helgatheviking