DeleteWebsitePost.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. /**
  3. *
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. namespace Magento\Backend\Controller\Adminhtml\System\Store;
  8. use Magento\Framework\App\Action\HttpPostActionInterface as HttpPostActionInterface;
  9. use Magento\Framework\Controller\ResultFactory;
  10. /**
  11. * Delete website.
  12. */
  13. class DeleteWebsitePost extends \Magento\Backend\Controller\Adminhtml\System\Store implements HttpPostActionInterface
  14. {
  15. /**
  16. * @inheritDoc
  17. * @return \Magento\Backend\Model\View\Result\Redirect
  18. */
  19. public function execute()
  20. {
  21. $itemId = $this->getRequest()->getParam('item_id');
  22. $model = $this->_objectManager->create(\Magento\Store\Model\Website::class);
  23. $model->load($itemId);
  24. /** @var \Magento\Backend\Model\View\Result\Redirect $redirectResult */
  25. $redirectResult = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
  26. if (!$model) {
  27. $this->messageManager->addErrorMessage(__('Something went wrong. Please try again.'));
  28. return $redirectResult->setPath('adminhtml/*/');
  29. }
  30. if (!$model->isCanDelete()) {
  31. $this->messageManager->addErrorMessage(__('This website cannot be deleted.'));
  32. return $redirectResult->setPath('adminhtml/*/editWebsite', ['website_id' => $model->getId()]);
  33. }
  34. if (!$this->_backupDatabase()) {
  35. return $redirectResult->setPath('*/*/editWebsite', ['website_id' => $itemId]);
  36. }
  37. try {
  38. $model->delete();
  39. $this->messageManager->addSuccessMessage(__('You deleted the website.'));
  40. return $redirectResult->setPath('adminhtml/*/');
  41. } catch (\Magento\Framework\Exception\LocalizedException $e) {
  42. $this->messageManager->addErrorMessage($e->getMessage());
  43. } catch (\Exception $e) {
  44. $this->messageManager->addExceptionMessage($e, __('Unable to delete the website. Please try again later.'));
  45. }
  46. return $redirectResult->setPath('*/*/editWebsite', ['website_id' => $itemId]);
  47. }
  48. }