/** * Delete category action * * @return \Magento\Backend\Model\View\Result\Redirect */ public function execute() { /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultRedirectFactory->create(); $categoryId = (int) $this->getRequest()->getParam('id'); $parentId = null; if ($categoryId) { try { $category = $this->categoryRepository->get($categoryId); $parentId = $category->getParentId(); $this->_eventManager->dispatch('catalog_controller_category_delete', ['category' => $category]); $this->_auth->getAuthStorage()->setDeletedPath($category->getPath()); $this->categoryRepository->delete($category); $this->messageManager->addSuccess(__('You deleted the category.')); } catch (\Magento\Framework\Exception\LocalizedException $e) { $this->messageManager->addError($e->getMessage()); return $resultRedirect->setPath('catalog/*/edit', ['_current' => true]); } catch (\Exception $e) { $this->messageManager->addError(__('Something went wrong while trying to delete the category.')); return $resultRedirect->setPath('catalog/*/edit', ['_current' => true]); } } return $resultRedirect->setPath('catalog/*/', ['_current' => true, 'id' => $parentId]); }