コード例 #1
0
 /**
  * Updates all the carts with the cloned address
  *
  * @param AddressOnCloneEvent $event Event
  */
 public function updateCarts(AddressOnCloneEvent $event)
 {
     $originalAddress = $event->getOriginalAddress();
     $clonedAddress = $event->getClonedAddress();
     $carts = $this->cartRepository->findAllCartsWithAddress($originalAddress);
     foreach ($carts as $cart) {
         /**
          * @var CartInterface $cart
          */
         $deliveryAddress = $cart->getDeliveryAddress();
         $billingAddress = $cart->getBillingAddress();
         if ($deliveryAddress instanceof AddressInterface && $deliveryAddress->getId() == $originalAddress->getId()) {
             $cart->setDeliveryAddress($clonedAddress);
         }
         if ($billingAddress instanceof AddressInterface && $billingAddress->getId() == $originalAddress->getId()) {
             $cart->setBillingAddress($clonedAddress);
         }
         $this->cartObjectManager->flush($cart);
     }
 }