PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.32
OttoKit: All-in-One Automation Platform v1.1.32
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 / lifterlms / actions / mark-course-complete.php
suretriggers / src / Integrations / lifterlms / actions Last commit date
enroll-to-course.php 10 months ago enroll-to-membership.php 10 months ago mark-course-complete.php 10 months ago mark-lesson-complete.php 10 months ago mark-section-complete.php 10 months ago remove-from-course.php 10 months ago remove-from-membership.php 10 months ago
mark-course-complete.php
145 lines
1 <?php
2 /**
3 * MarkCourseComplete.
4 * php version 5.6
5 *
6 * @category MarkCourseComplete
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\LifterLMS\Actions;
15
16 use SureTriggers\Integrations\AutomateAction;
17 use SureTriggers\Integrations\LifterLMS\LifterLMS;
18 use SureTriggers\Traits\SingletonLoader;
19 use Exception;
20 use LLMS_Course;
21 use LLMS_Section;
22
23 /**
24 * MarkCourseComplete
25 *
26 * @category MarkCourseComplete
27 * @package SureTriggers
28 * @author BSF <username@example.com>
29 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
30 * @link https://www.brainstormforce.com/
31 * @since 1.0.0
32 */
33 class MarkCourseComplete extends AutomateAction {
34
35
36 /**
37 * Integration type.
38 *
39 * @var string
40 */
41 public $integration = 'LifterLMS';
42
43 /**
44 * Action name.
45 *
46 * @var string
47 */
48 public $action = 'lms_mark_course_complete';
49
50 use SingletonLoader;
51
52
53 /**
54 * Register a action.
55 *
56 * @param array $actions actions.
57 * @return array
58 */
59 public function register( $actions ) {
60 $actions[ $this->integration ][ $this->action ] = [
61 'label' => __( 'Mark course complete for User', 'suretriggers' ),
62 'action' => $this->action,
63 'function' => [ $this, 'action_listener' ],
64 ];
65 return $actions;
66 }
67
68
69 /**
70 * Action listener.
71 *
72 * @param int $user_id user_id.
73 * @param int $automation_id automation_id.
74 * @param array $fields fields.
75 * @param array $selected_options selectedOptions.
76 * @psalm-suppress UndefinedMethod
77 *
78 * @return void|bool|array
79 * @throws Exception Exception.
80 */
81 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
82
83 $course_id = isset( $selected_options['course'] ) ? $selected_options['course'] : '0';
84 $user_id = $selected_options['wp_user_email'];
85
86 if ( ! class_exists( 'LLMS_Course' ) || ! class_exists( 'LLMS_Section' ) ) {
87 return;
88 }
89
90 if ( is_email( $user_id ) ) {
91 $user = get_user_by( 'email', $user_id );
92
93 if ( $user ) {
94 $user_id = $user->ID;
95 $course = get_post( (int) $course_id );
96 if ( ! $course ) {
97 return [
98 'status' => 'error',
99 'message' => __( 'No course is available ', 'suretriggers' ),
100
101 ];
102 }
103
104 if ( ! function_exists( 'llms_mark_complete' ) ) {
105 return [
106 'status' => 'error',
107 'message' => __( 'The function llms_mark_complete does not exist', 'suretriggers' ),
108
109 ];
110 }
111
112 $course = new \LLMS_Course( $course_id );
113 $sections = $course->get_sections();
114 if ( ! empty( $sections ) ) {
115 foreach ( $sections as $section ) {
116 $section = new \LLMS_Section( $section->id );
117 $lessons = $section->get_lessons();
118 if ( ! empty( $lessons ) ) {
119 foreach ( $lessons as $lesson ) {
120 llms_mark_complete( $user_id, $lesson->id, 'lesson' );
121 }
122 }
123 llms_mark_complete( $user_id, $section->id, 'section' );
124 }
125 }
126 llms_mark_complete( $user_id, $course_id, 'course' );
127 return LifterLMS::get_lms_course_context( $course_id );
128 } else {
129 return [
130 'status' => 'error',
131 'message' => 'User not exists.',
132 ];
133 }
134 } else {
135 return [
136 'status' => 'error',
137 'message' => 'Enter valid email address.',
138 ];
139 }
140 }
141
142 }
143
144 MarkCourseComplete::get_instance();
145