diff --git a/app/code/Magento/Newsletter/Model/ResourceModel/Queue.php b/app/code/Magento/Newsletter/Model/ResourceModel/Queue.php index 12375a5a6ca07..01cbd61b2dd83 100644 --- a/app/code/Magento/Newsletter/Model/ResourceModel/Queue.php +++ b/app/code/Magento/Newsletter/Model/ResourceModel/Queue.php @@ -80,13 +80,13 @@ public function addSubscribersToQueue(ModelQueue $queue, array $subscriberIds) $subscriberIds ); - $usedIds = $connection->fetchCol($select); + $usedIds = array_flip($connection->fetchCol($select)); + $subscriberIds = array_flip($subscriberIds); + $newIds = array_diff_key($subscriberIds, $usedIds); + $connection->beginTransaction(); try { - foreach ($subscriberIds as $subscriberId) { - if (in_array($subscriberId, $usedIds)) { - continue; - } + foreach ($newIds as $subscriberId) { $data = []; $data['queue_id'] = $queue->getId(); $data['subscriber_id'] = $subscriberId;