MassUpdateStatus.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Review\Controller\Adminhtml\Product;
  7. use Magento\Review\Controller\Adminhtml\Product as ProductController;
  8. use Magento\Framework\Exception\LocalizedException;
  9. use Magento\Framework\Controller\ResultFactory;
  10. class MassUpdateStatus extends ProductController
  11. {
  12. /**
  13. * @return \Magento\Backend\Model\View\Result\Redirect
  14. */
  15. public function execute()
  16. {
  17. $reviewsIds = $this->getRequest()->getParam('reviews');
  18. if (!is_array($reviewsIds)) {
  19. $this->messageManager->addError(__('Please select review(s).'));
  20. } else {
  21. try {
  22. $status = $this->getRequest()->getParam('status');
  23. foreach ($reviewsIds as $reviewId) {
  24. $model = $this->reviewFactory->create()->load($reviewId);
  25. $model->setStatusId($status)->save()->aggregate();
  26. }
  27. $this->messageManager->addSuccess(
  28. __('A total of %1 record(s) have been updated.', count($reviewsIds))
  29. );
  30. } catch (LocalizedException $e) {
  31. $this->messageManager->addError($e->getMessage());
  32. } catch (\Exception $e) {
  33. $this->messageManager->addException(
  34. $e,
  35. __('Something went wrong while updating these review(s).')
  36. );
  37. }
  38. }
  39. /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
  40. $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
  41. $resultRedirect->setPath('review/*/' . $this->getRequest()->getParam('ret', 'index'));
  42. return $resultRedirect;
  43. }
  44. }