我在覆盖Magento核心类时遇到了一些问题:Core / Rule / Model / Rule.php。 我认为我正在做的一切正确,但代码不起作用(没有任何改变)。
我的[namespace] /Rule/etc/config.xml:
<?xml version="1.0"?>
<config>
<modules>
<[namespace]_Rule>
<version>0.1.0</version>
</[namespace]_Rule>
</modules>
<global>
<models>
<rule>
<rewrite>
<rule>[namespace]_Rule_Model_Rule</rule>
</rewrite>
</rule>
</models>
</global>
</config>
我的[namespace] /Rule/Model/Rule.php:
class [namespace]_Rule_Model_Rule extends Mage_Rule_Model_Rule
{
protected function _beforeSave()
{
if ($this->getConditions()) {
$this->setConditionsSerialized(serialize($this->getConditions()->asArray()));
$this->unsConditions();
}
if ($this->getActions()) {
$this->setActionsSerialized(serialize($this->getActions()->asArray()));
$this->unsActions();
}
$this->_prepareWebsiteIds();
if (is_array($this->getCustomerGroupIds())) {
$this->setCustomerGroupIds(join(',', $this->getCustomerGroupIds()));
}
parent::_beforeSave();
}
我的app / etc / [namespace] _All.xml:
<?xml version="1.0"?>
<config>
<modules>
<[namespace]_Rule>
<active>true</active>
<codePool>local</codePool>
</[namespace]_Rule>
</modules>
</config>
我真的很感激一些帮助。
答案 0 :(得分:1)
我设法通过重写SalesRule(Mage / SalesRule / Model / Rule)而不是Rule来解决它。您只能在静态时覆盖规则模块(通过创建本地/ Mage / Rule / Model / Rule.php文件)。