Уважаемые знатоки! Помогите, пожалуйста, с представлением цены. Цена выводится с копейками в конце, в виде 1 500,00 руб., а хотелось бы избавиться от нулей и запятой, чтобы было так: 1 500 руб. В настройках модуля такой возможности не нашел. Надеюсь на вашу помощь.
Комментарии
в своем модуле:
/**
* Implements hook_commerce_currency_info_alter().
*
*/
function имя_модуля_commerce_currency_info_alter(&$currencies, $langcode) {
$currencies['RUB']['decimals'] = 0;
}
ACHTUNG!
Все имеющиеся товары подорожают в 100 раз.
Спасибо за ваше решение, но я нашел более гуманное. Ставим модуль Commerce Extra Price Formatters и в настройках отображения типов товаров в настройке цены указываем Price with no decimal places
Только почему-то этот модуль не хочет дружить с Views. Если указать эту настройку цены в каком-то Views, страница с этим Views вообще не грузится
этот модуль не хочет дружить не только со views, но и с Commerce Price Savings Formatter, например
поэтому я его и не предлагал
Присоединяюсь к вопросу. Купил тему под commerce на буржуйском сайте (с commerce был до этого не знаком), а тут такой облом. Смешно цена смотрится с копейками. Пробовал это решение http://drupal.org/node/1061330. Но ничего не вышло. Выводит с копейками.
Вот тут нашел по ходу описание что и как он с ценой делает, но так как в php я нуль, то что я «понял», это то (вроде как), что он хранит цену как целое число в базе данных, а при выводе умножает на 100 и отделяет 2 последних знака, почему он игнорирует если изменить в commerce.currency.inc в российских рублях - «'decimal' => 0,» я не допер, и «'minor_unit' => t('Kopek'),» убирал как советуют в первой ссылке которую я привел. Один фиг выводил копейки. Пошел пока другим путем, товаров меньше 100 рублей у меня не предвидится, поэтому в commerce.currency.inc в строках отвечающих за настройку рубля, вместо «'decimal_separator' => ',',» вставил «'decimal_separator' => '',» , короче убрал вообще разделитель десятичный, и если нужно выставить цену 870 рублей, пишу в цене 8,7, commerce умножает это число на сто и в итоге я получаю на странице 870 рублей. Но правда я не пользуюсь платежными шлюзами напрямую, у меня все после созвона или по e-mail, а оплата потом напрямую, какое число он выдаст платежным шлюзам я не знаю.
P.S. а хотя что я туплю про цену ниже 100 рублей, надо 87 выставил - 0,87 , надо 8 рублей выставил 0,08
Commerce Extra Price Formatters уже вполне рабочий модуль. Поставил себе, с Views подружился, проблем нет. Юзайте, господа.
Как его настроить?
Хочу сделать фишку со скидками, показывать РРЦ и свою цену. Мануала с модулем нет
подскажите как применить Commerce Extra Price Formatters к total ? общая сумма ?
.
.
На странице модуля есть видеоинструкция. Ценой управляют рулсы.
Господа, воспользовался Commerce Extra Price Formatters, ну все и вся пересмотрел. Выставил в отображении продукта Price with no decimal places, нули после запятой исчезли. Но там нет способа как убрать десятичные нули в КОРЗИНЕ!
Подскажите как же убрать нули в корзине?
Тоже сталкивался с этим, забил.
ну в самой корзине во всюхе можно формат поставить без нулей, но общая цена с нулями остается.
Короче отключил из-за того что доставка и total price остаются с нулями
воспользовался изначально предложенным вариантом
<?php
/**
* Implements hook_commerce_currency_info_alter().
*
*/
function имя_модуля_commerce_currency_info_alter(&$currencies, $langcode) {
$currencies['RUB']['decimals'] = 0;?>
Andruxa, спасибо!
Если у вас уже были добавлены товары и они подорожали в 100 раз после применения хука имя_модуля_commerce_currency_info_alter
то используйте следующий код в vbo применительно ко всем товарам на сайте:
<?php
$entity->commerce_price['und'][0]['amount'] = $entity->commerce_price['und'][0]['amount'] / 100;
commerce_product_save($entity);
?>
После этого цена вновь станет нормальной.
Нашел аналог и замену http://drupal.org/project/commerce_extra_price_formatters]Commerce Extra Price Formatters">Commerce">http://drupal.org/project/commerce_extra_price_formatters]Commerce Extra Price Formatters вот этот модуль https://drupal.org/project/commerce_currency_settings]Commerce Currency Settings">Commerce">https://drupal.org/project/commerce_currency_settings]Commerce Currency Settings + ко всему можно настроить символ валюты, где ставить символ, отступы, какие разделители ставить и вообще все что касается валюты, все настраиваться (примерно те же настройки что есть в Ubercart`е из коробки.) Вот правда копейки он не позволяет ставить 0, минимум 1. (((
Так что все можно реализовать с помощью хука. А если вам копейки не мешают то можно смело использовать модуль.
Если кому нужно поменять символ валюты или убрать пробел между тысячами, вот код
<?php
function имя_модуля_commerce_currency_info_alter(&$currencies, $langcode) {
$currencies['RUB']['symbol'] = 'Р'; /** Символ валюты*/
$currencies['RUB']['symbol_spacer'] = ''; /** Отступ от символа*/
$currencies['RUB']['thousands_separator'] = ''; /** Отступ тысячи*/
$currencies['RUB']['decimals'] = 0; /** Не отображать копейки*/
}
?>
Ребята! Нашла вот такое решение http://webcoder.kz/drupal-commerce-ubrat-zapyatuyu-s-nulyami-v-cene.
Спасибо, Andruxa!
Для совсем новичков хотел бы уточнить: код, убирающий копейки, добавляется в файл template.php темы следующим образом
<?php
/**
* Implements hook_commerce_currency_info_alter().
*
*/
function имя_темы_commerce_currency_info_alter(&$currencies, $langcode) {
$currencies['RUB']['decimals'] = 0;
?>
А потом устанавливаешь модуль payment и копейки возвращаются обратно вместе с уменьшением цены в сто раз. И уже не реагируют на эту конструкцию