Search code examples
http-redirectmagento2observers

Magento2: redirect from Observer


We have already know that How to redirect from an Observer for magento 1.x version.

but for magento 2,we does not know How to forcefully do redirection from an observer.

I have done google ,but does not get any answer.


Solution

  • Here i am writing some code for cart page redirecting. In your module create a events.xml file

    <?xml version="1.0" encoding="UTF-8"?>
    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd"> 
        <event name="controller_action_predispatch_checkout_cart_index">
            <observer name="my_predispatch_checkout_cart" instance="Namespace\Module\Observer\PredispatchCheckoutCart"/>
        </event>
    </config>
    

    In your observer file yourmodule\Observer\PredispatchCheckoutCart.php

    <?php
        namespace Namespace\Module\Observer;
        use Magento\Framework\Event\ObserverInterface;
    
        class PredispatchCheckoutCart implements ObserverInterface{
            protected $_objectManager;
    
            public function __construct(
                \Magento\Framework\ObjectManagerInterface $objectManager,
                \Magento\Checkout\Helper\Cart $_cartHelper
            ) {
                $this->_objectManager = $objectManager;
                $this->_cartHelper = $_cartHelper;
            }
    
            public function execute(\Magento\Framework\Event\Observer $observer){
                    //redirect to cart
                    $redirectUrl = $this->_cartHelper->getCartUrl();
                    $observer->getControllerAction()->getResponse()->setRedirect($redirectUrl);
    
                }
        }