Как убрать копейки в Drupal Commerce

Аватар пользователя surarus surarus 20 января 2013 в 18:18

При разработке Интернет магазина Oiwe.ru, понадобилось убрать копейки в цене товаров.

Для начала делаем хуук.

function dc_oiwe_commerce_currency_info_alter(&$currencies){
                $currencies['RUB']['format_callback'] = 'dc_oiwe_commerce_currency_format';
        }

А потом добавляем функцию, которая этот хуук обрабатывает.

function dc_oiwe_commerce_currency_format($amount, $currency, $object = NULL, $convert = TRUE) {
                $price = number_format(commerce_currency_round(abs($amount), $currency), 0, $currency['decimal_separator'], $currency['thousands_separator']);

                $replacements = array(
                        'code_before' => $currency['code_placement'] == 'before' ? $currency['code'] : '',
                        'symbol_before' => $currency['symbol_placement'] == 'before' ? $currency['symbol'] : '',
                        'price' => $price,
                        'symbol_after' => $currency['symbol_placement'] == 'after' ? $currency['symbol'] : '',
                        'code_after' => $currency['code_placement'] == 'after' ? $currency['code'] : '',
                        'negative' => $amount < 0 ? '-' : '',
                        'symbol_spacer' => $currency['symbol_spacer'],
                        'code_spacer' => $currency['code_spacer'],
                );
                return trim(t('code_beforenegativesymbol_beforeprice symbol_spacersymbol_aftercode_spacercode_after', $replacements));
        }

0 Thanks

Комментарии

Аватар пользователя surarus surarus 21 января 2013 в 10:55
"adubovskoy" wrote:

2топикстартер: есть более простое решение - http://drupal.org/project/commerce_extra_price_formatters .

Мой код делает тоже самое, только не дает возможности настройки, как в представленном модуле.
P.s. Посмотрел внутренности модуля. Там похожий код :) Знал бы раньше, не заворачивался бы, и не дергал Google.

Аватар пользователя qvazar qvazar 20 ноября 2013 в 22:19
"adubovskoy" wrote:

2топикстартер: есть более простое решение - http://drupal.org/project/commerce_extra_price_formatters .

Спасибо,хороший модуль, нули не отображаются, НО в корзине и в чекауте нули все равно есть. Как сделать товары в корзине без нулей?

Аватар пользователя VVS VVS 2 декабря 2013 в 14:47
"qvazar" wrote:

НО в корзине и в чекауте нули все равно есть. Как сделать товары в корзине без нулей?

А в самом view корзины и оформления заказа пробовали поменять формат отображаемой цены?

Аватар пользователя chedia chedia 16 мая 2014 в 3:31

Отличное решение копейки пропали, только при попытке редактирования товара выдаёт ошибку

Fatal error: Call to undefined function me_commerce_currency_format() in Z:\home\me3\www\sites\all\modules\commerce\commerce.module on line 639

Подскажите в чём может быть проблема?