google_tag-8.x-1.x-dev/src/EventSubscriber/CommerceOrderSubscriber.php
src/EventSubscriber/CommerceOrderSubscriber.php
<?php declare(strict_types=1); namespace Drupal\google_tag\EventSubscriber; use Drupal\commerce_order\Event\OrderEvent; use Drupal\commerce_order\Event\OrderEvents; use Drupal\google_tag\EventCollectorInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface; /** * Commerce order paid subscriber. */ final class CommerceOrderSubscriber implements EventSubscriberInterface { /** * The Event Collector. * * @var \Drupal\google_tag\EventCollectorInterface */ private EventCollectorInterface $eventCollector; /** * CommerceOrderSubscriber constructor. * * @param \Drupal\google_tag\EventCollectorInterface $eventCollector * Collector service. */ public function __construct(EventCollectorInterface $eventCollector) { $this->eventCollector = $eventCollector; } /** * {@inheritDoc} */ public static function getSubscribedEvents(): array { return [ OrderEvents::ORDER_PAID => 'onPaid', ]; } /** * Fires an event on successful paid order. * * @param \Drupal\commerce_order\Event\OrderEvent $event * Event object. */ public function onPaid(OrderEvent $event): void { $this->eventCollector->addEvent('commerce_purchase', [ 'order' => $event->getOrder(), ]); } }