PluginProbe
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress / 11.1.1
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress v11.1.1
11.1.1 11.1.0 11.0.5 11.0.4 11.0.3 11.0.2 11.0.1 11.0.0 10.11.1 10.11.0 10.10.2 10.10.1 10.10.0 10.9.1 trunk 10.0.0 10.0.1 10.1.0 10.1.1 10.1.2 10.1.3 10.1.4 10.2.0 10.2.1 10.2.2 All 62 releases
← All changes | back/Controllers/Campaigns/AutoCampaigns.php +0 -201 11.0.2 → 11.1.1 View file →
@@ -1,201 +1,0 @@
1 -<?php
2 -
3 -namespace AcyMailing\Controllers\Campaigns;
4 -
5 -use AcyMailing\Classes\CampaignClass;
6 -use AcyMailing\Classes\MailClass;
7 -
8 -
9 -trait AutoCampaigns
10 -{
11 - public function campaigns_auto(): void
12 - {
13 - if (!acym_level(ACYM_ENTERPRISE)) {
14 - $this->campaigns();
15 - }
16 - }
17 -
18 - private function getIsPendingGenerated(array &$data): void
19 - {
20 - $campaignClass = new CampaignClass();
21 - $campaingsGenerated = $campaignClass->getAllCampaignsGeneratedWaiting();
22 - $data['generatedPending'] = !empty($campaingsGenerated);
23 - }
24 -
25 - private function getAutoCampaignsFrequency(array &$data): void
26 - {
27 - foreach ($data['allCampaigns'] as $key => $campaign) {
28 - if (empty($campaign->sending_params)) continue;
29 - $textToDisplay = new \stdClass();
30 - $textToDisplay->triggers = $campaign->sending_params;
31 - acym_trigger('onAcymDeclareSummary_triggers', [&$textToDisplay], 'plgAcymTime');
32 -
33 - if (empty($textToDisplay->triggers['trigger_type']) || empty($textToDisplay->triggers[$textToDisplay->triggers['trigger_type']])) {
34 - $data['allCampaigns'][$key]->sending_params['trigger_text'] = acym_translation('ACYM_ERROR_WHILE_RECOVERING_TRIGGERS');
35 - $message = acym_translationSprintf('ACYM_ERROR_WHILE_RECOVERING_TRIGGERS_NOTIF_X', $campaign->id);
36 - $message .= ' <a id="acym__queue__configure-cron" href="'.acym_completeLink('campaigns&task=campaigns_auto').'">'.acym_translation(
37 - 'ACYM_GOTO_CAMPAIGNS_AUTO'
38 - ).'</a>';
39 - $message .= '<p class="acym__do__not__remindme" title="auto_campaigns_triggers_reminder">'.acym_translation('ACYM_DO_NOT_REMIND_ME').'</p>';
40 -
41 - $notification = [
42 - 'name' => 'auto_campaigns_triggers_reminder',
43 - 'removable' => 1,
44 - ];
45 - acym_enqueueMessage($message, 'warning', true, [$notification]);
46 - } else {
47 - $data['allCampaigns'][$key]->sending_params['trigger_text'] = $textToDisplay->triggers[$textToDisplay->triggers['trigger_type']];
48 - }
49 - }
50 - }
51 -
52 - public function summaryGenerated(): void
53 - {
54 - $campaignId = acym_getVar('int', 'campaignId', 0);
55 - $mailClass = new MailClass();
56 -
57 - acym_setVar('layout', 'summary_generated');
58 -
59 - $generatedCampaign = $this->loadCampaignMail($campaignId);
60 -
61 - if (empty($generatedCampaign)) {
62 - acym_enqueueMessage(acym_translation('ACYM_COULD_NOT_LOAD_CAMPAIGN'), 'error');
63 - $this->listing();
64 -
65 - return;
66 - }
67 -
68 - $campaign = $generatedCampaign['campaign'];
69 - $mail = $generatedCampaign['mail'];
70 -
71 - $lists = $mailClass->getAllListsByMailId($mail->id);
72 -
73 - if (empty($lists)) {
74 - $this->listing();
75 -
76 - return;
77 - }
78 -
79 - $parentCampaign = $this->loadCampaignMail((int)$campaign->parent_id);
80 - if (empty($parentCampaign)) {
81 - $parentCampaign = [
82 - 'campaign' => false,
83 - 'mail' => false,
84 - ];
85 - }
86 -
87 - //if campaign wait for confirmation
88 - $campaign->waiting_confirmation = false;
89 - if ($campaign->draft && $campaign->active) {
90 - $campaign->waiting_confirmation = true;
91 - }
92 - //if campaign canceled
93 - $campaign->canceled = false;
94 - if (!$campaign->draft && !$campaign->active) {
95 - $campaign->canceled = true;
96 - }
97 -
98 - $data = [
99 - 'campaign' => $campaign,
100 - 'mailId' => $campaign->mail_id,
101 - 'mail' => $mail,
102 - 'lists' => $lists,
103 - 'parent_campaign' => $parentCampaign['campaign'],
104 - 'parent_mail' => $parentCampaign['mail'],
105 - 'mailClass' => $mailClass,
106 - ];
107 -
108 - $this->prepareMultilingual($data, false);
109 - $this->prepareAllMailsForMultilingual($data);
110 -
111 - $this->breadcrumb[$mail->name] = acym_completeLink('campaigns&task=summaryGenerated&campaignId='.$campaign->id);
112 - parent::display($data);
113 - }
114 -
115 - protected function changeStatusGeneratedCampaign(string $statusToApply = 'disable'): void
116 - {
117 - $campaignId = acym_getVar('int', 'campaignId', 0);
118 - $campaignClass = new CampaignClass();
119 -
120 - $campaign = $this->loadCampaignMail($campaignId);
121 -
122 - if (empty($campaign)) {
123 - acym_enqueueMessage(acym_translation('ACYM_COULD_NOT_LOAD_CAMPAIGN'), 'error');
124 - $this->listing();
125 -
126 - return;
127 - }
128 -
129 - $campaign = $campaign['campaign'];
130 -
131 - if ('disable' === $statusToApply) {
132 - $campaign->sent = 0;
133 - $campaign->active = 0;
134 - $campaign->draft = 0;
135 - $successMsg = acym_translation('ACYM_CAMPAIGN_HAS_BEEN_DISABLED');
136 - } else {
137 - $campaign->active = 1;
138 - $campaign->draft = 1;
139 - $successMsg = acym_translation('ACYM_CAMPAIGN_HAS_BEEN_ENABLED');
140 - }
141 -
142 - $savedCampaignId = $campaignClass->save($campaign);
143 - if (!empty($savedCampaignId)) {
144 - acym_enqueueMessage($successMsg);
145 - } else {
146 - acym_enqueueMessage(acym_translation('ACYM_ERROR_SAVING'), 'error');
147 - }
148 -
149 - if ('enable' === $statusToApply) {
150 - acym_setVar('campaignId', $campaignId);
151 - $this->summaryGenerated();
152 - } else {
153 - acym_setVar('campaigns_status', 'generated');
154 - $this->listing();
155 - }
156 - }
157 -
158 - public function disableGeneratedCampaign(): void
159 - {
160 - wp_verify_nonce(acym_getVar('cmd', '_wpnonce'), 'acymnonce') || die('Invalid Token');
161 -
162 - $this->changeStatusGeneratedCampaign();
163 - }
164 -
165 - public function enableGeneratedCampaign(): void
166 - {
167 - wp_verify_nonce(acym_getVar('cmd', '_wpnonce'), 'acymnonce') || die('Invalid Token');
168 -
169 - $this->changeStatusGeneratedCampaign('enable');
170 - }
171 -
172 - private function loadCampaignMail(int $campaignId): array
173 - {
174 - if (empty($campaignId)) {
175 - return [];
176 - }
177 -
178 - $campaignClass = new CampaignClass();
179 - $mailClass = new MailClass();
180 -
181 - $campaign = $campaignClass->getOneById($campaignId);
182 - if (empty($campaign)) {
183 - return [];
184 - }
185 -
186 - $mail = $mailClass->getOneById($campaign->mail_id);
187 - if (empty($mail)) {
188 - return [];
189 - }
190 -
191 - if (empty($mail->from_name)) $mail->from_name = $this->config->get('from_name');
192 - if (empty($mail->from_email)) $mail->from_email = $this->config->get('from_email');
193 - if (empty($mail->reply_to_name)) $mail->reply_to_name = $this->config->get('replyto_name');
194 - if (empty($mail->reply_to_email)) $mail->reply_to_email = $this->config->get('replyto_email');
195 -
196 - return [
197 - 'campaign' => $campaign,
198 - 'mail' => $mail,
199 - ];
200 - }
201 -}