PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.33
OttoKit: All-in-One Automation Platform v1.1.33
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 / memberpress-course / triggers / lesson-completed.php
suretriggers / src / Integrations / memberpress-course / triggers Last commit date
course-completed.php 3 years ago lesson-completed.php 3 years ago
lesson-completed.php
134 lines
1 <?php
2 /**
3 * LessonCompleted.
4 * php version 5.6
5 *
6 * @category LessonCompleted
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\MemberPressCourse\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Integrations\MemberPressCourse\MemberPressCourse;
18 use SureTriggers\Integrations\WordPress\WordPress;
19 use SureTriggers\Traits\SingletonLoader;
20
21 /**
22 * LessonCompleted
23 *
24 * @category LessonCompleted
25 * @package SureTriggers
26 * @author BSF <username@example.com>
27 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
28 * @link https://www.brainstormforce.com/
29 * @since 1.0.0
30 */
31 class LessonCompleted {
32
33
34 /**
35 * Integration type.
36 *
37 * @var string
38 */
39 public $integration = 'MemberPressCourse';
40
41 /**
42 * Trigger name.
43 *
44 * @var string
45 */
46 public $trigger = 'mpc_lesson_completed';
47
48 use SingletonLoader;
49
50 /**
51 * Constructor
52 *
53 * @since 1.0.0
54 */
55 public function __construct() {
56 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
57 }
58
59 /**
60 * Register action.
61 *
62 * @param array $triggers trigger data.
63 * @return array
64 */
65 public function register( $triggers ) {
66
67 $triggers[ $this->integration ][ $this->trigger ] = [
68 'label' => __( 'Lesson Completed', 'suretriggers' ),
69 'action' => $this->trigger,
70 'common_action' => 'mpcs_completed_lesson',
71 'function' => [ $this, 'trigger_listener' ],
72 'priority' => 10,
73 'accepted_args' => 1,
74 ];
75
76 return $triggers;
77 }
78
79 /**
80 * Trigger listener
81 *
82 * @param object $data data.
83 *
84 * @return void
85 */
86 public function trigger_listener( $data ) {
87 if ( ! isset( $data->course_id ) ) {
88 return;
89 } else {
90 $course_id = $data->course_id;
91 }
92
93 if ( ! isset( $data->user_id ) ) {
94 return;
95 } else {
96 $user_id = $data->user_id;
97 }
98
99 if ( ! isset( $data->lesson_id ) ) {
100 return;
101 } else {
102 $lesson_id = $data->lesson_id;
103 }
104
105 $context = array_merge(
106 WordPress::get_user_context( $user_id ),
107 [
108 'lesson_id' => $lesson_id,
109 'lesson_title' => get_the_title( $lesson_id ),
110 'lesson_url' => get_permalink( $lesson_id ),
111 'lesson_featured_image_id' => get_post_meta( $lesson_id, '_thumbnail_id', true ),
112 'lesson_featured_image_url' => get_the_post_thumbnail_url( $lesson_id ),
113 ],
114 [
115 'course_id' => $course_id,
116 'course_title' => get_the_title( $course_id ),
117 'course_url' => get_permalink( $course_id ),
118 'course_featured_image_id' => get_post_meta( $course_id, '_thumbnail_id', true ),
119 'course_featured_image_url' => get_the_post_thumbnail_url( $course_id ),
120 ]
121 );
122 AutomationController::sure_trigger_handle_trigger(
123 [
124 'trigger' => $this->trigger,
125 'wp_user_id' => $user_id,
126 'context' => $context,
127 ]
128 );
129 }
130
131 }
132
133 LessonCompleted::get_instance();
134