Я создаю плагин «Купи за ххх и получи подарок в подарок».
Все работает нормально, но когда я добавляю подарок в корзину, цена равна 0, но в промежуточном итоге я все еще вижу цену с включенной ценой «бесплатный продукт».
Т.е. у меня есть вещи на 200 долларов, и я имею право получить бесплатный подарок. Я забираю его, и подарок добавляется в корзину. Цена равна 0. Но в промежуточном итоге я все равно вижу цены на товары + бесплатный подарок.
Я устанавливаю цену в before_calculate_totals
хук так:
foreach ($cart as $key => $item) {
if (isset($item['_wfg_gift']) && $item['_wfg_gift'] == 1) {
$item['data']->set_price(0);
}
}
Я также пробовал ловушку calculate_totals
, но безуспешно. Я не могу использовать фильтр get_price
, так как пользователь может захотеть купить тот же продукт, который предлагается в качестве бесплатного подарка.
Как установить цену товара в корзине, чтобы она работала в корзине, промежуточном и общем итогах?