Example #1
0
 /**
  * Handles asynchronous email sending during corresponding
  * cron job.
  *
  * Also method is used in the next events:
  *
  * - config_data_sales_email_general_async_sending_disabled
  *
  * Works only if asynchronous email sending is enabled
  * in global settings.
  *
  * @return void
  */
 public function execute()
 {
     if ($this->globalConfig->getValue('sales_email/general/async_sending')) {
         $this->entityCollection->addFieldToFilter('send_email', ['eq' => 1]);
         $this->entityCollection->addFieldToFilter('email_sent', ['null' => true]);
         /** @var \Magento\Sales\Model\AbstractModel $item */
         foreach ($this->entityCollection->getItems() as $item) {
             if ($this->emailSender->send($item, true)) {
                 $this->entityResource->save($item->setEmailSent(true));
             }
         }
     }
 }