commerce-8.x-2.8/modules/cart/src/EventSubscriber/OrderEventSubscriber.php
modules/cart/src/EventSubscriber/OrderEventSubscriber.php
<?php namespace Drupal\commerce_cart\EventSubscriber; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Drupal\commerce_cart\CartProviderInterface; use Drupal\state_machine\Event\WorkflowTransitionEvent; class OrderEventSubscriber implements EventSubscriberInterface { /** * The cart provider. * * @var \Drupal\commerce_cart\CartProviderInterface */ protected $cartProvider; /** * Constructs a new OrderEventSubscriber object. * * @param \Drupal\commerce_cart\CartProviderInterface $cart_provider * The cart provider. */ public function __construct(CartProviderInterface $cart_provider) { $this->cartProvider = $cart_provider; } /** * {@inheritdoc} */ public static function getSubscribedEvents() { $events = [ 'commerce_order.place.pre_transition' => 'finalizeCart', ]; return $events; } /** * Finalizes the cart when the order is placed. * * @param \Drupal\state_machine\Event\WorkflowTransitionEvent $event * The workflow transition event. */ public function finalizeCart(WorkflowTransitionEvent $event) { $order = $event->getEntity(); if ($order->cart->value == TRUE) { $this->cartProvider->finalizeCart($order, FALSE); } } }