Allcart.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Wishlist\Controller\Shared;
  7. use Magento\Framework\App\Action\Context;
  8. use Magento\Wishlist\Model\ItemCarrier;
  9. use Magento\Framework\Controller\ResultFactory;
  10. class Allcart extends \Magento\Framework\App\Action\Action
  11. {
  12. /**
  13. * @var WishlistProvider
  14. */
  15. protected $wishlistProvider;
  16. /**
  17. * @var \Magento\Wishlist\Model\ItemCarrier
  18. */
  19. protected $itemCarrier;
  20. /**
  21. * @param Context $context
  22. * @param WishlistProvider $wishlistProvider
  23. * @param ItemCarrier $itemCarrier
  24. */
  25. public function __construct(
  26. Context $context,
  27. WishlistProvider $wishlistProvider,
  28. ItemCarrier $itemCarrier
  29. ) {
  30. $this->wishlistProvider = $wishlistProvider;
  31. $this->itemCarrier = $itemCarrier;
  32. parent::__construct($context);
  33. }
  34. /**
  35. * Add all items from wishlist to shopping cart
  36. *
  37. * @return \Magento\Framework\Controller\ResultInterface
  38. */
  39. public function execute()
  40. {
  41. $wishlist = $this->wishlistProvider->getWishlist();
  42. if (!$wishlist) {
  43. /** @var \Magento\Framework\Controller\Result\Forward $resultForward */
  44. $resultForward = $this->resultFactory->create(ResultFactory::TYPE_FORWARD);
  45. $resultForward->forward('noroute');
  46. return $resultForward;
  47. }
  48. $redirectUrl = $this->itemCarrier->moveAllToCart($wishlist, $this->getRequest()->getParam('qty'));
  49. /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
  50. $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
  51. $resultRedirect->setUrl($redirectUrl);
  52. return $resultRedirect;
  53. }
  54. }