Как в woocommerce изменить цену в зависимости от количества продуктов?

Решено

Скажите как мне сделать так что бы при количестве продуктов более 5 в checkout менялась цена. Мне нужно делать скидку пользователям если они покупают более 5 продуктов за одни раз. Для меня не важно отображение данной информации на сайте и оповещения. Мне главное что бы выполнялось условие. И при покупки в checkout была цена со скидкой.

Добавить Комментарий
    Ответ

    Следующий пример кода сделает скидку 10% если колличество товара будет более 5 единиц.

     add_action( 'woocommerce_before_calculate_totals', 'ha_add_custom_price' );
    function ha_add_custom_price( $cart_object ) {
     foreach ( $cart_object->cart_contents as $key => $value ) {
     if($value['quantity'] > 5){
     $discount = $value['data']->price * 0.10;
     $value['data']->price = $value['data']->price - $discount;
     }
     }
     }
     

    Код нужно добавить в functions.php

    Добавить Комментарий

    Добрый день!

    Скажите, а как доработать код, чтобы скидка в 10% применялась только к тем продуктам, которые без скидки?

    применяю вот этот код, который тоже работает.

    add_action('woocommerce_cart_calculate_fees' , 'add_custom_fees');
    /**
    
    * Add custom fee if more than three article
    
    * @param WC_Cart $cart
    
    */
    
    function add_custom_fees( WC_Cart $cart ){
    
    if( $cart->cart_contents_count < 5 ){
    
    return;
    
    }
    // Calculate the amount to reduce
    
    $discount = $cart->subtotal * 0.1;
    
    $cart->add_fee( 'Скидка за количество товара (от 5) в корзине 10%', -$discount);
    
    }
    
    

    Заранее благодарю!

    Добавить Комментарий

    Ваш ответ

    Размещая свой ответ, вы соглашаетесь с правилами сайта.