/** * Добавляет записи для рассылки в таблицу рассылки * * @param SiteContentInterface | \app\models\SubscribeItem $item тема письма */ public static function add($item) { if ($item instanceof SiteContentInterface) { $subscribeItem = $item->getMailContent(); } else { $subscribeItem = $item; } switch ($subscribeItem->type) { case self::TYPE_NEWS: $where = ['subscribe_is_news' => 1]; break; case self::TYPE_SITE_UPDATE: $where = ['subscribe_is_site_update' => 1]; break; case self::TYPE_MANUAL: $where = ['subscribe_is_tesla' => 1]; // $where = ['subscribe_is_test' => 1]; break; } $emailList = User::query($where)->select('email')->andWhere(['not', ['email' => null]])->andWhere(['not', ['email' => '']])->andWhere(['is_active' => 1])->column(); // VarDumper::dump(count($emailList),3,false);exit; $rows = []; foreach ($emailList as $email) { $urlUnSubscribe = Url::to(['subscribe/unsubscribe', 'mail' => $email, 'type' => $subscribeItem->type, 'hash' => self::hashGenerate($email, $subscribeItem->type)], true); SubscribeMailItem::insert(['text' => str_replace('{linkUnsubscribe}', $urlUnSubscribe, $subscribeItem->text), 'html' => str_replace('{linkUnsubscribe}', $urlUnSubscribe, $subscribeItem->html), 'subject' => $subscribeItem->subject, 'mail' => $email, 'date_insert' => time()]); $rows[] = $email; } \Yii::info($rows, 'tg\\subscribe'); }