• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Решено Убрать копейки при подсчёте итого в корзине

Ed777

Опытный
В настройках копейки отключены! В карточке товара показана цена без копеек, но в самой корзире при подсчёте итого, считает копейки стоимости товара. Например в карточке товара цена 79, в корзине за 10 шт - 792, за 1000 шт - 7924.
Сам товар стоит 79,24, но копейки скрыты. Вариант изменять в ручную в каждом товаре на 79 не подходит!
В чем может быть проблема?
 

Ed777

Опытный
Он вам правильно считает. Скрыты - это не значит, что их нет. Пишите функцию обнулить копейки.

Вот эта не работает(. Делает стоимость товаров НОЛЬ. Должно округлять до целого. Не понимаю что не так.

add_filter( 'woocommerce_get_price_including_tax', 'round_price_product', 10, 1 );
add_filter('wc_cart_totals_subtotal_html', 'round_price_product', 10, 1 );
add_filter( 'woocommerce_get_price', 'round_price_product', 10, 1);
function round_price_product($price){
$price=round($price, 0, PHP_ROUND_HALF_DOWN);
while($price%1!=0) $price+=1;
return $price;
}
 

Ed777

Опытный
Проблема была из за плагина All Import, он передавал цены с копейками. В моем случай прайс был в долларах и в самом плагине я не совсем корректно настроил перевод в мою валюту. В настройках All Import необходимо скрывать копейки, т.к. плагин их передfет и Корзина их видит, даже если у вас скрыты копейки в настройках Woo.
В настройках All Import где вы указываете стоимость и если Вам ее необходимо увеличить, можно сделать вот так:
Пример:
[round_price({Cell[9]/Data[1]},"5","1")]
где 5 - умножит Cell[9]/Data на 5.
а 1 округлит и уберет лишнее в стоимость до целого числа.

В документах плагина очень много фишек которые можно использовать, вплоть как убрать лишнее в ячейке с ценой или названием товара.
 

dim70

Опытный
Вы хотите получить 79,24 х 1000 = 7900 ?
подскажите как сделать округление в меньшую сторону, то есть чтобы как Вы написали было
79,24 х 1000 = 7900
У меня минимальное кол-во начинается от 10, несколько товаров по цене 1000 (на самом деле 1000,1) и визуально разрыв мозга конечно же для покупателей:
Один товар стоит 1000 а вот 10 товаров стоить почему-то 10001 (уже на пятом товаре получается 1000,1+1000,1+1000,1+1000,1+1000,1=5000,5 а в итого отображается соответственно = 5001)
и да товар у меня вариативный и указанный ниже код не работает:
PHP:
add_filter( 'woocommerce_get_price_including_tax', 'round_price_product', 10, 1 );

add_filter('wc_cart_totals_subtotal_html', 'round_price_product', 10, 1 );

add_filter( 'woocommerce_get_price', 'round_price_product', 10, 1);

function round_price_product($price){

$price=round($price, 0, PHP_ROUND_HALF_DOWN);

while($price%1!=0) $price+=1;

return $price;

}
 
Сверху Снизу