嗨,我想写一个钩子。我创建了一个名为 BEST SELLER 的类别和一个名为 BESTSELLER(YES/NO) 的属性(默认为 NO)(一般情况下)。当我将 BEST SELLER 类别分配给任何产品时,我想写一个钩子,它必须将属性 BESTSELLER 更改为 YES,当我们从 BEST SELLER 类别中删除产品时,它必须将 BESTSELLER 属性值更改为 NO。但我发现在 magento v-1.7.0.2 中不存在像 catalog_product_save_before 和 catalog_product_save_after 这样的事件。任何帮助请快速回复。
问问题
2649 次
1 回答
12
简答
catalog_product_save_before
并且catalog_product_save_after
可用并且您不会直接找到它。
长答案
如果您尝试在核心文件中进行搜索,那么您将找不到它。因为 Magento 对所有模型save_before
和save_after
. 查看文件Mage_Core_Model_Abstract
,您会发现以下行:
Mage::dispatchEvent($this->_eventPrefix.'_save_before', $this->_getEventData());
Mage::dispatchEvent($this->_eventPrefix.'_save_after', $this->_getEventData());
现在查看Mage_Catalog_Model_Product
文件。您将找到带有值的受保护方法 eventPrefixcatalog_product
protected $_eventPrefix = 'catalog_product';
因此,对于$this->_eventPrefix
Catalog Product 将在 Model 的 dispatch 事件中。catalog_product_save_before
catalog_product_save_after
这适用于所有正在扩展的模型保存操作Mage_Core_Model_Abstract
于 2013-02-25T09:49:09.973 回答