PluginProbe
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress / 11.1.0
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress v11.1.0
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/Segments/Campaign.php +15 -6 10.0.1 → 11.1.0 View file →
@@ -6,9 +6,9 @@
6 6 use AcyMailing\Helpers\AutomationHelper;
7 7
8 8 trait Campaign
9 9 {
10 - public function countSegmentById($segmentId, $listsIds, $ajax = true, $exclude = false): int
10 + public function countSegmentById(int $segmentId, array $listsIds, bool $ajax = true, bool $exclude = false): int
11 11 {
12 12 acym_arrayToInteger($listsIds);
13 13
14 14 if (empty($listsIds)) {
@@ -71,13 +71,18 @@
71 71 return $numberOfRecipients;
72 72 }
73 73 }
74 74
75 - public function countGlobalBySegmentId()
75 + public function countGlobalBySegmentId(): void
76 76 {
77 + wp_verify_nonce(acym_getVar('cmd', '_wpnonce'), 'acymnonce') || die('Invalid Token');
78 +
77 79 $segmentId = acym_getVar('int', 'segmentId', 0);
78 80 $isExclude = acym_getVar('boolean', 'exclude', false);
79 - $listsIds = json_decode(acym_getVar('string', 'lists', '[]'));
81 + $listsIds = json_decode(acym_getVar('string', 'lists', '[]'), true);
82 + if (empty($listsIds)) {
83 + $listsIds = [];
84 + }
80 85
81 86 if (empty($segmentId)) {
82 87 acym_sendAjaxResponse('', ['count' => $this->countSegmentByParams([], $listsIds, $isExclude)]);
83 88 }
@@ -83,12 +88,16 @@
83 88 }
84 89 acym_sendAjaxResponse('', ['count' => $this->countSegmentById($segmentId, $listsIds, true, $isExclude)]);
85 90 }
86 91
87 - public function saveFromCampaign()
92 + public function saveFromCampaign(): void
88 93 {
94 + wp_verify_nonce(acym_getVar('cmd', '_wpnonce'), 'acymnonce') || die('Invalid Token');
95 +
96 + $filters = acym_getVar('array', 'acym_action', []);
97 + acym_blockRestrictedFilterAjax($filters);
98 +
89 99 $name = acym_getVar('string', 'segment_name', '');
90 - $filters = acym_getVar('array', 'acym_action', []);
91 100
92 101 $segmentClass = new SegmentClass();
93 102
94 103 $segment = new \stdClass();
@@ -98,9 +107,9 @@
98 107 $segment->active = 1;
99 108 $segment->filters = json_encode($filters['filters']);
100 109
101 110 $segmentId = $segmentClass->save($segment);
102 - if ($segmentId) {
111 + if (!empty($segmentId)) {
103 112 acym_sendAjaxResponse(acym_translation('ACYM_SEGMENT_WELL_SAVE'), ['segment_id' => $segmentId]);
104 113 } else {
105 114 acym_sendAjaxResponse(acym_translation('ACYM_COULD_NOT_SAVE_SEGMENT'), [], false);
106 115 }