嗨,我想写一个钩子。我创建了一个名为“畅销书”的类别和一个名为“畅销书”(YES/NO)的属性(默认为“NO”)(在一般情况下)。我想写一个钩子,当我将畅销书类别分配给任何产品时,它必须将属性畅销书更改为YES,当我们从畅销书类别中删除产品时,它必须将畅销书属性值更改为NO。但我发现不存在像magento v-1.7.0.2中的catalog_product_save_before和catalog_product_save_after这样的事件。如有任何帮助,请尽快回复。
发布于 2013-02-25 17:49:10
简短的回答
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文件。您将找到值为catalog_product的受保护方法eventPrefix
protected $_eventPrefix = 'catalog_product';因此,在模型的调度事件中,目录产品的$this->_eventPrefix将是catalog_product_save_before和catalog_product_save_after。
这适用于正在扩展Mage_Core_Model_Abstract的所有模型的保存操作
https://stackoverflow.com/questions/15061083
复制相似问题