PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.36
OttoKit: All-in-One Automation Platform v1.1.36
1.1.37 1.1.36 1.1.35 1.1.34 1.1.33 1.1.32 1.1.31 1.1.30 1.1.29 1.1.28 1.1.27 1.1.9 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 1.0.23 1.0.24 1.0.25 1.0.26 1.0.27 1.0.28 1.0.29 1.0.30 1.0.31 1.0.32 1.0.33 1.0.34 1.0.35 1.0.36 1.0.37 1.0.38 1.0.39 1.0.40 1.0.41 1.0.42 1.0.43 1.0.44 1.0.45 1.0.46 1.0.47 1.0.48 1.0.49 1.0.50 1.0.51 1.0.52 1.0.53 1.0.54 1.0.55 1.0.56 1.0.57 1.0.58 1.0.59 1.0.60 1.0.61 1.0.62 1.0.63 1.0.64 1.0.65 1.0.66 1.0.67 1.0.68 1.0.69 1.0.7 1.0.70 1.0.71 1.0.72 1.0.73 1.0.74 1.0.75 1.0.76 1.0.77 1.0.78 1.0.79 1.0.8 1.0.80 1.0.81 1.0.82 1.0.83 1.0.84 1.0.85 1.0.86 1.0.87 1.0.88 1.0.89 1.0.9 1.0.90 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.20 1.1.21 1.1.22 1.1.23 1.1.24 1.1.25 1.1.26 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8
suretriggers / src / Integrations / peepso / actions / change-user-peepso-role.php
suretriggers / src / Integrations / peepso / actions Last commit date
add-post-sitewide-activity-stream.php 11 months ago change-user-peepso-role.php 11 months ago follow-user.php 11 months ago
change-user-peepso-role.php
123 lines
1 <?php
2 /**
3 * ChangeUserPeepsoRole.
4 * php version 5.6
5 *
6 * @category ChangeUserPeepsoRole
7 * @package SureTriggers
8 * @author BSF <username@example.com>
9 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
10 * @link https://www.brainstormforce.com/
11 * @since 1.0.0
12 */
13
14 namespace SureTriggers\Integrations\PeepSo\Actions;
15
16 use SureTriggers\Integrations\AutomateAction;
17 use SureTriggers\Traits\SingletonLoader;
18 use Exception;
19 use PeepSo;
20 use PeepSoUser;
21 use SureTriggers\Integrations\WordPress\WordPress;
22
23 /**
24 * ChangeUserPeepsoRole
25 *
26 * @category ChangeUserPeepsoRole
27 * @package SureTriggers
28 * @author BSF <username@example.com>
29 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
30 * @link https://www.brainstormforce.com/
31 * @since 1.0.0
32 */
33 class ChangeUserPeepsoRole extends AutomateAction {
34
35
36 /**
37 * Integration type.
38 *
39 * @var string
40 */
41 public $integration = 'PeepSo';
42
43 /**
44 * Action name.
45 *
46 * @var string
47 */
48 public $action = 'change_user_peepso_role';
49
50 use SingletonLoader;
51
52 /**
53 * Register a action.
54 *
55 * @param array $actions actions.
56 * @return array
57 */
58 public function register( $actions ) {
59 $actions[ $this->integration ][ $this->action ] = [
60 'label' => __( 'Change User PeepSo Role', 'suretriggers' ),
61 'action' => $this->action,
62 'function' => [ $this, 'action_listener' ],
63 ];
64 return $actions;
65 }
66
67 /**
68 * Action listener.
69 *
70 * @param int $user_id user_id.
71 * @param int $automation_id automation_id.
72 * @param array $fields fields.
73 * @param array $selected_options selectedOptions.
74 *
75 * @return array
76 * @throws Exception Exception.
77 */
78 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
79
80 if ( ! class_exists( 'PeepSoUser' ) || ! class_exists( 'PeepSo' ) ) {
81 return [];
82 }
83 $new_user_role = $selected_options['new_role'];
84 $system_roles = [
85 'member' => 'Community Member',
86 'admin' => 'Community Administrator',
87 'ban' => 'Banned',
88 'register' => 'Pending user email verification',
89 'verified' => 'Pending admin approval',
90 ];
91
92 if ( empty( $new_user_role ) || ! isset( $system_roles[ $new_user_role ] ) ) {
93 return [
94 'status' => 'error',
95 'message' => "The selected role doesn't exist",
96 ];
97 }
98
99 $user = PeepSoUser::get_instance( $user_id );
100
101 if ( 0 === $user_id || null === $user->get_id() ) {
102 return [
103 'status' => 'error',
104 'message' => 'Invalid User',
105 ];
106 }
107
108 // Don't allow banning administrators.
109 if ( PeepSo::is_admin( $user_id ) && 'ban' === $new_user_role ) {
110 return [
111 'status' => 'error',
112 'message' => 'You cannot ban administrators.',
113 ];
114 }
115
116 $user->approve_user();
117 $user->set_user_role( $new_user_role );
118 return WordPress::get_user_context( $user_id );
119 }
120 }
121
122 ChangeUserPeepsoRole::get_instance();
123