12345678910111213141516171819202122232425262728293031323334353637383940 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- declare(strict_types=1);
- namespace Magento\Checkout\Plugin\Model\Quote;
- use Magento\Quote\Model\Quote;
- /**
- * Clear quote addresses after all items were removed.
- */
- class ResetQuoteAddresses
- {
- /**
- * Clears the quote addresses when all the items are removed from the cart
- *
- * @param Quote $quote
- * @param Quote $result
- * @param mixed $itemId
- * @return Quote
- * @SuppressWarnings(PHPMD.UnusedFormalParameter)
- */
- public function afterRemoveItem(Quote $quote, Quote $result, $itemId): Quote
- {
- if (empty($result->getAllVisibleItems())) {
- foreach ($result->getAllAddresses() as $address) {
- $result->removeAddress($address->getId());
- }
- $extensionAttributes = $result->getExtensionAttributes();
- if (!$result->isVirtual() && $extensionAttributes && $extensionAttributes->getShippingAssignments()) {
- $extensionAttributes->setShippingAssignments([]);
- }
- }
- return $result;
- }
- }
|