更改总计的顺序

时间:2013-08-21 15:46:44

标签: magento magento-1.7

我遇到了一些麻烦,想知道如何更改交易电子邮件模板中的总计顺序(在Magento中)。

基本上我希望'Tax'排在最底部 - 低于'总计包含。税”。

我知道这是打印行的代码。但我似乎无法弄清楚如何改变行的顺序。

<?php foreach ($this->getTotals() as $_code => $_total): ?>
<?php if ($_total->getBlockName()): ?>
    <?php echo $this->getChildHtml($_total->getBlockName(), false); ?>
<?php else:?>
<tr class="<?php echo $_code?>">
    <td <?php echo $this->getLabelProperties()?>>
        <?php if ($_total->getStrong()):?>
        <?php echo $this->escapeHtml($_total->getLabel());?>
        <?php else:?>
        <?php echo $this->escapeHtml($_total->getLabel());?>
        <?php endif?>
    </td>
    <td <?php echo $this->getValueProperties()?>>
        <?php if ($_total->getStrong()):?>
        <?php echo $this->formatValue($_total) ?>
        <?php else:?>
        <?php echo $this->formatValue($_total) ?>
        <?php endif?>
    </td>
</tr>
<?php endif?>

有人可以帮忙解决这个问题吗?

谢谢,祝你有美好的一天!

1 个答案:

答案 0 :(得分:6)

方法1:修改主题模板文件。

app/design/frontend/base/sales/order/totals.phtml复制到您的主题文件并将其打开 将以下内容添加到其顶部。

if($tax = $this->getTotal('tax'))
{
    $this->removeTotal('tax');
    $this->addTotal($tax, 'grand_total');
}

此代码将从总计列表中删除税,然后将其重新添加到总计下方。您应该将totals.phtml文件移动到自定义主题文件夹中,以便升级不会覆盖它。

方法2:覆盖核心块文件。

您可以通过执行以下操作来覆盖核心Totals块来执行相同的修补程序:

  1. app/code/core/Mage/Sales/Block/Order/Totals.php复制到app/code/local/Mage/Sales/Block/Order/Totals.php

  2. 打开app/code/local/Mage/Sales/Block/Order/Totals.php并将getTotals()功能更改为以下内容:

    public function getTotals($area=null)
    {
            //Move tax below grand_total
            if($tax = $this->getTotal('tax'))
            {
            $this->removeTotal('tax');
            $this->addTotal($tax, 'grand_total');
            }       
    
            $totals = array();
            if ($area === null) {
            $totals = $this->_totals;
            } else {
            $area = (string)$area;
            foreach ($this->_totals as $total) {
                $totalArea = (string) $total->getArea();
                if ($totalArea == $area) {
                    $totals[] = $total;
                }
            }
        }       
        return $totals;
    }