Php 自动从Woocommerce中的非销售产品中删除销售产品类别

Php 自动从Woocommerce中的非销售产品中删除销售产品类别,php,wordpress,woocommerce,product,custom-taxonomy,Php,Wordpress,Woocommerce,Product,Custom Taxonomy,在woocommerce中,我使用的是将“销售”产品类别分配给正在销售的产品(因此具有活动销售价格) 当产品不再销售时,我尝试删除“销售”产品类别,但没有成功。当产品不再销售时,是否可以自动从“销售”类别中删除产品?以下版本代码将在产品不再销售时自动从“销售”类别中删除产品: add_action( 'save_post_product', 'update_product_set_sale_cat' ); function update_product_set_sale_cat( $post_i

在woocommerce中,我使用的是将“销售”产品类别分配给正在销售的产品(因此具有活动销售价格)


当产品不再销售时,我尝试删除“销售”产品类别,但没有成功。当产品不再销售时,是否可以自动从“销售”类别中删除产品?

以下版本代码将在产品不再销售时自动从“销售”类别中删除产品:

add_action( 'save_post_product', 'update_product_set_sale_cat' );
function update_product_set_sale_cat( $post_id ) {
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
        return $post_id;
    }
    if ( ! current_user_can( 'edit_product', $post_id ) ) {
        return $post_id;
    }
    if( get_post_status( $post_id ) == 'publish' && isset($_POST['_sale_price']) ) {
        $sale_price = $_POST['_sale_price'];

        if( $sale_price >= 0 && ! has_term( 'Sale', 'product_cat', $post_id ) ){
            wp_set_object_terms($post_id, 'sale', 'product_cat', true );
        } elseif ( $sale_price == '' && has_term( 'Sale', 'product_cat', $post_id ) ) {
            wp_remove_object_terms( $post_id, 'sale', 'product_cat' );
        }
    }
}
代码进入活动子主题(或活动主题)的function.php文件。测试和工作


相关:

一切皆有可能,这只是一个问题,需要多少痛苦和挫折才能做到。