Округление цен

Была проблема что выводятся цены с десятками и сотнями.
Обычное округление не помогло т.к цена 5 458 руб, превращалась в 5 руб.
Поэтому написал сниппет.
Сниппет (название сниппета «round») для округления цен следующий:
<?php
//Убираем пробелы после первой цифры чтобы округлить иначе из 5 458 руб, будет 5 руб.
$int_t = round(str_replace(' ', '', $input));

if(strlen($int_t) == 0) return;
//Округляем и возвращаем пробел перед первой цифрой.
$int_t = floatval(str_replace(array(' ',','), array('','.'), $int_t));
return number_format($int_t,(floor($int_t) == $int_t? 0: 2),'.',' ');
— ВОПРОС:
При заходе не страницу выводит все отлично, но при нажатии на фильтр в каталоге товаров, все цены уходят в нули,
сам вызов стоимости товара [[!+price:round]] руб.
Ильяс
24 января 2019, 21:33
modx.pro
1
1 657
0

Комментарии: 5

Василий Наумкин
25 января 2019, 05:17
+1
В настройках miniShop2 есть ms2_price_format, которая работает через number_format.


Никаких дополнительных сниппетов не нужно, просто укажи там [0, '.', ' '].
    Ильяс
    26 января 2019, 12:43
    0
    Большое спасибо, вопрос закрыт!
      Евгений Дубровин
      01 февраля 2023, 14:12
      0
      Доброго времени!
      А не подскажете почему такое может быть?
      Хотим избавиться от копеек.
      Если [2, ".", " "] то есть копейки.
      Если [0, ".", " "], то вроде норм, но в некторых случаях съедает последний ноль у цен и сумм в корзине, делая их неверными.
      И пока как избавиться от тех копеек (при добавлении процента за доставку выходят) прямо не знаю)
        Евгений Дубровин
        01 февраля 2023, 14:46
        0
        ноль съедается не сразу, сначала появляется, т.е. каким-то плагином видимо,
        но если копейки есть, то ничего не съедается, странно)
          Евгений Дубровин
          02 февраля 2023, 12:14
          0
          ну не плагином, настройкой Минишопа о нулях, но всё равно странно, хотя решился вопрос в итоге)
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      5