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-course.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-course.php
130 lines
1 <?php
2 /**
3 * AddUserToCourse.
4 * php version 5.6
5 *
6 * @category AddUserToCourse
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\Modules\Course\Services\CourseHelper;
20
21 /**
22 * AddUserToCourse
23 *
24 * @category AddUserToCourse
25 * @package SureTriggers
26 * @since 1.0.0
27 */
28 class AddUserToCourse 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_add_user_to_course';
43
44 use SingletonLoader;
45
46 /**
47 * Register a action.
48 *
49 * @param array $actions actions.
50 * @return array
51 */
52 public function register( $actions ) {
53 $actions[ $this->integration ][ $this->action ] = [
54 'label' => __( 'Add User to Course', 'suretriggers' ),
55 'action' => $this->action,
56 'function' => [ $this, 'action_listener' ],
57 ];
58
59 return $actions;
60 }
61
62 /**
63 * Action listener.
64 *
65 * @param int $user_id User ID.
66 * @param int $automation_id Automation ID.
67 * @param array $fields Fields.
68 * @param array $selected_options Selected options.
69 *
70 * @return array|void
71 */
72 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
73 $course_id = isset( $selected_options['course_id'] ) ? (int) sanitize_text_field( $selected_options['course_id'] ) : 0;
74 $user_email = isset( $selected_options['user_email'] ) ? sanitize_email( $selected_options['user_email'] ) : '';
75
76 if ( ! class_exists( 'FluentCommunity\Modules\Course\Services\CourseHelper' ) ) {
77 return [
78 'status' => 'error',
79 'message' => 'CourseHelper class not found.',
80 ];
81 }
82
83 $user = get_user_by( 'email', $user_email );
84
85 if ( ! $user ) {
86 return [
87 'status' => 'error',
88 'message' => 'User not found with the provided email.',
89 ];
90 }
91
92 if ( ! $this->is_valid_course( $course_id ) ) {
93 return [
94 'status' => 'error',
95 'message' => 'Invalid Course ID.',
96 ];
97 }
98
99 try {
100 CourseHelper::enrollCourse( $course_id, $user->ID );
101 } catch ( Exception $e ) {
102 return [
103 'status' => 'error',
104 'message' => 'An error occurred: ' . $e->getMessage(),
105 ];
106 }
107
108 return [
109 'status' => 'success',
110 'message' => 'User added to course successfully',
111 'course_id' => $course_id,
112 'user_id' => $user->ID,
113 ];
114 }
115
116 /**
117 * Check if the course ID is valid.
118 *
119 * @param int $course_id Course ID.
120 * @return bool
121 */
122 private function is_valid_course( $course_id ) {
123 global $wpdb;
124 $course = $wpdb->get_row( $wpdb->prepare( "SELECT ID FROM {$wpdb->prefix}fcom_spaces WHERE ID = %d AND type = 'course'", $course_id ) );
125 return (bool) $course;
126 }
127 }
128
129 AddUserToCourse::get_instance();
130