Подскажите как изменить разделители сотен и тысяч. В рассылке осуществляемой модулем Commerce Email
Товар Количество Цена (UAH)
Барвник харчовий "Червоний" 5г 113.00 0.75
RANSAR "GP1" особливий зелений чай в банці 400г 20.00 108.00
В общем: 2,244.75
Всего: 2,244.75
В самом модуле Drupal Commerce есть возможность настраивать разделители тысяч и целых чисел, там все настроил в файле commerce.currency.inc
вот кусок кода:
<?php
'UAH' => array(
'code' => 'UAH',
'symbol' => 'грн.',
'name' => t('Ukrainian Hryvnia'),
'numeric_code' => '980',
'thousands_separator' => ' ',
'decimal_separator' => ',',
'symbol_placement' => 'after',
'code_placement' => 'hidden',
'minor_unit' => t('Kopiyka'),
'major_unit' => t('Hryvnia'),
),
?>
А в модуле Сommerce Email нет такой функции, да и количество выводится дробным числом.
Подскажите что изменить в приведенном ниже коде, чтобы нормально выводились поля: количество и стоимость.
Вот кусок этого кода из файла commerce_email.module:
<?php
function commerce_email_prepare_table($wrapper) {
$currency_code = $wrapper->commerce_order_total->currency_code->value();
$amount = number_format(commerce_currency_amount_to_decimal($wrapper->commerce_order_total->amount->value(), $currency_code), 2);
$header = array(
array('data' => t('Product'), 'style' => array('text-align: left;')),
array('data' => t('Qty'), 'style' => array('text-align: left;')),
array('data' => t('Price ([user=currency_code]currency_code[/user])', array('[user=currency_code]currency_code[/user]' => $currency_code)), 'style' => array('text-align: left;'))
);
$rows = array();
foreach ($wrapper->commerce_line_items as $delta => $line_item_wrapper) {
switch ($line_item_wrapper->type->value()) {
case 'product':
// Special treatment for a product, since we want to get the title from
// from the product entity instead of the line item.
$title = htmlentities($line_item_wrapper->commerce_product->title->value(), ENT_QUOTES, "UTF-8");
$title .= commerce_email_order_item_attributes($line_item_wrapper->commerce_product->product_id->value());
$rows[] = array(
'data' => array(
array('data' => $title, 'style' => array('text-align: left;')),
array('data' => $line_item_wrapper->quantity->value(), 'style' => array('text-align: left;')),
array('data' => number_format(commerce_currency_amount_to_decimal($line_item_wrapper->commerce_unit_price->amount->value(), $currency_code), 2), 'style' => array('text-align: left;')),
)
);
break;
default:
// Use this for any other line item.
$rows[] = array(
'data' => array(
array('data' => htmlentities($line_item_wrapper->line_item_label->value(), ENT_QUOTES, "UTF-8"), 'style' => array('text-align: left;')),
array('data' => 1, 'style' => array('text-align: left;')),
array('data' => number_format(commerce_currency_amount_to_decimal($line_item_wrapper->commerce_unit_price->amount->value(), $currency_code), 2), 'style' => array('text-align: left;')),
)
);
break;
}
}
$data = $wrapper->commerce_order_total->data->value();
if (!empty($data['components'])) {
foreach ($data['components'] as $key => &$component) {
if ($data['components'][$key]['name'] == 'base_price') {
$rows[] = array(
'data' => array(
' ',
array('data' => t('Subtotal:'), 'style' => array('font-weight: bold; text-align: right;')),
array('data' => number_format(commerce_currency_amount_to_decimal($data['components'][$key]['price']['amount'], $currency_code), 2), 'style' => array('font-weight: bold; text-align: left;')),
)
);
}
elseif (preg_match('/^tax\|/', $data['components'][$key]['name'])) {
$rows[] = array(
'data' => array(
' ',
array('data' => $data['components'][$key]['price']['data']['tax_rate']['display_title'] . ':', 'style' => array('font-weight: bold; text-align: right;')),
array('data' => number_format(commerce_currency_amount_to_decimal($data['components'][$key]['price']['amount'], $currency_code), 2), 'style' => array('font-weight: bold; text-align: left;')),
)
);
}
}
}
$rows[] = array(
'data' => array(
' ',
array('data' => t('Total:'), 'style' => array('font-weight: bold; text-align: right;')),
array('data' => $amount, 'style' => array('font-weight: bold; text-align: left;')),
)
);
return array('header' => $header, 'rows' => $rows, 'attributes' => array('style' => array('width: 50%; border: 1px solid #ddd;')));
}
?>
Комментарии
Другого разработчика в наличии нет). Если не файл commerce_email.module отвечает за отображение числовых форматов в письмах отправленных с использованием Commerce Email? Тогда дайте подсказку где, это настраивать.
Это к тому что не файл commerce_email.module отвечает за отображение числовых форматов в письмах отправленых с использованием Commerce Email? ТОгда дайте подсказку где, это настраивать.
к сожалению ваш совет никуда меня не привел. На самом сайте все отображается нормально, Drupal Commerce тоже все настройки покрутил везде выставил разделители на копейки ',' на тысячи - пробел, количество-> целые числа. И везде при заказе в отчете о заказе на сайте все нормально, А Commerce Email лепит в почтовую рассылку цены типа 1,1242.00 а количество, например 15.00. Откуда это берется не могу понять. С Drupal работаю пару месяцев, магазин вообще первый, остальное в принципе готово вот с рассылкой проблемы. Подскажите может у кого идеи есть что там нужно настраивать, чтобы в рассылке все отражалось как настроено в магазине.
.
Спасибо.