Commit 8a90a746 authored by Олег Гиммельшпах's avatar Олег Гиммельшпах

Merge branch 'master' of git.task-on.com:ktask/task-on.com

parents bc897640 87f2cb09
<?php
namespace common\modules\triggers\components\conditions\conditions;
use common\components\UnisenderAPI;
use common\modules\triggers\components\conditions\vendor\ConditionBase;
use common\modules\triggers\components\conditions\vendor\ConditionInterface;
class CheckUserToRegistration extends ConditionBase implements ConditionInterface{
const CONDITION_ID = 6;
public $name = 'Пользователь зарегистрировался';
/**
* @param null|string $conditionName
* @return $this mixed
*/
public static function init($conditionName=__CLASS__){
return parent::init($conditionName);
}
/**
* @param $message
* @return bool
*/
public function check($message){
return true;
}
}
\ No newline at end of file
...@@ -9,6 +9,9 @@ return [ ...@@ -9,6 +9,9 @@ return [
'check-email-to-unsubscribed' => [ 'check-email-to-unsubscribed' => [
'class' => 'common\modules\triggers\components\conditions\conditions\CheckEmailToUnsubscribed', 'class' => 'common\modules\triggers\components\conditions\conditions\CheckEmailToUnsubscribed',
], ],
'check-user-to-registration' => [
'class' => 'common\modules\triggers\components\conditions\conditions\CheckUserToRegistration',
],
'check-clicking-on-the-link' => [ 'check-clicking-on-the-link' => [
'class' => 'common\modules\triggers\components\conditions\conditions\CheckClickingOnTheLink', 'class' => 'common\modules\triggers\components\conditions\conditions\CheckClickingOnTheLink',
'params' => [ 'params' => [
......
...@@ -2,10 +2,14 @@ ...@@ -2,10 +2,14 @@
namespace common\modules\triggers\models; namespace common\modules\triggers\models;
use common\modules\messageTemplate\models\MessageTemplate;
use common\modules\triggers\components\conditions\Conditions; use common\modules\triggers\components\conditions\Conditions;
use Faker\Provider\tr_TR\DateTime; use Faker\Provider\tr_TR\DateTime;
use Yii; use Yii;
use common\modules\messageTemplate\components\Templates;
use common\modules\users\models\User; use common\modules\users\models\User;
use common\components\UnisenderAPI;
use yii\helpers\Json;
/** /**
* This is the model class for table "trigger_trigger". * This is the model class for table "trigger_trigger".
...@@ -208,6 +212,50 @@ class TriggerTrigger extends \common\components\ActiveRecordModel ...@@ -208,6 +212,50 @@ class TriggerTrigger extends \common\components\ActiveRecordModel
* @param null $message * @param null $message
*/ */
public function initAction($message=null){ public function initAction($message=null){
echo "ASD"; /** @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);
$email = $this->email;
$sender = new UnisenderAPI();
// Create the send list
$newList = $sender->createList();
$newListObject=Json::decode($newList);
if (array_key_exists('result', $newListObject) && 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($this->name, $email, $templateModel->subject, $template->getTemplate(), $newListId);
// Decode result
$newMessageObject=Json::decode($newMessage);
if (array_key_exists('result', $newMessageObject) && 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) && array_key_exists('campaign_id', $newCampaignObject['result'])) {
$newCampaignId = $newCampaignObject['result']['campaign_id'];
$schedule = new TriggerSchedule();
$schedule->sended=1;
$schedule->checked=0;
$schedule->message_id=$newMessageId;
$schedule->message=$template->getTemplate();
$schedule->email=$email;
$schedule->time=$time_now->format('Y-m-d H:i:s');
$schedule->date_create=$time_now->format('Y-m-d H:i:s');
$schedule->list_id=$newListId;
$schedule->campaign_id=$newCampaignId;
if (!$schedule->save()) {
echo 'Письмо не было отправлено';
}
}
}
}
} }
} }
...@@ -4,7 +4,10 @@ namespace common\modules\users\models; ...@@ -4,7 +4,10 @@ namespace common\modules\users\models;
use common\components\UnisenderAPI; use common\components\UnisenderAPI;
use common\modules\messageTemplate\controllers\TemplateAdminController; use common\modules\messageTemplate\controllers\TemplateAdminController;
use common\modules\messageTemplate\models\MessageTemplate; use common\modules\messageTemplate\models\MessageTemplate;
use common\modules\triggers\components\conditions\conditions\CheckUserToRegistration;
use common\modules\triggers\models\TriggerCondition;
use common\modules\triggers\models\TriggerSchedule; use common\modules\triggers\models\TriggerSchedule;
use common\modules\triggers\models\TriggerTrigger;
use Yii; use Yii;
use yii\base\NotSupportedException; use yii\base\NotSupportedException;
use yii\behaviors\TimestampBehavior; use yii\behaviors\TimestampBehavior;
...@@ -548,13 +551,18 @@ class User extends \common\components\ActiveRecordModel implements IdentityInter ...@@ -548,13 +551,18 @@ class User extends \common\components\ActiveRecordModel implements IdentityInter
/** /**
* @param $template_id * @param $template_id
*/ */
public function afterRegistration($template_id, $params=array()){ public function afterRegistration(){
/** @var TriggerTrigger[] $actualTriggers */
$actualTriggers = TriggerTrigger::getActualTriggers();
foreach($actualTriggers as $trigger) {
$exists = TriggerCondition::find()->where(['trigger_id'=>$trigger->id, 'condition_id'=>CheckUserToRegistration::CONDITION_ID])->exists();
if ($exists===true) {
/** @var \DateTime $time_now */ /** @var \DateTime $time_now */
$time_now=new \DateTime(); $time_now=new \DateTime();
/** @var MessageTemplate $templateModel */ /** @var MessageTemplate $templateModel */
$templateModel = MessageTemplate::findOne($template_id); $templateModel = MessageTemplate::findOne($trigger->message_template_id);
/** @var Templates $template */ /** @var Templates $template */
$template = new Templates($template_id, $params); $template = new Templates($trigger->message_template_id);
$email = $this->email; $email = $this->email;
$sender = new UnisenderAPI(); $sender = new UnisenderAPI();
// Create the send list // Create the send list
...@@ -595,6 +603,8 @@ class User extends \common\components\ActiveRecordModel implements IdentityInter ...@@ -595,6 +603,8 @@ class User extends \common\components\ActiveRecordModel implements IdentityInter
} }
} }
} }
}
}
/** /**
* @param $template_id * @param $template_id
......
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