【EC-CUBE4】ゲスト購入を無効化する方法
EC-CUBE4でゲスト購入を無効化する方法です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | <?php namespace Customize\EventSubscriber; use Eccube\Controller\NonMemberShoppingController; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpKernel\Event\FilterControllerEvent; use Symfony\Component\Routing\RouterInterface; /** * ゲスト購入ページにアクセスしたら会員登録ページへリダイレクト * * Class NonMemberSubscriber * @package Customize\EventSubscriber */ class NonMemberSubscriber implements EventSubscriberInterface { /** * @var RouterInterface */ private $router; public function __construct( RouterInterface $router ) { $this->router = $router; } public function onKernelController(FilterControllerEvent $event) { $controllers = $event->getController(); if(!is_array($controllers)) { return; } foreach($controllers as $controller) { if($controller instanceof NonMemberShoppingController) { $event->setController(function(){ return new RedirectResponse($this->router->generate("entry")); }); break; } } } public static function getSubscribedEvents() { return [ 'kernel.controller' => 'onKernelController', ]; } } |
コメントを投稿するにはログインが必要です。