Delete.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. /**
  3. *
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. namespace Magento\Email\Controller\Adminhtml\Email\Template;
  8. class Delete extends \Magento\Email\Controller\Adminhtml\Email\Template
  9. {
  10. /**
  11. * Delete transactional email action
  12. *
  13. * @return void
  14. */
  15. public function execute()
  16. {
  17. $template = $this->_initTemplate('id');
  18. if ($template->getId()) {
  19. try {
  20. // check if the template is currently used
  21. if (count($template->getSystemConfigPathsWhereCurrentlyUsed()) == 0) {
  22. $template->delete();
  23. // display success message
  24. $this->messageManager->addSuccessMessage(__('You deleted the email template.'));
  25. $this->_objectManager->get(\Magento\Framework\App\ReinitableConfig::class)->reinit();
  26. // go to grid
  27. $this->_redirect('adminhtml/*/');
  28. return;
  29. }
  30. // display error message
  31. $this->messageManager->addErrorMessage(__('The email template is currently being used.'));
  32. // redirect to edit form
  33. $this->_redirect('adminhtml/*/edit', ['id' => $template->getId()]);
  34. return;
  35. } catch (\Magento\Framework\Exception\LocalizedException $e) {
  36. $this->messageManager->addErrorMessage($e->getMessage());
  37. } catch (\Exception $e) {
  38. $this->messageManager->addErrorMessage(
  39. __('We can\'t delete email template data right now. Please review log and try again.')
  40. );
  41. $this->_objectManager->get(\Psr\Log\LoggerInterface::class)->critical($e);
  42. // save data in session
  43. $this->_objectManager->get(
  44. \Magento\Backend\Model\Session::class
  45. )->setFormData(
  46. $this->getRequest()->getParams()
  47. );
  48. // redirect to edit form
  49. $this->_redirect('adminhtml/*/edit', ['id' => $template->getId()]);
  50. return;
  51. }
  52. }
  53. // display error message
  54. $this->messageManager->addErrorMessage(__('We can\'t find an email template to delete.'));
  55. // go to grid
  56. $this->_redirect('adminhtml/*/');
  57. }
  58. }