![]() 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/cartforge.co/vendor/magento/module-quote/Plugin/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Quote\Plugin; use Magento\Quote\Api\CartRepositoryInterface; use Magento\Customer\Model\ResourceModel\Customer as CustomerResource; use Magento\Customer\Model\Customer; use Magento\Framework\Model\AbstractModel; /** * Recollect quote totals after change customer group */ class RecollectOnGroupChange { /** * @var CartRepositoryInterface */ private $cartRepository; /** * @param CartRepositoryInterface $cartRepository */ public function __construct( CartRepositoryInterface $cartRepository ) { $this->cartRepository = $cartRepository; } /** * Recollect totals if customer group change * * @param CustomerResource $subject * @param CustomerResource $result * @param AbstractModel $customer * @return CustomerResource * * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function afterSave(CustomerResource $subject, CustomerResource $result, AbstractModel $customer) { /** @var Customer $customer */ if ($customer->getOrigData('group_id') !== null && $customer->getOrigData('group_id') != $customer->getGroupId() ) { try { /** @var \Magento\Quote\Model\Quote $quote */ $quote = $this->cartRepository->getActiveForCustomer($customer->getId()); $quote->setCustomerGroupId($customer->getGroupId()); $quote->collectTotals(); $this->cartRepository->save($quote); } catch (\Magento\Framework\Exception\NoSuchEntityException $e) { //no active cart for customer } } return $result; } }