You are here

function _commerce_wishlist_remove_product_for_user in Commerce Wishlist 7.2

Helper function for removing the wishlist product for a particular user.

1 call to _commerce_wishlist_remove_product_for_user()
commerce_wishlist_action_remove_product_for_user in ./commerce_wishlist.rules.inc
Rules action callback to remove a specific product from user's wishlist.

File

./commerce_wishlist.module, line 660
Provides the wishlist for use in Drupal Commerce.

Code

function _commerce_wishlist_remove_product_for_user($product_id, $user_id) {

  // Get the node ID first. This will be used as an argument for rules.
  $query = db_select('commerce_wishlist', 'cw')
    ->addTag('commerce_wishlist');
  $query
    ->join('commerce_wishlist_item', 'wi', 'wi.wishlist_id = cw.wishlist_id');
  $query
    ->fields('wi');
  $query
    ->condition('cw.uid', $user_id);
  $query
    ->condition('wi.product_id', $product_id);
  if ($wishlist_item = $query
    ->execute()
    ->fetchObject()) {
    $nid = $wishlist_item->nid;

    // Remove the item from the database.
    db_delete('commerce_wishlist_item')
      ->condition('item_id', $wishlist_item->item_id)
      ->execute();

    // Invoke the appropriate rule.
    $account = user_load($user_id);
    $product = commerce_product_load($product_id);
    $node = node_load($nid);
    rules_invoke_event('commerce_wishlist_event_product_removed', $account, $product, $node);
  }
}