I have below code, which in not working from Category Listing Page.
Example: http://magento2-demo.nexcess.net/gear/bags.html
namespace Custom\Module\Observer;
use Magento\Framework\Event\ObserverInterface;
use Magento\Framework\Event\Observer;
class TestObserver implements ObserverInterface {
protected $_responseFactory;
protected $_url;
protected $_objectManager;
public function __construct(\Magento\Framework\App\ResponseFactory $responseFactory,\Magento\Framework\UrlInterface $url, \Magento\Framework\ObjectManagerInterface $objectManager)
{
$this->_responseFactory = $responseFactory;
$this->_url = $url;
$this->_objectManager = $objectManager;
}
public function execute(\Magento\Framework\Event\Observer $observer)
{
$controller = $observer->getControllerAction();
$response = $observer->getResponse();
$controllerAction = $observer->getEvent()->getControllerAction();
$cartUrl = $this->_url->getUrl('checkout/index/index');
$observer->getResponse()->setRedirect($cartUrl);
exit;
$response = $observer->getEvent()->getData('response');
$response->setRedirect($cartUrl)->sendResponse();
exit;
$observer->getEvent()->getFront()->getResponse()->setRedirect($cartUrl);
//$observer->getResponse()->setRedirect($cartUrl);
exit;
$response = $observer->getEvent()->getResponse();
$response->setRedirect($cartUrl);
exit;
}
}
It gives below error
Fatal error: Call to a member function setRedirect() on null in
In Plugin it works fine Magento 2: How to redirect to checkout page after product added to cart via Observer/Plugin from category page?
How to use same thing in Observer?
Best Answer
di.xml
Redirect.php