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/dynamics/user/UserAutomationAction.php +0 -104 11.0.3 → 11.1.1 View file →
@@ -1,104 +1,0 @@
1 -<?php
2 -
3 -trait UserAutomationActions
4 -{
5 - public function onAcymDeclareActions(array &$actions): void
6 - {
7 - $allGroups = acym_getGroups();
8 - $groups = ['none' => acym_translation('ACYM_SELECT_GROUP')];
9 - foreach ($allGroups as $group) {
10 - $groups[$group->id] = $group->text;
11 - }
12 - unset($groups[ACYM_ADMIN_GROUP]);
13 -
14 - $actions['acy_group_action'] = new stdClass();
15 - $actions['acy_group_action']->name = acym_translation('ACYM_ACTION_ON_GROUPS');
16 - ob_start();
17 - include acym_getPartial('actions', 'acy_group_action');
18 - $actions['acy_group_action']->option = ob_get_clean();
19 - }
20 -
21 - public function onAcymDeclareActionsScenario(array &$actions): void
22 - {
23 - $this->onAcymDeclareActions($actions);
24 - }
25 -
26 - public function onAcymProcessAction_acy_group_action(&$query, $action)
27 - {
28 - $nbAffected = 0;
29 -
30 - $queryBuilder = clone $query;
31 - $queryBuilder->where[] = 'user.cms_id != 0';
32 - $queryBuilder->where[] = 'user.cms_id IS NOT NULL';
33 - $userIds = acym_loadResultArray($queryBuilder->getQuery(['user.cms_id']));
34 -
35 - if (empty($userIds)) {
36 - return '';
37 - }
38 -
39 - foreach ($userIds as $userId) {
40 - $userAffected = false;
41 -
42 - if (ACYM_CMS === 'joomla') {
43 - if (!empty($action['add']) && $action['add'] !== 'none') {
44 - $affected = acym_query('INSERT IGNORE INTO #__user_usergroup_map (`user_id`, `group_id`) VALUES ('.intval($userId).', '.intval($action['add']).')');
45 - if ($affected) {
46 - $userAffected = true;
47 - }
48 - }
49 -
50 - if (!empty($action['remove']) && $action['remove'] !== 'none') {
51 - $affected = acym_query('DELETE FROM #__user_usergroup_map WHERE `group_id` = '.intval($action['remove']).' AND `user_id` = '.intval($userId));
52 - if ($affected) {
53 - $userAffected = true;
54 - }
55 - }
56 - } else {
57 - $user = new WP_User($userId);
58 - if (empty($user->ID)) {
59 - continue;
60 - }
61 -
62 - if (!empty($action['add']) && $action['add'] !== 'none' && !in_array($action['add'], $user->roles)) {
63 - $user->add_role($action['add']);
64 - $userAffected = true;
65 - }
66 -
67 - if (!empty($action['remove']) && $action['remove'] !== 'none' && in_array($action['remove'], $user->roles)) {
68 - $user->remove_role($action['remove']);
69 - $userAffected = true;
70 - }
71 - }
72 -
73 - if ($userAffected) {
74 - $nbAffected++;
75 - }
76 - }
77 -
78 - return acym_translationSprintf('ACYM_ACTION_ON_GROUPS_RESULT', $nbAffected);
79 - }
80 -
81 - public function onAcymDeclareSummary_actions(&$automationAction)
82 - {
83 - if (empty($automationAction['acy_group_action'])) {
84 - return;
85 - }
86 -
87 - $allGroups = acym_getGroups();
88 - $summary = '';
89 -
90 - if (!empty($automationAction['acy_group_action']['remove']) && $automationAction['acy_group_action']['remove'] !== 'none') {
91 - $groupIdToRemove = $automationAction['acy_group_action']['remove'];
92 - $groupNameToRemove = isset($allGroups[$groupIdToRemove]) ? $allGroups[$groupIdToRemove]->text : acym_translation('ACYM_UNKNOWN_GROUP');
93 - $summary .= acym_translationSprintf('ACYM_GROUP_ACTION_SUMARY_DELETE', $groupNameToRemove).'<br />';
94 - }
95 -
96 - if (!empty($automationAction['acy_group_action']['add']) && $automationAction['acy_group_action']['add'] !== 'none') {
97 - $groupIdToAdd = $automationAction['acy_group_action']['add'];
98 - $groupNameToAdd = isset($allGroups[$groupIdToAdd]) ? $allGroups[$groupIdToAdd]->text : acym_translation('ACYM_UNKNOWN_GROUP');
99 - $summary .= acym_translationSprintf('ACYM_GROUP_ACTION_SUMARY_ADD', $groupNameToAdd);
100 - }
101 -
102 - $automationAction = $summary;
103 - }
104 -}