3

我在弄清楚如何更改交易电子邮件模板(在 Magento 中)中的总计顺序时遇到了一些麻烦。

基本上,我希望“税”行位于最底部 - 在“总计包括”下方。税'。

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

<?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?>

任何人都可以帮助解决这个问题吗?

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

4

1 回答 1

6

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

复制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.phpapp/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;
    }
    
于 2013-08-21T16:32:04.857 回答