OrderEventSubscriber.php in Commerce Core 8.2
Namespace
Drupal\commerce_cart\EventSubscriberFile
modules/cart/src/EventSubscriber/OrderEventSubscriber.phpView source
<?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 (!empty($order->cart->value)) {
$this->cartProvider
->finalizeCart($order, FALSE);
}
}
}
Classes
Name | Description |
---|---|
OrderEventSubscriber |