changeQuoteControl = $changeQuoteControl; } /** * Checks if change quote's customer id is allowed for current user. * * A StateException is thrown if Guest's or Customer's customer_id not match user_id or unknown user type * * @param CartRepositoryInterface $subject * @param CartInterface $quote * @return void * @throws StateException * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function beforeSave(CartRepositoryInterface $subject, CartInterface $quote): void { if (!$this->changeQuoteControl->isAllowed($quote)) { throw new StateException(__("Invalid state change requested")); } } }