2017-09-12 9 views
0

ウィッシュリストからアイテムを削除すると、そのアイテムの製品IDを取得する必要があります。誰もがこれについて私を助けてください。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テーブルのレコードが削除されているので、ウィッシュリストからアイテムを削除するとき

答えて

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(); 
    } 
} 
関連する問題