在magento checkout上显示装运块

时间:2015-06-26 19:14:04

标签: php magento zend-framework

无论是否估算价格,我都想显示发货区。我已经追溯了这些方法(见下文),但无法弄清楚如何定义要加载的装运块。我有一些逻辑在视图中。

总计模板 frontend / site / default / template / checkout / cart / totals.phtml

送货模板 frontend / site / default / template / tax / checkout / shipping.phtml

通过renderTotals()方法从总计块渲染出货块。它继续检查每个可能的总数的过程以确定是否设置。

总计阻止

<?php echo $this->rendeTotals(); ?>

该方法使用以下方法引用Mage_Checkout_Block_Cart_Totals类。

总计控制器(totals.php)

 protected function _getTotalRenderer($code)
    {
        $blockName = $code.'_total_renderer';
        $block = $this->getLayout()->getBlock($blockName);
        if (!$block) {
            $block = $this->_defaultRenderer;
            $config = Mage::getConfig()->getNode("global/sales/quote/totals/{$code}/renderer");
            if ($config) {
                $block = (string) $config;
            }

            $block = $this->getLayout()->createBlock($block, $blockName);
        }
        /**
         * Transfer totals to renderer
         */
        $block->setTotals($this->getTotals());
        return $block;
    }

    public function renderTotal($total, $area = null, $colspan = 1)
    {
        $code = $total->getCode();
        if ($total->getAs()) {
            $code = $total->getAs();
        }
        return $this->_getTotalRenderer($code)
            ->setTotal($total)
            ->setColspan($colspan)
            ->setRenderingArea(is_null($area) ? -1 : $area)
            ->toHtml();
    }

跟踪堆栈很容易看出_getTotalRenderer是检查块是否要加载的实际方法。正是在这种方法中,我在加载装运块时遇到了麻烦。

感谢任何帮助。我在magento里面没有发展历史。

0 个答案:

没有答案