Woocommerce - 从类别中删除产品

时间:2015-11-14 15:57:35

标签: php wordpress categories product

我试图做以下事情,但我仍然坚持编码。 希望有人可以帮助我。

在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'中删除。类别,但它仍将属于其他类别。

示例:该产品属于Aanbiedingen' Comfort'' Therapie'和' Warmtezakken' 有人可以帮我提供一个代码,在那里(保存时)产品只会出现在“舒适”,“Therapie”和“#33; The;和' Warmtezakken' ?

我想它可以通过wp_get_object_terms获取类别,删除价值' Aanbiedingen' (或id 87)并使用wp_set_object_terms保存此已更改的数组?

我尝试了几件事,但我无法完成。 有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

您只需使用wp_remove_object_terms($post_id, $terms, $taxonomy)功能从对象中删除特定类别的术语ID(在本例中为产品自定义帖子类型)。

作为旁注,您还希望使用isset()来检查$_POST变量,而不是!empty() - 如果值为&n,您将使用后一种方法收到警告#39; t 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' );
}