Skip to content

Commit d812f42

Browse files
committed
Added Newsletter queue improvements
1 parent 7e364fd commit d812f42

File tree

3 files changed

+38
-18
lines changed

3 files changed

+38
-18
lines changed

app/code/Magento/Newsletter/Block/Adminhtml/Queue/Edit.php

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -135,24 +135,25 @@ protected function _prepareLayout()
135135
]
136136
]
137137
);
138-
139-
$this->getToolbar()->addChild(
140-
'save_and_resume',
141-
\Magento\Backend\Block\Widget\Button::class,
142-
[
143-
'label' => __('Save and Resume'),
144-
'class' => 'save',
145-
'data_attribute' => [
146-
'mage-init' => [
147-
'button' => [
148-
'event' => 'save',
149-
'target' => '#queue_edit_form',
150-
'eventData' => ['action' => ['args' => ['_resume' => 1]]],
138+
if ($this->getCanResume()) {
139+
$this->getToolbar()->addChild(
140+
'save_and_resume',
141+
\Magento\Backend\Block\Widget\Button::class,
142+
[
143+
'label' => __('Save and Resume'),
144+
'class' => 'save',
145+
'data_attribute' => [
146+
'mage-init' => [
147+
'button' => [
148+
'event' => 'save',
149+
'target' => '#queue_edit_form',
150+
'eventData' => ['action' => ['args' => ['_resume' => 1]]],
151+
],
151152
],
152-
],
153+
]
153154
]
154-
]
155-
);
155+
);
156+
}
156157

157158
return parent::_prepareLayout();
158159
}

app/code/Magento/Newsletter/Block/Adminhtml/Queue/Edit/Form.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
namespace Magento\Newsletter\Block\Adminhtml\Queue\Edit;
88

9+
use Magento\Newsletter\Model\Queue;
10+
911
/**
1012
* Newsletter queue edit form
1113
*
@@ -227,7 +229,7 @@ protected function _prepareForm()
227229
'value' => $queue->getTemplate()->getTemplateStyles()
228230
]
229231
);
230-
} elseif (\Magento\Newsletter\Model\Queue::STATUS_NEVER != $queue->getQueueStatus()) {
232+
} elseif (Queue::STATUS_NEVER != $queue->getQueueStatus() && $queue->getQueueStatus() != Queue::STATUS_PAUSE) {
231233
$fieldset->addField(
232234
'text',
233235
'textarea',

app/code/Magento/Newsletter/Model/Queue.php

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,11 @@ public function sendPerSubscriber($count = 20)
251251
]
252252
);
253253

254-
/** @var \Magento\Newsletter\Model\Subscriber $item */
254+
if ($this->getQueueStatus() != self::STATUS_SENDING && count($collection->getItems()) > 0) {
255+
$this->startQueue();
256+
}
257+
258+
/** @var Subscriber $item */
255259
foreach ($collection->getItems() as $item) {
256260
$transport = $this->_transportBuilder->setTemplateOptions(
257261
['area' => \Magento\Framework\App\Area::AREA_FRONTEND, 'store' => $item->getStoreId()]
@@ -283,6 +287,19 @@ public function sendPerSubscriber($count = 20)
283287
return $this;
284288
}
285289

290+
/**
291+
* Start queue: set status SENDING for queue
292+
*
293+
* @return $this
294+
*/
295+
private function startQueue()
296+
{
297+
$this->setQueueStatus(self::STATUS_SENDING);
298+
$this->save();
299+
300+
return $this;
301+
}
302+
286303
/**
287304
* Finish queue: set status SENT and update finish date
288305
*

0 commit comments

Comments
 (0)