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 / memberpress-course / triggers / course-completed.php
suretriggers / src / Integrations / memberpress-course / triggers Last commit date
course-completed.php 3 years ago lesson-completed.php 3 years ago
course-completed.php
121 lines
1 <?php
2 /**
3 * CourseCompleted.
4 * php version 5.6
5 *
6 * @category CompleteCourse
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 * CourseCompleted
23 *
24 * @category CourseCompleted
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 CourseCompleted {
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_course_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' => __( 'Course Completed', 'suretriggers' ),
69 'action' => $this->trigger,
70 'common_action' => 'mpcs_completed_course',
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 $context = array_merge(
100 WordPress::get_user_context( $user_id ),
101 [
102 'course_id' => $course_id,
103 'course_title' => get_the_title( $course_id ),
104 'course_url' => get_permalink( $course_id ),
105 'course_featured_image_id' => get_post_meta( $course_id, '_thumbnail_id', true ),
106 'course_featured_image_url' => get_the_post_thumbnail_url( $course_id ),
107 ]
108 );
109 AutomationController::sure_trigger_handle_trigger(
110 [
111 'trigger' => $this->trigger,
112 'wp_user_id' => $user_id,
113 'context' => $context,
114 ]
115 );
116 }
117
118 }
119
120 CourseCompleted::get_instance();
121