私のモジュールの 1 つで、クラス Mage_Sales_Model_Quote_Address_Total_Subtotal を書き直そうとしています。以前はモデルを書き直していましたが、問題ありません。抽象クラスは書き換えられないことを理解しています。しかし、これは、私は立ち往生しています...
私の目的は、保護された関数 _initItem($address, $item) を書き直すことです。私は失敗し、すべての関数を書き直そうとしました (parent:: を祖父母クラスに置き換えました)。もう運はありません。
ここに私の設定があります:
<!-- in app/code/local/Mynamespace/Mymodule/etc/config.xml -->
<?xml version="1.0"?>
<config>
<global>
<models>
<sales_quote>
<rewrite>
<address_total_subtotal>Mynamespace_Mymodule_Model_Sales_Quote_Address_Total_Subtotal</address_total_subtotal>
</rewrite>
</sales_quote>
</models>
</global>
</config>
そして私のクラス:
# in app/code/local/Mynamespace/Mymodule/Model/Sales/Quote/Address/Total/Subtotal.php
class Mynamespace_Mymodule_Model_Sales_Quote_Address_Total_Subtotal extends Mage_Sales_Model_Quote_Address_Total_Subtotal
{
protected function _initItem($address, $item)
{
Mage::log("rewrite");
}
}
誰でもそれで私を助けることができますか? これまでの抽象クラスと同じ問題のようです。