在 Magento 中扩展 Onepage Billing 块

Extend Onepage Billing block in Magento

我希望有人已经知道如何解决这个问题,因为我已经尝试了几天,遵循了无数教程,遗憾的是没有走多远。

我正在尝试覆盖自定义模块中的块文件:/app/code/core/Mage/Checkout/Block/Onepage/Billing.php(对于 Magento 1.7)

在我的模块 config.xml 文件中,我添加了以下内容:

<global>
    <blocks>
        <checkout>
            <rewrite>
                <onepage_billing>
                    Jrc_GiftListShipping_Block_Onepage_Billing
                </onepage_billing>
            </rewrite>
        </checkout>
    </blocks>
</global>

并在以下位置创建了一个文件:

/app/code/local/Jrc/GiftListShipping/Block/Onepage/Billing.php 其中包含以下简单代码:

<?php
Class Jrc_GiftListShipping_Block_Onepage_Billing extends Mage_Checkout_Block_Onepage_Billing
{
    protected function _construct()
    {
        parent::_construct();
    }
}

但是上面的代码产生了一个异常:

exception 'Mage_Core_Exception' with message 'Invalid block type: Jrc_GiftListShipping_Block_Onepage_Billing

我看不出上面的代码有什么问题,但我真的希望其他人能教我一些东西

<onepage_billing>Jrc_GiftListShipping_Block_Onepage_Billing</onepage_billing>

不要在 magento

中为 xml 使用重新格式化代码

声明您的模块块,以便自动加载器可以找到您的块类:

<blocks>
    <giftlistshipping>
        <class>Jrc_GiftListShipping_Block</class>
    </giftlistshipping>
    <checkout>
        <rewrite>
            <onepage_billing>
                Jrc_GiftListShipping_Block_Onepage_Billing
            </onepage_billing>
        </rewrite>
    </checkout>
</blocks>

我的问题是一样的,但 confix 文件已经像这里批准的答案一样。 10 小时后,我终于找到了解决方案,编译处于活动状态,导致 Magento 无法找到新文件。

System->Tool->compilation

停用此功能。

此外,如果适用,请检查缓存是否打开。这可能会导致类似的问题。