app/Plugin/GoToCartB/GoToCartBEvent.php line 28

Open in your IDE?
  1. <?php
  2. namespace Plugin\GoToCartB;
  3. use Eccube\Repository\BaseInfoRepository;
  4. use Eccube\Service\CartService;
  5. use Symfony\Component\HttpFoundation\RedirectResponse;
  6. use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
  7. use Symfony\Component\HttpKernel\KernelEvents;
  8. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  9. class GoToCartBEvent implements EventSubscriberInterface
  10. {
  11.     public static function getSubscribedEvents()
  12.     {
  13.         return [KernelEvents::RESPONSE => 'goToCart'];
  14.     }
  15.     public function __construct(CartService $cartServiceBaseInfoRepository $baseInfoRepository)
  16.     {
  17.         $this->cartService $cartService;
  18.         $this->baseInfo $baseInfoRepository->get();
  19.     }
  20.     public function goToCart(FilterResponseEvent $event)
  21.     {
  22.         if (!$event->isMasterRequest()) {
  23.             return;
  24.         }
  25.         $request $event->getRequest();
  26.         $attributes $request->attributes;
  27.         $route $attributes->get('_route');
  28.         $activateFlg $this->baseInfo->isOptionCustomerActivate();
  29.         if ($route == 'entry_activate' && $activateFlg == false) {
  30.             $Carts $this->cartService->getCarts();
  31.             $quantityInCart 0;
  32.             foreach ($Carts as $cart) {
  33.                 $quantityInCart += $cart->getTotalQuantity();
  34.             }
  35.             if ($quantityInCart 0) {
  36.                 $event->setResponse(new RedirectResponse('/cart'));
  37.             }
  38.         }
  39.     }
  40. }