Magento 2: Override/Rewrite Wishlist controller
In seeking how to override a controller in Magento 2, you find lots of different ways to proceed. Some work, some do not. I will show you how to override a controller very easily. I am going to override wishlist controller. Lets see step by step how to do.
Step3: Add this code in your di.xml file
Step4: Add this code in your module.xml file
Step5: Add this code in your registration.php file
Now use this command,
php bin/magento setup:upgrade
Download
Step1: Create directory structure
app/code/HK/Localwishlist/Controller/Wishlist/Add.php
app/code/HK/Localwishlist/etc/di.xml
app/code/HK/Localwishlist/etc/module.xml
app/code/HK/Localwishlist/registration.php
Step2: Add this code in your Add.php file
<?php
namespace HK\Localwishlist\Controller\Wishlist;
use Magento\Catalog\Api\ProductRepositoryInterface;
use Magento\Framework\App\Action;
use Magento\Framework\Exception\NotFoundException;
use Magento\Framework\Exception\NoSuchEntityException;
use Magento\Framework\Controller\ResultFactory;
/**
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
*/
class Add extends \Magento\Wishlist\Controller\AbstractIndex
{
/**
* @var \Magento\Wishlist\Controller\WishlistProviderInterface
*/
protected $wishlistProvider;
/**
* @var \Magento\Customer\Model\Session
*/
protected $_customerSession;
/**
* @var ProductRepositoryInterface
*/
protected $productRepository;
/**
* @param Action\Context $context
* @param \Magento\Customer\Model\Session $customerSession
* @param \Magento\Wishlist\Controller\WishlistProviderInterface $wishlistProvider
* @param ProductRepositoryInterface $productRepository
*/
public function __construct(
Action\Context $context,
\Magento\Customer\Model\Session $customerSession,
\Magento\Wishlist\Controller\WishlistProviderInterface $wishlistProvider,
ProductRepositoryInterface $productRepository
) {
$this->_customerSession = $customerSession;
$this->wishlistProvider = $wishlistProvider;
parent::__construct($context);
$this->productRepository = $productRepository;
}
public function execute(){
echo "Test.....";
}
}
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
<preference for="Magento\Wishlist\Controller\Index\Add" type="HK\Localwishlist\Controller\Wishlist\Add" />
</config>
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd"> <module name="HK_Localwishlist" setup_version="1.0.0"/> </config>
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'HK_Localwishlist',
__DIR__
);
php bin/magento setup:upgrade
Please support us, Like us on Facebook.
Subscribe to:
Post Comments (Atom)


Hello friends, nice piece of writing and good arguments commented
ReplyDeletehere, I am in fact enjoying by these.
not working
ReplyDelete