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 / wp-courseware / actions / wpcw-enroll-user-to-course.php
suretriggers / src / Integrations / wp-courseware / actions Last commit date
wpcw-enroll-user-to-course.php 11 months ago wpcw-remove-user-from-course.php 11 months ago
wpcw-enroll-user-to-course.php
129 lines
1 <?php
2 /**
3 * WpcwEnrollUserToCourse.
4 * php version 5.6
5 *
6 * @category WpcwEnrollUserToCourse
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 SureTriggers\Integrations\WordPress\WordPress;
17
18 /**
19 * WpcwEnrollUserToCourse
20 *
21 * @category WpcwEnrollUserToCourse
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 WpcwEnrollUserToCourse extends AutomateAction {
29
30 /**
31 * Integration type.
32 *
33 * @var string
34 */
35 public $integration = 'WPCourseware';
36
37 /**
38 * Action name.
39 *
40 * @var string
41 */
42 public $action = 'wpcw_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 ( ! function_exists( 'wpcw_get_courses' ) ) {
78 return [
79 'status' => 'error',
80 'message' => 'wpcw_get_courses does not exists.',
81 ];
82 }
83
84 if ( is_email( $user_id ) ) {
85 $user = get_user_by( 'email', $user_id );
86
87 if ( $user ) {
88 $user_id = $user->ID;
89 $course_list = wpcw_get_courses();
90 $enroll_course_list = [];
91
92 if ( ! empty( $course_list ) ) {
93 foreach ( $course_list as $course ) {
94 if ( intval( $course->course_post_id ) == intval( $course_id ) ) {
95 $enroll_course_list[ $course->course_id ] = $course->course_id;
96 continue;
97 }
98 }
99 }
100
101 if ( ! function_exists( 'WPCW_courses_syncUserAccess' ) ) {
102 return [
103 'status' => 'error',
104 'message' => 'WPCW_courses_syncUserAccess does not exists.',
105 ];
106 }
107
108 WPCW_courses_syncUserAccess( $user_id, $enroll_course_list, 'add' );
109
110 $context = WordPress::get_user_context( $user_id );
111 if ( function_exists( 'wpcw_get_course' ) ) {
112 $context['course'] = wpcw_get_course( $course_id );
113 }
114 return $context;
115 }
116 } else {
117 $error = [
118 'status' => esc_attr__( 'Error', 'suretriggers' ),
119 'response' => esc_attr__( 'Please enter valid email address.', 'suretriggers' ),
120
121 ];
122
123 return $error;
124 }
125 }
126 }
127
128 WpcwEnrollUserToCourse::get_instance();
129