Скидка за количество для 2-го товара в зависимости от категории товара в Woocommerce - PullRequest
0 голосов
/ 20 января 2019

на основе " Количество скидка на 2-й товар только в Woocommerce " код ответа на один из моих предыдущих вопросов, я хотел бы помочь, как добавить оператор if для has_term() и таким образом, сделать этот код применимым только для одной или нескольких категорий.

Любой трек будет оценен.

1 Ответ

0 голосов
/ 20 января 2019

Следующее будет расширять ваш код для определенных категорий продуктов, используя условную функцию WordPress has_tem():

add_action( 'woocommerce_cart_calculate_fees', 'second_item_discount', 10, 1 );
function second_item_discount( $cart ) {

    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    $percentage = 20; // 20%
    $categories = array('cat1', 'cat2'); // Defined product categories term slugs
    $discount   = 0;

    // Loop through cart items
    foreach ( $cart->get_cart() as $cart_item ) {
        // When quantity is more than 1 and for defined product categories
        if( $cart_item['quantity'] > 1 && has_term( $categories, 'product_cat', $cart_item['product_id'] ) ){
            // 20% of the product price as a discount
            $discount += wc_get_price_excluding_tax( $cart_item['data'] ) * $percentage / 100;
        }
    }
    if( $discount > 0 )
        $cart->add_fee( __( '2nd item discount', 'woocommerce' ) , -$discount );
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы).Проверено и работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...