ConfirmationMessageSubscriber.php in Commerce add to cart confirmation 1.x
File
src/EventSubscriber/ConfirmationMessageSubscriber.php
View source
<?php
namespace Drupal\commerce_add_to_cart_confirmation\EventSubscriber;
use Drupal\commerce_cart\Event\CartEntityAddEvent;
use Drupal\commerce_cart\Event\CartEvents;
use Drupal\Core\Messenger\MessengerInterface;
use Drupal\Core\Render\Markup;
use Drupal\Core\Render\RendererInterface;
use Drupal\views\Views;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class ConfirmationMessageSubscriber implements EventSubscriberInterface {
protected $renderer;
protected $messenger;
public function __construct(RendererInterface $renderer, MessengerInterface $messenger) {
$this->renderer = $renderer;
$this->messenger = $messenger;
}
public static function getSubscribedEvents() {
$events[CartEvents::CART_ENTITY_ADD][] = [
'onAddToCart',
];
return $events;
}
public function onAddToCart(CartEntityAddEvent $event) {
$view = Views::getView('confirm_message_product_display');
$view
->setDisplay('default');
$view
->setArguments([
$event
->getOrderItem()
->id(),
]);
$confirmation_message = [
'#theme' => 'commerce_add_to_cart_confirmation',
'#title' => $view
->getTitle(),
'#message' => $view
->render(),
'#order_item' => $event
->getOrderItem(),
];
$this->messenger
->addMessage($this->renderer
->render($confirmation_message), 'commerce-add-to-cart-confirmation');
}
}