PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.32
OttoKit: All-in-One Automation Platform v1.1.32
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 / fluentcommunity / actions / remove-user-from-space.php
suretriggers / src / Integrations / fluentcommunity / actions Last commit date
add-user-to-course.php 1 year ago add-user-to-space.php 1 year ago create-lesson-in-course.php 10 months ago create-new-post-feed.php 1 year ago fetch-members.php 6 months ago get-all-courses-list.php 1 year ago get-all-spaces-list.php 1 year ago like-post.php 6 months ago list-course-sections.php 10 months ago list-posts-in-space.php 6 months ago remove-user-from-course.php 1 year ago remove-user-from-space.php 1 year ago reply-to-post.php 7 months ago
remove-user-from-space.php
135 lines
1 <?php
2 /**
3 * RemoveUserFromSpace
4 *
5 * @category RemoveUserFromSpace
6 * @package SureTriggers
7 * @author BSF <username@example.com>
8 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
9 * @link https://www.brainstormforce.com/
10 * @since 1.0.0
11 */
12
13 namespace SureTriggers\Integrations\FluentCommunity\Actions;
14
15 use Exception;
16 use SureTriggers\Integrations\AutomateAction;
17 use SureTriggers\Traits\SingletonLoader;
18 use FluentCommunity\App\Services\Helper;
19
20 /**
21 * Class RemoveUserFromSpace
22 *
23 * @category RemoveUserFromSpace
24 * @package SureTriggers
25 * @author BSF <username@example.com>
26 * @since 1.0.0
27 */
28 class RemoveUserFromSpace extends AutomateAction {
29
30 /**
31 * Integration type.
32 *
33 * @var string
34 */
35 public $integration = 'FluentCommunity';
36
37 /**
38 * Action name.
39 *
40 * @var string
41 */
42 public $action = 'fc_remove_user_from_space';
43
44 use SingletonLoader;
45
46 /**
47 * Register the action.
48 *
49 * @param array $actions Actions array.
50 *
51 * @return array Modified actions array.
52 */
53 public function register( $actions ) {
54 $actions[ $this->integration ][ $this->action ] = [
55 'label' => __( 'Remove User from Space', 'suretriggers' ),
56 'action' => $this->action,
57 'function' => [ $this, 'action_listener' ],
58 ];
59 return $actions;
60 }
61
62 /**
63 * Action listener for removing user from space.
64 *
65 * @param int $user_id User ID.
66 * @param int $automation_id Automation ID.
67 * @param array $fields Fields data.
68 * @param array $selected_options Selected options.
69 *
70 * @return array|void Status and message.
71 *
72 * @throws Exception If removal fails.
73 */
74 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
75 $space_id = isset( $selected_options['space_id'] ) ? (int) sanitize_text_field( $selected_options['space_id'] ) : 0;
76 $user_email = isset( $selected_options['user_email'] ) ? sanitize_email( $selected_options['user_email'] ) : '';
77 $by = 'by_automation';
78
79 if ( empty( $space_id ) || ! $this->is_valid_space_id( $space_id ) ) {
80 return [
81 'status' => 'error',
82 'message' => 'Invalid space ID.',
83 ];
84 }
85
86 $user = get_user_by( 'email', $user_email );
87
88 if ( ! $user ) {
89 return [
90 'status' => 'error',
91 'message' => 'User not found with the provided email.',
92 ];
93 }
94
95 if ( ! class_exists( 'FluentCommunity\App\Services\Helper' ) ) {
96 return [
97 'status' => 'error',
98 'message' => 'Helper class not found.',
99 ];
100 }
101
102 try {
103 Helper::removeFromSpace( $space_id, $user->ID, $by );
104 return [
105 'status' => 'success',
106 'message' => 'User removed from space successfully',
107 'space_id' => $space_id,
108 'user_id' => $user->ID,
109 ];
110 } catch ( Exception $e ) {
111 return [
112 'status' => 'error',
113 'message' => 'Error removing user from space: ' . $e->getMessage(),
114 ];
115 }
116 }
117
118 /**
119 * Validate space ID.
120 *
121 * @param int $space_id Space ID.
122 *
123 * @return bool Whether space ID is valid.
124 */
125 private function is_valid_space_id( $space_id ) {
126 global $wpdb;
127 // Directly prepare the query and pass to get_var.
128 return $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->prefix}fcom_spaces WHERE ID = %d", $space_id ) ) > 0;
129 }
130
131
132 }
133
134 RemoveUserFromSpace::get_instance();
135