PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.33
OttoKit: All-in-One Automation Platform v1.1.33
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 / fluentcommunity / actions / add-user-to-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
add-user-to-space.php
144 lines
1 <?php
2 /**
3 * AddUserToSpace.
4 * php version 5.6
5 *
6 * @category AddUserToSpace
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\FluentCommunity\Actions;
15
16 use Exception;
17 use SureTriggers\Integrations\AutomateAction;
18 use SureTriggers\Traits\SingletonLoader;
19 use FluentCommunity\App\Services\Helper;
20
21 /**
22 * AddUserToSpace
23 *
24 * @category AddUserToSpace
25 * @package SureTriggers
26 * @author BSF
27 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
28 * @link https://www.brainstormforce.com/
29 * @since 1.0.0
30 */
31 class AddUserToSpace extends AutomateAction {
32
33 /**
34 * Integration type.
35 *
36 * @var string
37 */
38 public $integration = 'FluentCommunity';
39
40 /**
41 * Action name.
42 *
43 * @var string
44 */
45 public $action = 'fc_add_user_to_space';
46
47 use SingletonLoader;
48
49 /**
50 * Register a action.
51 *
52 * @param array $actions actions.
53 * @return array
54 */
55 public function register( $actions ) {
56
57 $actions[ $this->integration ][ $this->action ] = [
58 'label' => __( 'Add User to Space', 'suretriggers' ),
59 'action' => $this->action,
60 'function' => [ $this, 'action_listener' ],
61 ];
62
63 return $actions;
64 }
65
66 /**
67 * Action listener.
68 *
69 * @param int $user_id user ID.
70 * @param int $automation_id automation ID.
71 * @param array $fields fields.
72 * @param array $selected_options selected options.
73 *
74 * @return array|void
75 *
76 * @throws Exception Exception.
77 */
78 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
79 // Sanitize inputs.
80 $space_id = isset( $selected_options['space_id'] ) ? (int) sanitize_text_field( $selected_options['space_id'] ) : 0;
81 $user_email = isset( $selected_options['user_email'] ) ? sanitize_email( $selected_options['user_email'] ) : '';
82 $role = isset( $selected_options['role'] ) ? sanitize_text_field( $selected_options['role'] ) : '';
83 $by = 'by_automation';
84
85 // Check if class exists.
86 if ( ! class_exists( 'FluentCommunity\App\Services\Helper' ) ) {
87 return [
88 'status' => 'error',
89 'message' => 'Helper class not found.',
90 ];
91 }
92
93 $user = get_user_by( 'email', $user_email );
94
95 if ( ! $user ) {
96 return [
97 'status' => 'error',
98 'message' => 'User not found with the provided email.',
99 ];
100 }
101
102 // Validate space ID.
103 if ( ! $this->is_valid_space( $space_id ) ) {
104 return [
105 'status' => 'error',
106 'message' => 'Invalid Space ID.',
107 ];
108 }
109
110 // Add user to space.
111 try {
112 Helper::addToSpace( $space_id, $user->ID, $role, $by );
113 } catch ( Exception $e ) {
114 return [
115 'status' => 'error',
116 'message' => 'An error occurred: ' . $e->getMessage(),
117 ];
118 }
119
120 return [
121 'status' => 'success',
122 'message' => 'User added to space successfully',
123 'space_id' => $space_id,
124 'user_id' => $user->ID,
125 'role' => $role,
126 ];
127 }
128
129
130 /**
131 * Helper function to check if space ID is valid.
132 *
133 * @param int $space_id Space ID.
134 * @return bool True if valid, false otherwise.
135 */
136 private function is_valid_space( $space_id ) {
137 global $wpdb;
138 $space = $wpdb->get_row( $wpdb->prepare( "SELECT ID FROM {$wpdb->prefix}fcom_spaces WHERE ID = %d", $space_id ) );
139 return ( $space ) ? true : false;
140 }
141 }
142
143 AddUserToSpace::get_instance();
144