Я пытаюсь напечатать GranTotal по электронной почте, когда клиент делает новый заказ, сейчас я использовал эти переменные в Системе → Транзакционные письма:
(А)
{{var Total}}
Но не показывает всего
(Б)
{{var order.getGrandTotal()}}
Но я получаю ответ с четырьмя десятичными знаками, такими как: 1900,0000 И мы не используем десятичные дроби, поэтому этот ответ сбивает с толку моих клиентов.
Я буду признателен за полный ответ о том, что я мог сделать … Спасибо!
Вам необходимо изменить параметры шаблона для форматирования до двух десятичных знаков.
например
Ищите свою кодовую базу для:
$mailer->setTemplateParams(
Когда вы находите транснациональную электронную почту, которую хотите изменить (в этом случае кажется, что вы хотите отредактировать новые электронные письма с заказами, скорее всего, в этом файле:
app\code\core\Mage\Sales\Model\Order.php
Скопируйте файл в:
app\code\local\Mage\Sales\Model\Order.php
Затем отредактируйте следующий код:
ОТ:
$mailer->setTemplateParams(array(
'order' => $this,
'billing' => $this->getBillingAddress(),
'payment_html' => $paymentBlockHtml
));
TO:
$mailer->setTemplateParams(array(
'formatted_total' => sprintf('%.2F', $this->getData( 'grand_total' ) ),
'order' => $this,
'billing' => $this->getBillingAddress(),
'payment_html' => $paymentBlockHtml
));
Чтобы получить разделитель тысяч, используйте:
'formatted_total' => number_format( $this->getData( 'grand_total' ), 2, '.', ',' ),
Затем отредактируйте шаблон электронной почты:
app/locale/en_US/template/email/sales/order_new.html
Вывести новую переменную там, где вы хотите, чтобы она появилась.
var formatted_total
Других решений пока нет …