Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Pihaluch

Новачок
  
  • Публікації

    5
  • З нами

  • Відвідування

Відвідувачі профілю

Блок відвідувачів профілю відключений і не буде доступний широкому іншим користувачам

Pihaluch's Achievements

Newbie

Newbie (1/14)

  • First Post
  • Week One Done
  • One Month Later
  • One Year In
  • Conversation Starter

Recent Badges

0

Репутація

  1. Спасибо большое, получилось. Сделал вот так if($this->session->data['currency'] == 'BYN') { $string .= number_format((ceil($value / 0.5) * 0.5), (int)$decimal_place, $decimal_point, $thousand_point); } else { $string .= number_format(round($value, (int)$decimal_place), (int)$decimal_place, $decimal_point, $thousand_point); } Но теперь почему-то валюту 'USD' в корзине и карточке товара всё равно округляет. То есть в категориях, в поиске, всё в порядке, а в карточке и в корзине та же позиция уже идет с округленной ценой. И это только с 'USD' с 'EUR' такого нету. Почему так происходит? Я так понимаю currency.php это конечный файл, после него с ценой ничего не происходит. Получается в этом файле нужно искать решение?
  2. Округление делал в файлах контроллера. Видимо поэтому и не получались правильные значения. Так как вы и сказали. Но вчера я нашел куда копать и у меня получилось сделать округление так как надо. Заходим в файл \system\library\currency.php и в функции public function format() находим вот такую строчку: $string .= number_format(round($value, (int)$decimal_place), (int)$decimal_place, $decimal_point, $thousand_point); и меняем на такую: $string .= number_format((ceil($value / 0.5) * 0.5), (int)$decimal_place, $decimal_point, $thousand_point); В итоге всё округляется верно. Есть только один момент, как прописать условие при котором если выбрана одна валюта округление работает, а в иных случаях не работает? Я пробовал делать вот так: if ($this->config->get('config_currency_id') == 4) { $string .= number_format((ceil($value / 0.5) * 0.5), (int)$decimal_place, $decimal_point, $thousand_point); } else { $string .= number_format(round($value, (int)$decimal_place), (int)$decimal_place, $decimal_point, $thousand_point); } Ничего не происходит, я так подозреваю что ошибка вот в этой строке ($this->config->get('config_currency_id') == 4) Подскажите пожалуйста как правильно это сделать?
  3. round не округляет так как мне нужно, притом всё равно конечный результат не верный.
  4. По коду дальше с $price ничего подозрительного не происходит, но мне удалось установить от чего, как мне кажется, зависти такой вид цены. Если поставить валюту $ то всё работает корректно. В настройках валюты в админке у нее стоит курс 1.0000000, а у рублей курс 2.01999998 (белорусские рубли). Получается при округлении учитывается еще и курс?
  5. Добрый день. На сайте нужно было сделать скидки для групп покупателей. На форумах нашел такое решение: if ($this->config->get('config_customer_group_id') == 10) { $price = $price - ($price / 100) * 10; } Следующим шагом пытаюсь реализовать округление цены до 50 копеек в большую сторону. То есть если цена 12.05 должно получиться 12.50, если цена 12.51 округляем до 13.00 Для этого я использую функцию php ceil(), но почему-то цены не приходят к нужному виду. Например была цена 11.82 ( уже со скидкой), записываю округление следующим образом: if ($this->config->get('config_customer_group_id') == 10) { $price = $price - ($price / 100) * 10; $price = ceil($price / 0.5) * 0.5; } По логике цена должна округлиться до 12.00, а она округляется до 12.12 И такое происходит со всеми ценами, после округления получается 13.13, 14.14, 6.06, 9.09. Подскажите в каком направлении копать? Возможно неверно использую функцию ceil()? Заранее спасибо за ответ.

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.