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-section-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-section-complete.php
135 lines
1 <?php
2 /**
3 * MarkSectionComplete.
4 * php version 5.6
5 *
6 * @category MarkSectionComplete
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 SureTriggers\Integrations\WordPress\WordPress;
20 use Exception;
21 use LLMS_Section;
22
23 /**
24 * MarkSectionComplete
25 *
26 * @category MarkSectionComplete
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 MarkSectionComplete 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_section_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 section 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 $section_id = $selected_options['section'];
84 $user_email = $selected_options['wp_user_email'];
85
86 if ( ! class_exists( 'LLMS_Section' ) ) {
87 return [
88 'status' => 'error',
89 'message' => __( 'LLMS_Section class not found.', 'suretriggers' ),
90
91 ];
92 }
93
94 if ( is_email( $user_email ) ) {
95 $user = get_user_by( 'email', $user_email );
96 if ( $user ) {
97 $user_id = $user->ID;
98 if ( ! function_exists( 'llms_mark_complete' ) ) {
99 return [
100 'status' => 'error',
101 'message' => __( 'The function llms_mark_complete does not exist', 'suretriggers' ),
102
103 ];
104 }
105
106 // Get all lessons of section.
107 $section = new \LLMS_Section( $section_id );
108 $lessons = $section->get_lessons();
109 if ( ! empty( $lessons ) ) {
110 foreach ( $lessons as $lesson ) {
111 llms_mark_complete( $user_id, $lesson->id, 'lesson' );
112 }
113 }
114
115 llms_mark_complete( $user_id, $section_id, 'section' );
116
117 return array_merge( WordPress::get_post_context( $section_id ), WordPress::get_user_context( $user_id ) );
118 } else {
119 return [
120 'status' => 'error',
121 'message' => 'User not exists.',
122 ];
123 }
124 } else {
125 return [
126 'status' => 'error',
127 'message' => 'Enter valid email address.',
128 ];
129 }
130 }
131
132 }
133
134 MarkSectionComplete::get_instance();
135