PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.35
OttoKit: All-in-One Automation Platform v1.1.35
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 / sensei-lms / actions / sl-unenroll-user-from-course.php
suretriggers / src / Integrations / sensei-lms / actions Last commit date
sl-enroll-user-to-course.php 11 months ago sl-unenroll-user-from-course.php 11 months ago
sl-unenroll-user-from-course.php
136 lines
1 <?php
2 /**
3 * SlUnenrollUserFromCourse.
4 * php version 5.6
5 *
6 * @category SlUnenrollUserFromCourse
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\SenseiLMS\Actions;
15
16 use Exception;
17 use SureTriggers\Integrations\AutomateAction;
18 use SureTriggers\Traits\SingletonLoader;
19 use Sensei_Course_Manual_Enrolment_Provider;
20 use Sensei_Utils;
21
22 /**
23 * SlUnenrollUserFromCourse
24 *
25 * @category SlUnenrollUserFromCourse
26 * @package SureTriggers
27 * @author BSF <username@example.com>
28 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
29 * @link https://www.brainstormforce.com/
30 * @since 1.0.0
31 */
32 class SlUnenrollUserFromCourse extends AutomateAction {
33
34
35 /**
36 * Integration type.
37 *
38 * @var string
39 */
40 public $integration = 'SenseiLMS';
41
42 /**
43 * Action name.
44 *
45 * @var string
46 */
47 public $action = 'sl_unenroll_user_from_course';
48
49 use SingletonLoader;
50
51 /**
52 * Register a action.
53 *
54 * @param array $actions actions.
55 * @return array
56 */
57 public function register( $actions ) {
58 $actions[ $this->integration ][ $this->action ] = [
59 'label' => __( 'Unenroll User From Course', 'suretriggers' ),
60 'action' => $this->action,
61 'function' => [ $this, 'action_listener' ],
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 selectedOptions.
73 * @throws Exception Throws exception.
74 *
75 * @return array
76 */
77 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
78 $course_id = $selected_options['course'];
79 $user_email = $selected_options['wp_user_email'];
80 if ( is_email( $user_email ) ) {
81 $user = get_user_by( 'email', $user_email );
82 if ( $user ) {
83 $user_id = $user->ID;
84 } else {
85 $error = [
86 'status' => esc_attr__( 'Error', 'suretriggers' ),
87 'response' => esc_attr__( 'User not found with specified email address.', 'suretriggers' ),
88
89 ];
90 return $error;
91 }
92 } else {
93 $error = [
94 'status' => esc_attr__( 'Error', 'suretriggers' ),
95 'response' => esc_attr__( 'Please enter valid email address.', 'suretriggers' ),
96
97 ];
98
99 return $error;
100 }
101 if ( ! class_exists( 'Sensei_Course_Manual_Enrolment_Provider' ) || ! class_exists( 'Sensei_Utils' ) ) {
102 return [];
103 }
104 $manual_enrolment_provider = Sensei_Course_Manual_Enrolment_Provider::instance();
105 if ( ! $manual_enrolment_provider ) {
106 return [];
107 }
108 if ( '-1' === $course_id ) {
109 $courses = Sensei_Utils::sensei_activity_ids(
110 [
111 'user_id' => $user_id,
112 'type' => 'sensei_course_status',
113 'status' => 'any',
114 ]
115 );
116 if ( ! is_array( $courses ) ) {
117 return [];
118 }
119 // Unroll user in courses.
120 foreach ( $courses as $course_id ) {
121 $manual_enrolment_provider->withdraw_learner( $user_id, $course_id );
122 }
123 } else {
124 $manual_enrolment_provider->withdraw_learner( $user_id, $course_id );
125 }
126 $response = [
127 'status' => esc_attr__( 'Success', 'suretriggers' ),
128 'response' => esc_attr__( 'User unenrolled successfully', 'suretriggers' ),
129
130 ];
131 return $response;
132 }
133 }
134
135 SlUnenrollUserFromCourse::get_instance();
136