Beispiel #1
0
 /**
  * Links queue to store
  *
  * @param ModelQueue $queue
  * @return $this
  */
 public function setStores(ModelQueue $queue)
 {
     $connection = $this->getConnection();
     $connection->delete($this->getTable('newsletter_queue_store_link'), ['queue_id = ?' => $queue->getId()]);
     $stores = $queue->getStores();
     if (!is_array($stores)) {
         $stores = [];
     }
     foreach ($stores as $storeId) {
         $data = [];
         $data['store_id'] = $storeId;
         $data['queue_id'] = $queue->getId();
         $connection->insert($this->getTable('newsletter_queue_store_link'), $data);
     }
     $this->removeSubscribersFromQueue($queue);
     if (count($stores) == 0) {
         return $this;
     }
     $subscribers = $this->_subscriberCollection->addFieldToFilter('store_id', ['in' => $stores])->useOnlySubscribed()->load();
     $subscriberIds = [];
     foreach ($subscribers as $subscriber) {
         $subscriberIds[] = $subscriber->getId();
     }
     if (count($subscriberIds) > 0) {
         $this->addSubscribersToQueue($queue, $subscriberIds);
     }
     return $this;
 }