![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-multishipping/Plugin/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Multishipping\Plugin; use Magento\Quote\Model\Quote; use Magento\Quote\Model\Quote\ShippingAssignment\ShippingAssignmentProcessor; /** * Resets quote shipping assignments when item is removed from multishipping quote. */ class ResetShippingAssigment { /** * @var ShippingAssignmentProcessor */ private $shippingAssignmentProcessor; /** * @param ShippingAssignmentProcessor $shippingAssignmentProcessor */ public function __construct( ShippingAssignmentProcessor $shippingAssignmentProcessor ) { $this->shippingAssignmentProcessor = $shippingAssignmentProcessor; } /** * Resets quote shipping assignments when item is removed from multishipping quote. * * @param Quote $subject * @param mixed $itemId * * @return array */ public function beforeRemoveItem(Quote $subject, $itemId): array { if ($subject->getIsMultiShipping()) { $extensionAttributes = $subject->getExtensionAttributes(); if ($extensionAttributes && $extensionAttributes->getShippingAssignments()) { $shippingAssignment = $this->shippingAssignmentProcessor->create($subject); $extensionAttributes->setShippingAssignments([$shippingAssignment]); } } return [$itemId]; } }