Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
taskonsite-архив-перенесен
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Packages
Packages
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Dmitry Korolev
taskonsite-архив-перенесен
Commits
55081748
Commit
55081748
authored
Mar 18, 2016
by
Шакарим Сапа
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- Добавлено действие срабатывающее ПОСЛЕ подписки пользователя
parent
8649d05a
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
29 additions
and
49 deletions
+29
-49
common/modules/users/models/User.php
common/modules/users/models/User.php
+29
-49
No files found.
common/modules/users/models/User.php
View file @
55081748
...
...
@@ -6,6 +6,7 @@ use common\modules\messageTemplate\controllers\TemplateAdminController;
use
common\modules\messageTemplate\models\MessageTemplate
;
use
common\modules\triggers\components\conditions\Conditions
;
use
common\modules\triggers\components\conditions\conditions\CheckUserToRegistration
;
use
common\modules\triggers\components\conditions\conditions\CheckUserToSubscribe
;
use
common\modules\triggers\models\AuthHashes
;
use
common\modules\triggers\models\TriggerCondition
;
use
common\modules\triggers\models\TriggerLogs
;
...
...
@@ -631,51 +632,30 @@ class User extends \common\components\ActiveRecordModel implements IdentityInter
}
/**
* @param $template_id
* @param array $params
* @return bool
*/
public
function
afterSubscribe
(
$template_id
,
$params
=
array
()){
/** @var \DateTime $time_now */
$time_now
=
new
\DateTime
();
/** @var MessageTemplate $templateModel */
$templateModel
=
MessageTemplate
::
findOne
(
$template_id
);
/** @var Templates $template */
$template
=
new
Templates
(
$template_id
,
$params
);
$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
'Письмо не было отправлено'
;
public
function
afterSubscribe
(
$params
=
array
()){
/** @var TriggerTrigger[] $actualTriggers */
$actualTriggers
=
TriggerTrigger
::
getActualTriggers
();
foreach
(
$actualTriggers
as
$trigger
)
{
$exists
=
TriggerCondition
::
find
()
->
where
([
'trigger_id'
=>
$trigger
->
id
,
'condition_id'
=>
CheckUserToSubscribe
::
CONDITION_ID
])
->
exists
();
$count
=
TriggerCondition
::
find
()
->
where
([
'trigger_id'
=>
$trigger
->
id
])
->
count
();
// Добавляем в расписание срабатывание триггера регистрации только при условии что у триггера условие регистрации есть и оно там одно
if
(
$exists
===
true
&&
$count
==
1
)
{
$init
=
$trigger
->
initAction
(
$params
);
if
(
$init
===
true
)
{
$curl
=
curl_init
();
curl_setopt
(
$curl
,
CURLOPT_URL
,
Yii
::
$app
->
urlManager
->
createAbsoluteUrl
(
'/triggers/default/rechecktriggers'
));
curl_setopt
(
$curl
,
CURLOPT_RETURNTRANSFER
,
true
);
if
(
!
curl_exec
(
$curl
))
{
$this
->
addError
(
'email'
,
curl_error
(
$curl
));
return
false
;
}
return
true
;
}
else
{
$this
->
addError
(
'email'
,
$init
);
return
false
;
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment