Allcart.php 2.3 KB

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