将术语附加到WooCommerce产品现有产品类别术语

时间:2019-05-07 作者:Kamran Asgari

我有一个表单,让人们决定他们产品的子类别,表单通过用户帖子的方式提交

Im trying to add the parent category to it as well

现在我测试了几种添加$term 但每次它只是被替换而不是添加

add_action(\'transition_post_status\', \'new_product_add\', 10, 3);
function new_product_add($new_status, $old_status, $post) {
    if( 
        $old_status != \'publish\' 
        && $new_status == \'pending\' 
        && !empty($post->ID) 
        && in_array( $post->post_type, 
            array( \'product\') 
            )
        ) {
            $term = get_term_by(\'name\', \'parent_category\', \'product_cat\');
            wp_set_object_terms($post->ID, $term->term_id, \'product_cat\');
    }
}

1 个回复
最合适的回答,由SO网友:LoicTheAztec 整理而成

只需在中添加缺少的布尔参数wp_set_object_terms() 功能如下:

wp_set_object_terms($post->ID, $term->term_id, \'product_cat\', true);
这次学期将是appended 且未更换。

在添加该术语之前,应检查该术语在产品上是否不存在,如:

add_action( \'transition_post_status\', \'new_product_add\', 10, 3 );
function new_product_add( $new_status, $old_status, $post ) {
    if( 
        $old_status !== \'publish\' 
        && $new_status === \'pending\' 
        && ! empty($post->ID) 
        && $post->post_type === \'product\'
    ) {
        $taxonomy = \'product_cat\';
        $term_id  = get_term_by( \'name\', \'parent_category\', $taxonomy )->term_id;

        if( ! has_term( $term_id, $taxonomy ) ) {
            wp_set_object_terms( $post->ID, $term_id, $taxonomy );
        }
    }
}

相关推荐

Get_Terms()-意外的‘=>’(T_DOUBLE_ARROW)错误

我试图从数组中的所有分类法中获取术语。但这会引发这样的错误。。不知道为什么。这是错误的方法吗致命错误:语法错误,意外的“=>”(T\\u双箭头),应为“,”或“)”public function pggggo_list_of_terms(){ $terms = get_terms( \'taxonomy\' => array( \'vehicle_safely_features\',