Я использовал woocommerce_after_calculate_totals, чтобы добавить действительные подарочные продукты в корзину, и woocommerce_before_calculate_totals, чтобы установить цену действительных товаров до 0 в корзине. Точно так же я использовал woocommerce_cart_item_price, чтобы установить цену действительных подарочных товаров в корзине на 0. Проблема, с которой я столкнулся, заключается в том, что она отлично работает на странице корзины/оформления заказа, но в мини-корзине цена подарочного продукта также добавляется к промежуточной сумме с другим продуктом. Промежуточная сумма в мини-корзине не должна добавлять действительную цену подарочного продукта.
Вот код, который я использую, чтобы установить цену массива действительных продуктов на 0 в мини-корзине:< /p>
Код: Выделить всё
add_filter('woocommerce_cart_item_price', 'filter_cart_item_price', 10, 3);
function filter_cart_item_price($price, $cart_item, $cart_item_key)
{
$valid_gift_products = WC()->session->get('valid_gift_products', []);
if (in_array($cart_item['product_id'], $valid_gift_products)) {
$price = wc_price(0);
}
return $price;
}
Как вы можете видеть на изображении, промежуточная сумма в мини-корзине должна составлять 1200, но отображается 1235. В этом случае цена последнего продукта в корзине равна 35, что, как я предполагаю, добавляется к цене.
Я не хочу, чтобы цена подарочных товаров добавлялась в промежуточную сумму мини-корзины.
Пожалуйста, помогите !!
Подробнее здесь: https://stackoverflow.com/questions/787 ... t-subtotal