custom/plugins/VioRepresentativeLogin/src/Storefront/Subscriber/KernelResponseSubscriber.php line 28

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace VioRepresentativeLogin\Storefront\Subscriber;
  3. use Shopware\Core\System\SalesChannel\SalesChannelContext;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\HttpFoundation\RedirectResponse;
  6. use Symfony\Component\HttpKernel\Event\ResponseEvent;
  7. use Symfony\Component\HttpKernel\KernelEvents;
  8. use VioRepresentativeLogin\Core\Services\AgentService;
  9. class KernelResponseSubscriber implements EventSubscriberInterface
  10. {
  11.     private AgentService $agentService;
  12.     public function __construct(AgentService $agentService)
  13.     {
  14.         $this->agentService $agentService;
  15.     }
  16.     public static function getSubscribedEvents(): array
  17.     {
  18.         return [
  19.             KernelEvents::RESPONSE => 'onRegisterResponse'
  20.         ];
  21.     }
  22.     public function onRegisterResponse(ResponseEvent $event) : void
  23.     {
  24.         $response $event->getResponse();
  25.         $requestURI $event->getRequest()->getRequestUri();
  26.         $context $event->getRequest()->get('sw-sales-channel-context');
  27.         if ($response instanceof RedirectResponse
  28.             && $context instanceof SalesChannelContext
  29.             && $requestURI === '/account/register')
  30.         {
  31.             $event->setResponse($this->agentService->getRedirectResponse($context$response));
  32.         }
  33.     }
  34. }