Как в 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);

}

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

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

Ваш ответ

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