2017-09-12 2 views
0

위시리스트에서 항목을 제거 할 때 해당 항목의 제품 ID를 얻어야합니다. 누구든지이 일을 도와주세요.Magento 1.9 : 위시리스트에서 상품을 꺼냄 item 이벤트

아래에있는 내 코드를 참조하십시오 :

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 테이블에서 레코드가 삭제되어 있기 때문에 우리가 위시리스트에서 항목을 제거 할 때.

답변

0

우리는 위시리스트 삭제 이벤트 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> 

그리고 아래와 같은 제품 ID를 가져 Observer.php에 기능을 업데이트에 관찰자를 추가하여 문제를 해결할 수 있습니다.

public function deleteFromWishlist() 
{ 
    $item = Mage::app()->getRequest()->getParam('item'); 
    if($item){ 
     $item = Mage::getModel('wishlist/item')->load($item); 
     $productId = $item->getProductId(); 
    } 
} 
관련 문제