MassDelete.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. /**
  3. *
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. namespace Magento\Newsletter\Controller\Adminhtml\Subscriber;
  8. use Magento\Newsletter\Controller\Adminhtml\Subscriber;
  9. use Magento\Backend\App\Action\Context;
  10. use Magento\Framework\App\Response\Http\FileFactory;
  11. use Magento\Newsletter\Model\SubscriberFactory;
  12. use Magento\Framework\App\ObjectManager;
  13. class MassDelete extends Subscriber
  14. {
  15. /**
  16. * @var SubscriberFactory
  17. */
  18. private $subscriberFactory;
  19. /**
  20. * @param Context $context
  21. * @param FileFactory $fileFactory
  22. */
  23. public function __construct(
  24. Context $context,
  25. FileFactory $fileFactory,
  26. SubscriberFactory $subscriberFactory = null
  27. ) {
  28. $this->subscriberFactory = $subscriberFactory ?: ObjectManager::getInstance()->get(SubscriberFactory::class);
  29. parent::__construct($context, $fileFactory);
  30. }
  31. /**
  32. * Delete one or more subscribers action
  33. *
  34. * @return void
  35. */
  36. public function execute()
  37. {
  38. $subscribersIds = $this->getRequest()->getParam('subscriber');
  39. if (!is_array($subscribersIds)) {
  40. $this->messageManager->addError(__('Please select one or more subscribers.'));
  41. } else {
  42. try {
  43. foreach ($subscribersIds as $subscriberId) {
  44. $subscriber = $this->subscriberFactory->create()->load(
  45. $subscriberId
  46. );
  47. $subscriber->delete();
  48. }
  49. $this->messageManager->addSuccess(__('Total of %1 record(s) were deleted.', count($subscribersIds)));
  50. } catch (\Exception $e) {
  51. $this->messageManager->addError($e->getMessage());
  52. }
  53. }
  54. $this->_redirect('*/*/index');
  55. }
  56. }