- Добавлена проверка на то, срабатывал ли триггер для конкретного email. Если...

- Добавлена проверка на то, срабатывал ли триггер для конкретного email. Если нет, то триггер выполняется, иначе игнорируется
parent eb7f5f89
...@@ -234,61 +234,66 @@ class TriggerTrigger extends \common\components\ActiveRecordModel ...@@ -234,61 +234,66 @@ class TriggerTrigger extends \common\components\ActiveRecordModel
$templateData['user_fio'] = (isset($user_fio)) ? $user_fio : ''; $templateData['user_fio'] = (isset($user_fio)) ? $user_fio : '';
/** @var \DateTime $time_now */ $sendExist = TriggerSchedule::find()->where(['trigger_id'=>$this->id, 'email'=>$email])->exists();
$time_now=new \DateTime();
/** @var MessageTemplate $templateModel */
$templateModel = MessageTemplate::findOne($this->message_template_id);
/** @var Templates $template */
$template = new Templates($this->message_template_id, $templateData);
$sender = new UnisenderAPI();
// Create the send list
$newList = $sender->createList();
$newListObject=Json::decode($newList);
if (array_key_exists('result', $newListObject) && is_array($newListObject['result']) && array_key_exists('id', $newListObject['result'])) {
$newListId=$newListObject['result']['id'];
// Subscribe user to new List
$sender->subscribe(['list_ids' => $newListId, 'fields[email]' => $email, 'double_optin' => 1]);
// Create new message
$newMessage=$sender->createEmailMessage('Школа аналитики "Арт Проект"', 'subscribe@task-on.com', $templateModel->subject, $template->getTemplate(), $newListId);
// Decode result
$newMessageObject=Json::decode($newMessage);
if (array_key_exists('result', $newMessageObject) && is_array($newMessageObject['result']) && array_key_exists('message_id', $newMessageObject['result'])) {
// Get the message ID
$newMessageId=$newMessageObject['result']['message_id'];
// Create new campaign
$newCampaign = $sender->createCampaign($newMessageId);
// Parse the result
$newCampaignObject = Json::decode($newCampaign);
if (array_key_exists('result', $newCampaignObject) && is_array($newCampaignObject['result']) && array_key_exists('campaign_id', $newCampaignObject['result'])) {
$newCampaignId = $newCampaignObject['result']['campaign_id'];
$schedule = new TriggerSchedule(); if (!$sendExist) {
$schedule->sended=1; /** @var \DateTime $time_now */
$time_now=new \DateTime();
/** @var MessageTemplate $templateModel */
$templateModel = MessageTemplate::findOne($this->message_template_id);
/** @var Templates $template */
$template = new Templates($this->message_template_id, $templateData);
$sender = new UnisenderAPI();
// Create the send list
$newList = $sender->createList();
$newListObject=Json::decode($newList);
if (array_key_exists('result', $newListObject) && is_array($newListObject['result']) && array_key_exists('id', $newListObject['result'])) {
$newListId=$newListObject['result']['id'];
// Subscribe user to new List
$sender->subscribe(['list_ids' => $newListId, 'fields[email]' => $email, 'double_optin' => 1]);
// Create new message
$newMessage=$sender->createEmailMessage('Школа аналитики "Арт Проект"', 'subscribe@task-on.com', $templateModel->subject, $template->getTemplate(), $newListId);
// Decode result
$newMessageObject=Json::decode($newMessage);
if (array_key_exists('result', $newMessageObject) && is_array($newMessageObject['result']) && array_key_exists('message_id', $newMessageObject['result'])) {
// Get the message ID
$newMessageId=$newMessageObject['result']['message_id'];
// Create new campaign
$newCampaign = $sender->createCampaign($newMessageId);
// Parse the result
$newCampaignObject = Json::decode($newCampaign);
if (array_key_exists('result', $newCampaignObject) && is_array($newCampaignObject['result']) && array_key_exists('campaign_id', $newCampaignObject['result'])) {
$newCampaignId = $newCampaignObject['result']['campaign_id'];
$schedule = new TriggerSchedule();
$schedule->sended=1;
// $schedule->checked=(array_key_exists('checked', $params)) ? $params['checked'] : 0; // $schedule->checked=(array_key_exists('checked', $params)) ? $params['checked'] : 0;
$schedule->template_id=$this->message_template_id; $schedule->template_id=$this->message_template_id;
$schedule->message_id=$newMessageId; $schedule->trigger_id=$this->id;
$schedule->message=$template->getTemplate(); $schedule->message_id=$newMessageId;
$schedule->email=$email; $schedule->message=$template->getTemplate();
$schedule->time=$time_now->format('Y-m-d H:i:s'); $schedule->email=$email;
$schedule->date_create=$time_now->format('Y-m-d H:i:s'); $schedule->time=$time_now->format('Y-m-d H:i:s');
$schedule->list_id=$newListId; $schedule->date_create=$time_now->format('Y-m-d H:i:s');
$schedule->campaign_id=$newCampaignId; $schedule->list_id=$newListId;
if ($schedule->save()) { $schedule->campaign_id=$newCampaignId;
return true; if ($schedule->save()) {
return true;
} else {
return (current(current($schedule->getErrors())));
}
} else { } else {
return (current(current($schedule->getErrors()))); $error = (array_key_exists('error', $newCampaignObject)) ? $newCampaignObject['error'].' (createCampaign)' : 'Неизвестная ошибка (CreateCampaign)';
return $error;
} }
} else { } else {
$error = (array_key_exists('error', $newCampaignObject)) ? $newCampaignObject['error'].' (createCampaign)' : 'Неизвестная ошибка (CreateCampaign)'; $error = (array_key_exists('error', $newMessageObject)) ? $newMessageObject['error'].' (createMessage)' : 'Неизвестная ошибка (CreateMessage)';
return $error; return $error;
} }
} else { } else {
$error = (array_key_exists('error', $newMessageObject)) ? $newMessageObject['error'].' (createMessage)' : 'Неизвестная ошибка (CreateMessage)'; $error = (array_key_exists('error', $newListObject)) ? $newListObject['error'].' (createList)' : 'Неизвестная ошибка (CreateList)';
return $error; return $error;
} }
} else {
$error = (array_key_exists('error', $newListObject)) ? $newListObject['error'].' (createList)' : 'Неизвестная ошибка (CreateList)';
return $error;
} }
} }
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment