从 Magento 1.9 中的愿望清单删除项目事件中获取产品 ID
Get product id from wishlist remove item event in Magento 1.9
当我从心愿单中删除商品时,我需要获取该商品的产品 ID。
查看下面我的代码:
config.xml
<wishlist_item_save_after>
<observers>
<data_wishlist_delete>
<class>data/observer</class>
<method>deleteFromWishlist</method>
</data_wishlist_delete>
</observers>
</wishlist_item_save_after>
Observer.php
public function deleteFromWishlist()
{
$item = Mage::app()->getRequest()->getParam('item');
$action = Mage::app()->getRequest()->getActionName();
if (($action == 'remove') && !empty($item)) {
$resource = Mage::getSingleton('core/resource');
$readConnection = $resource->getConnection('core_read');
$query = 'SELECT product_id FROM wishlist_item WHERE wishlist_item_id = ' . $item . ' LIMIT 1';
$id = $readConnection->fetchOne($query);
echo 'Product Id: ' . $id . '<br/>';
} else {
return;
}
}
此处未显示产品 ID 是因为当我们从心愿单中删除商品时,wishlist_item table 中的记录正在删除。
我们可以通过在愿望单移除事件中添加观察者来解决问题 controller_action_predispatch_wishlist_index_remove
config.xml
<events>
<controller_action_predispatch_wishlist_index_remove>
<observers>
<data_wishlist_delete>
<class>data/observer</class>
<method>deleteFromWishlist</method>
</data_wishlist_delete>
</observers>
</controller_action_predispatch_wishlist_index_remove>
</events>
并在 Observer.php 中更新您的函数以获取产品 ID,如下所示。
public function deleteFromWishlist()
{
$item = Mage::app()->getRequest()->getParam('item');
if($item){
$item = Mage::getModel('wishlist/item')->load($item);
$productId = $item->getProductId();
}
}
当我从心愿单中删除商品时,我需要获取该商品的产品 ID。
查看下面我的代码:
config.xml
<wishlist_item_save_after>
<observers>
<data_wishlist_delete>
<class>data/observer</class>
<method>deleteFromWishlist</method>
</data_wishlist_delete>
</observers>
</wishlist_item_save_after>
Observer.php
public function deleteFromWishlist()
{
$item = Mage::app()->getRequest()->getParam('item');
$action = Mage::app()->getRequest()->getActionName();
if (($action == 'remove') && !empty($item)) {
$resource = Mage::getSingleton('core/resource');
$readConnection = $resource->getConnection('core_read');
$query = 'SELECT product_id FROM wishlist_item WHERE wishlist_item_id = ' . $item . ' LIMIT 1';
$id = $readConnection->fetchOne($query);
echo 'Product Id: ' . $id . '<br/>';
} else {
return;
}
}
此处未显示产品 ID 是因为当我们从心愿单中删除商品时,wishlist_item table 中的记录正在删除。
我们可以通过在愿望单移除事件中添加观察者来解决问题 controller_action_predispatch_wishlist_index_remove
config.xml
<events>
<controller_action_predispatch_wishlist_index_remove>
<observers>
<data_wishlist_delete>
<class>data/observer</class>
<method>deleteFromWishlist</method>
</data_wishlist_delete>
</observers>
</controller_action_predispatch_wishlist_index_remove>
</events>
并在 Observer.php 中更新您的函数以获取产品 ID,如下所示。
public function deleteFromWishlist()
{
$item = Mage::app()->getRequest()->getParam('item');
if($item){
$item = Mage::getModel('wishlist/item')->load($item);
$productId = $item->getProductId();
}
}