123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Wishlist\Controller\Index;
- use Magento\Checkout\Helper\Cart as CartHelper;
- use Magento\Checkout\Model\Cart as CheckoutCart;
- use Magento\Customer\Model\Session;
- use Magento\Framework\App\Action;
- use Magento\Framework\Data\Form\FormKey\Validator;
- use Magento\Framework\Escaper;
- use Magento\Framework\Exception\NotFoundException;
- use Magento\Framework\Exception\LocalizedException;
- use Magento\Framework\Controller\ResultFactory;
- use Magento\Wishlist\Controller\WishlistProviderInterface;
- use Magento\Wishlist\Helper\Data as WishlistHelper;
- /**
- * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
- */
- class Fromcart extends \Magento\Wishlist\Controller\AbstractIndex
- {
- /**
- * @var WishlistProviderInterface
- */
- protected $wishlistProvider;
- /**
- * @var WishlistHelper
- */
- protected $wishlistHelper;
- /**
- * @var CheckoutCart
- */
- protected $cart;
- /**
- * @var CartHelper
- */
- protected $cartHelper;
- /**
- * @var Escaper
- */
- protected $escaper;
- /**
- * @var Validator
- */
- protected $formKeyValidator;
- /**
- * @param Action\Context $context
- * @param WishlistProviderInterface $wishlistProvider
- * @param WishlistHelper $wishlistHelper
- * @param CheckoutCart $cart
- * @param CartHelper $cartHelper
- * @param Escaper $escaper
- * @param Validator $formKeyValidator
- */
- public function __construct(
- Action\Context $context,
- WishlistProviderInterface $wishlistProvider,
- WishlistHelper $wishlistHelper,
- CheckoutCart $cart,
- CartHelper $cartHelper,
- Escaper $escaper,
- Validator $formKeyValidator
- ) {
- $this->wishlistProvider = $wishlistProvider;
- $this->wishlistHelper = $wishlistHelper;
- $this->cart = $cart;
- $this->cartHelper = $cartHelper;
- $this->escaper = $escaper;
- $this->formKeyValidator = $formKeyValidator;
- parent::__construct($context);
- }
- /**
- * Add cart item to wishlist and remove from cart
- *
- * @return \Magento\Framework\Controller\Result\Redirect
- * @throws NotFoundException
- * @SuppressWarnings(PHPMD.UnusedLocalVariable)
- */
- public function execute()
- {
- /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
- $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
- if (!$this->formKeyValidator->validate($this->getRequest())) {
- return $resultRedirect->setPath('*/*/');
- }
- $wishlist = $this->wishlistProvider->getWishlist();
- if (!$wishlist) {
- throw new NotFoundException(__('Page not found.'));
- }
- try {
- $itemId = (int)$this->getRequest()->getParam('item');
- $item = $this->cart->getQuote()->getItemById($itemId);
- if (!$item) {
- throw new LocalizedException(
- __("The cart item doesn't exist.")
- );
- }
- $productId = $item->getProductId();
- $buyRequest = $item->getBuyRequest();
- $wishlist->addNewItem($productId, $buyRequest);
- $this->cart->getQuote()->removeItem($itemId);
- $this->cart->save();
- $this->wishlistHelper->calculate();
- $wishlist->save();
- $this->messageManager->addSuccessMessage(__(
- "%1 has been moved to your wish list.",
- $this->escaper->escapeHtml($item->getProduct()->getName())
- ));
- } catch (LocalizedException $e) {
- $this->messageManager->addErrorMessage($e->getMessage());
- } catch (\Exception $e) {
- $this->messageManager->addExceptionMessage($e, __('We can\'t move the item to the wish list.'));
- }
- return $resultRedirect->setUrl($this->cartHelper->getCartUrl());
- }
- }
|