Авто удалить категорию продукта Продажа из не продаваемых продуктов в Woocommerce - PullRequest
0 голосов
/ 30 сентября 2018

В woocommerce я использую код из этой ветки ответов , который присваивает категорию продукта "Продажа" продукту, который продается (то есть с активной продажной ценой) .

Я пытался удалить категорию товара "Продажа", когда товар больше не продается, но безуспешно.Можно ли автоматически удалять товары из категории "Продажа", когда они больше не продаются?

1 Ответ

0 голосов
/ 30 сентября 2018

Следующий код версии автоматически удаляет товары из категории «Продажа», когда они больше не продаются:

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 вашей активной дочерней темы (или активной темы)).Протестировано и работает.

Похожие: Добавление категории продуктов "Продажа" к продуктам, которые продаются в Woocommerce

...