PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.36
OttoKit: All-in-One Automation Platform v1.1.36
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-enroll-user-to-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-enroll-user-to-course.php
138 lines
1 <?php
2 /**
3 * SlEnrollUserToCourse.
4 * php version 5.6
5 *
6 * @category SlEnrollUserToCourse
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 WP_Query;
21
22 /**
23 * SlEnrollUserToCourse
24 *
25 * @category SlEnrollUserToCourse
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 SlEnrollUserToCourse 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_enroll_user_to_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' => __( 'Enroll User To 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' ) ) {
102 return [];
103 }
104 $manual_enrolment_provider = Sensei_Course_Manual_Enrolment_Provider::instance();
105
106 if ( ! $manual_enrolment_provider ) {
107 return [];
108 }
109 if ( '-1' === $course_id ) {
110
111 $query = new WP_Query(
112 [
113 'post_type' => 'course',
114 'post_status' => 'publish',
115 'fields' => 'ids',
116 ]
117 );
118
119 $courses = $query->get_posts();
120
121 // Enroll user in courses.
122 foreach ( $courses as $course_id ) {
123 $manual_enrolment_provider->enrol_learner( $user_id, $course_id );
124 }
125 } else {
126 $manual_enrolment_provider->enrol_learner( $user_id, $course_id );
127 }
128 $response = [
129 'status' => esc_attr__( 'Success', 'suretriggers' ),
130 'response' => esc_attr__( 'User enrolled successfully', 'suretriggers' ),
131
132 ];
133 return $response;
134 }
135 }
136
137 SlEnrollUserToCourse::get_instance();
138