Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Save.php
Go to the documentation of this file.
1 <?php
9 
10 use Magento\Framework\App\Action\HttpPostActionInterface as HttpPostActionInterface;
11 
13 {
21  public function execute()
22  {
23  try {
24  /* @var $queue \Magento\Newsletter\Model\Queue */
25  $queue = $this->_objectManager->create(\Magento\Newsletter\Model\Queue::class);
26 
27  $templateId = $this->getRequest()->getParam('template_id');
28  if ($templateId) {
29  /* @var $template \Magento\Newsletter\Model\Template */
30  $template = $this->_objectManager->create(\Magento\Newsletter\Model\Template::class)->load($templateId);
31 
32  if (!$template->getId() || $template->getIsSystem()) {
33  throw new \Magento\Framework\Exception\LocalizedException(
34  __('Please correct the newsletter template and try again.')
35  );
36  }
37 
38  $queue->setTemplateId(
39  $template->getId()
40  )->setQueueStatus(
41  \Magento\Newsletter\Model\Queue::STATUS_NEVER
42  );
43  } else {
44  $queue->load($this->getRequest()->getParam('id'));
45  }
46 
47  if (!in_array(
48  $queue->getQueueStatus(),
50  )
51  ) {
52  $this->_redirect('*/*');
53  return;
54  }
55 
56  if ($queue->getQueueStatus() == \Magento\Newsletter\Model\Queue::STATUS_NEVER) {
57  $queue->setQueueStartAtByString($this->getRequest()->getParam('start_at'));
58  }
59 
60  $queue->setStores(
61  $this->getRequest()->getParam('stores', [])
62  )->setNewsletterSubject(
63  $this->getRequest()->getParam('subject')
64  )->setNewsletterSenderName(
65  $this->getRequest()->getParam('sender_name')
66  )->setNewsletterSenderEmail(
67  $this->getRequest()->getParam('sender_email')
68  )->setNewsletterText(
69  $this->getRequest()->getParam('text')
70  )->setNewsletterStyles(
71  $this->getRequest()->getParam('styles')
72  );
73 
75  && $this->getRequest()->getParam(
76  '_resume',
77  false
78  )
79  ) {
80  $queue->setQueueStatus(\Magento\Newsletter\Model\Queue::STATUS_SENDING);
81  }
82 
83  $queue->save();
84 
85  $this->messageManager->addSuccess(__('You saved the newsletter queue.'));
86  $this->_getSession()->setFormData(false);
87  $this->_getSession()->unsPreviewData();
88 
89  $this->_redirect('*/*');
90  } catch (\Magento\Framework\Exception\LocalizedException $e) {
91  $this->messageManager->addError($e->getMessage());
92  $id = $this->getRequest()->getParam('id');
93  if ($id) {
94  $this->_redirect('*/*/edit', ['id' => $id]);
95  } else {
96  $this->getResponse()->setRedirect($this->_redirect->getRedirectUrl($this->getUrl('*')));
97  }
98  }
99  }
100 }
$queue
Definition: queue.php:21
$id
Definition: fieldset.phtml:14
__()
Definition: __.php:13
$templateId
Definition: queue.php:15
$template
Definition: export.php:12