custom/plugins/PremsOnePageCheckout6/src/Storefront/Page/Checkout/Subscriber/CartConvertedSubscriber.php line 53

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. /**
  3.  * PremSoft
  4.  * Copyright © 2021 Premsoft - Sven Mittreiter
  5.  *
  6.  * @copyright  Copyright (c) 2021, premsoft - Sven Mittreiter (http://www.premsoft.de)
  7.  * @author     Sven Mittreiter <info@premsoft.de>
  8.  */
  9. namespace Prems\Plugin\PremsOnePageCheckout6\Storefront\Page\Checkout\Subscriber;
  10. use Prems\Plugin\PremsOnePageCheckout6\Core\OnePageCheckout\Lifecycle\InstallUninstall;
  11. use Prems\Plugin\PremsOnePageCheckout6\Core\OnePageCheckout\Storefront\ConfigService;
  12. use Shopware\Core\Checkout\Cart\Order\CartConvertedEvent;
  13. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  14. use Symfony\Component\HttpFoundation\RequestStack;
  15. /**
  16.  * Class CartConvertedSubscriber
  17.  * @package Prems\Plugin\PremsOnePageCheckout6\Storefront\Page\Checkout\Subscriber
  18.  */
  19. class CartConvertedSubscriber implements EventSubscriberInterface
  20. {
  21.     /**
  22.      * @var RequestStack
  23.      */
  24.     private $requestStack;
  25.     /**
  26.      * @var ConfigService
  27.      */
  28.     private $configService;
  29.     /**
  30.      * CartConvertedSubscriber constructor.
  31.      * @param RequestStack $requestStack
  32.      * @param ConfigService $configService
  33.      */
  34.     public function __construct(
  35.         RequestStack $requestStack,
  36.         ConfigService $configService
  37.     ) {
  38.         $this->requestStack $requestStack;
  39.         $this->configService $configService;
  40.     }
  41.     public static function getSubscribedEvents(): array
  42.     {
  43.         return [
  44.             CartConvertedEvent::class => 'onCartConvertedEvent'
  45.         ];
  46.     }
  47.     public function onCartConvertedEvent(CartConvertedEvent $event)
  48.     {
  49.         $data $event->getConvertedCart();
  50.         $opcSaleSettings $this->configService->getConfig();
  51.         if (!$opcSaleSettings->isUseOnePageCheckout() || !$opcSaleSettings->isAdditionalCheckbox()) {
  52.             return;
  53.         }
  54.         $request $this->requestStack->getCurrentRequest()->request;
  55.         if ($request->get(InstallUninstall::ADDITIONAL_CHECKBOX)) {
  56.             $data['customFields'][InstallUninstall::ADDITIONAL_CHECKBOX] = true;
  57.         } else {
  58.             $data['customFields'][InstallUninstall::ADDITIONAL_CHECKBOX] = false;
  59.         }
  60.         $event->setConvertedCart($data);
  61.     }
  62. }