是否有觀察者可以用來觀察產品從購物車中移出時的事件?我還沒有找到。觀察員在購物車中移除的物品
我發現的是checkout_cart_update_items_after
,如果通過更改產品計數來刪除產品,可以使用它,但在用戶使用刪除按鈕時可以使用。我目前看到的唯一選擇是checkout_cart_save_after
,每當購物車發生變化時都會使用它。當然這需要定製邏輯來檢查哪個產品被刪除。不完美。
那麼有沒有更好的方法來注意刪除事件?
是否有觀察者可以用來觀察產品從購物車中移出時的事件?我還沒有找到。觀察員在購物車中移除的物品
我發現的是checkout_cart_update_items_after
,如果通過更改產品計數來刪除產品,可以使用它,但在用戶使用刪除按鈕時可以使用。我目前看到的唯一選擇是checkout_cart_save_after
,每當購物車發生變化時都會使用它。當然這需要定製邏輯來檢查哪個產品被刪除。不完美。
那麼有沒有更好的方法來注意刪除事件?
您可以使用sales_quote_remove_item
事件,分派在Mage_Sales_Model_Quote::removeItem()
。
刪除的項目作爲參數傳遞給觀察者。
Mage::dispatchEvent('sales_quote_remove_item', array('quote_item' => $item));
要獲得一個事件觀察器相關的產品型號,使用$observer->getQuoteItem()->getProduct()
。
關於觀看事件(無論它們可能是什麼)的問題,請參閱Mage_Core_Model_App::dispatchEvent()
。調試/登錄代碼示例:
public function dispatchEvent($eventName, $args)
{
$argsArray = array();
$logfile = fopen(Mage::getBaseDir().'/var/log/events.log','a');
if(is_array($args)){
foreach ($args as $k => $v){
switch (gettype($v)) {
case 'object':
$v = get_class($v);
break;
case 'array':
$v = 'array';
}
$argsArray[$k] = $v;
}
}
$log = $eventName.":\r\t";
foreach($argsArray as $k => $v){
$log .= $k;
$log .= "\r\t\t".$v;
}
$log .= "\r\r";
fwrite($logfile,$log);
fclose($logfile);
// ...Rest of method...
}