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 / masterstudy-lms / actions / enrollusertocourse.php
suretriggers / src / Integrations / masterstudy-lms / actions Last commit date
enrollusertocourse.php 10 months ago markcoursecompleteforuser.php 10 months ago marklessoncompleteforuser.php 10 months ago unrolluserfromcourse.php 10 months ago
enrollusertocourse.php
144 lines
1 <?php
2 /**
3 * EnrollUserToCourse.
4 * php version 5.6
5 *
6 * @category EnrollUserToCourse
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 use SureTriggers\Integrations\AutomateAction;
15 use SureTriggers\Traits\SingletonLoader;
16 use STM_LMS\STM_LMS_Mails;
17
18 /**
19 * EnrollUserToCourse
20 *
21 * @category EnrollUserToCourse
22 * @package SureTriggers
23 * @author BSF <username@example.com>
24 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
25 * @link https://www.brainstormforce.com/
26 * @since 1.0.0
27 */
28 class EnrollUserToCourse extends AutomateAction {
29
30 /**
31 * Integration type.
32 *
33 * @var string
34 */
35 public $integration = 'MasterStudyLms';
36
37 /**
38 * Action name.
39 *
40 * @var string
41 */
42 public $action = 'enroll_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' => __( 'Enroll User To Course', 'suretriggers' ),
55 'action' => $this->action,
56 'function' => [ $this, 'action_listener' ],
57 ];
58 return $actions;
59 }
60
61 /**
62 * Action listener.
63 *
64 * @param int $user_id user_id.
65 * @param int $automation_id automation_id.
66 * @param array $fields fields.
67 * @param array $selected_options selectedOptions.
68 * @psalm-suppress UndefinedMethod
69 * @throws Exception Exception.
70 *
71 * @return array|bool|void
72 */
73 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
74 $course_id = $selected_options['course'];
75 $user_id = $selected_options['wp_user_email'];
76
77 if ( is_email( $user_id ) ) {
78 $user = get_user_by( 'email', $user_id );
79
80 if ( $user ) {
81 $user_id = $user->ID;
82 } else {
83 $email = $user_id;
84 $username = sanitize_title( $email );
85 $password = wp_generate_password();
86
87 $user_id = wp_create_user( $username, $password, $email );
88
89 $subject = esc_html__( 'Login credentials for your course', 'suretriggers' );
90
91 $site_url = get_bloginfo( 'url' );
92 $message = sprintf(
93 esc_html__( 'Login: %1$s Password: %2$s Site URL: %3$s', 'suretriggers' ),
94 $username,
95 $password,
96 $site_url
97 );
98
99 if ( class_exists( '\STM_LMS_Mails' ) ) {
100 // The STM_LMS_Mails class exists, so we can use it.
101 \STM_LMS_Mails::wp_mail_text_html();
102 \STM_LMS_Mails::send_email( $subject, $message, $email, [], 'stm_lms_new_user_creds', compact( 'username', 'password', 'site_url' ) );
103 \STM_LMS_Mails::remove_wp_mail_text_html();
104 }
105 }
106 } else {
107 $error = [
108 'status' => esc_attr__( 'Error', 'suretriggers' ),
109 'response' => esc_attr__( 'Please enter valid email address.', 'suretriggers' ),
110
111 ];
112
113 return $error;
114 }
115
116 // Enroll the user in the course if they are not already enrolled.
117 if ( function_exists( 'stm_lms_get_user_course' ) ) {
118 $course = stm_lms_get_user_course( $user_id, $course_id, [ 'user_course_id' ] );
119
120 if ( ! count( $course ) ) {
121 if ( class_exists( '\STM_LMS_Course' ) ) {
122 \STM_LMS_Course::add_user_course( $course_id, $user_id, \STM_LMS_Course::item_url( $course_id, '' ), 0 );
123 \STM_LMS_Course::add_student( $course_id );
124 }
125
126 $response = [
127 'status' => esc_attr__( 'Success', 'suretriggers' ),
128 'response' => esc_attr__( 'User enrolled into course successfully.', 'suretriggers' ),
129
130 ];
131 } else {
132 $response = [
133 'status' => esc_attr__( 'Success', 'suretriggers' ),
134 'response' => esc_attr__( 'User already enrolled into this course.', 'suretriggers' ),
135
136 ];
137 }
138 return $response;
139 }
140 }
141 }
142
143 EnrollUserToCourse::get_instance();
144