You are here

function uc_product_uc_update_cart_item in Ubercart 8.4

Same name and namespace in other branches
  1. 7.3 uc_product/uc_product.module \uc_product_uc_update_cart_item()

Implements hook_uc_update_cart_item().

1 call to uc_product_uc_update_cart_item()
uc_product_kit_uc_update_cart_item in uc_product_kit/uc_product_kit.module
Implements hook_uc_update_cart_item().

File

uc_product/uc_product.module, line 652
The product module for Ubercart.

Code

function uc_product_uc_update_cart_item($nid, $data = [], $qty, $cid = NULL) {
  $cart = \Drupal::service('uc_cart.manager')
    ->get($cid);
  $result = \Drupal::entityQuery('uc_cart_item')
    ->condition('cart_id', $cart
    ->getId())
    ->condition('nid', $nid)
    ->condition('data', serialize($data))
    ->execute();
  if (!empty($result)) {
    $item = CartItem::load(current(array_keys($result)));
    if ($item->qty->value != $qty) {
      $item->qty->value = $qty;
      $item
        ->save();

      // Invalidate the cache.
      Cache::invalidateTags([
        'uc_cart:' . $cid,
      ]);
    }
  }
}