Como criar um módulo para redirecionar o cliente para o Carrinho depois de realizar o Login no Magento 2
Primeiro passo você terá que criar a estrutura padrão de um módulo no Magento 2
Siga o tutorial deste Post: https://rogertakemiya.com.br/como-criar-um-modulo-no-magento-2/
Criando o Observer
Nome do arquivo: CustomerLogin
Localização: Vendor/Module/Observer
Conteúdo:
<?php namespace Vendor\Module\Observer; class CustomerLogin implements \Magento\Framework\Event\ObserverInterface { protected $_responseFactory; protected $_url; protected $_session; public function __construct( \Magento\Customer\Model\Session $session, \Magento\Framework\App\ResponseFactory $responseFactory, \Magento\Framework\UrlInterface $url ) { $this->_session = $session; $this->_responseFactory = $responseFactory; $this->_url = $url; } public function execute(\Magento\Framework\Event\Observer $observer) { $isCustomerLoggedIn = $this->_session->isLoggedIn(); if ($isCustomerLoggedIn) { $event = $observer->getEvent(); $CustomRedirectionUrl = $this->_url->getUrl('checkout/cart'); $this->_session->setBeforeAuthUrl($CustomRedirectionUrl); return $this; } } }
Obs: Altere Vendor/Module pela estrutura que você utilizou no seu módulo
Adicionando o Evento
Crie a seguinte pasta: Vendor/Module/etc/frontend
Crie o arquivo: Vendor/Module/etc/frontend/events.xml
Conteúdo:
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd"> <event name="customer_login"> <observer name="customer_login_observer" instance="Vendor\Module\Observer\CustomerLogin" /> </event> </config>
Obs: Altere Vendor/Module pela estrutura que você utilizou no seu módulo
Atualize o Cache
Atualize o cache do tipo configuração, após isso você já poderá testar a customização.