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 / learndash / triggers / user-completes-course.php
suretriggers / src / Integrations / learndash / triggers Last commit date
course-added-to-group.php 1 year ago essay-question-graded.php 2 years ago group-leader-added-to-group.php 1 year ago group-leader-removed-from-group.php 1 year ago user-access-course-expires.php 2 years ago user-added-in-group.php 1 year ago user-assignment-graded.php 2 years ago user-completes-course.php 1 year ago user-completes-group-course.php 1 year ago user-completes-lesson.php 3 years ago user-completes-topic.php 3 years ago user-enrolled-course.php 1 year ago user-fails-quiz.php 2 years ago user-passes-quiz.php 2 years ago user-purchase-course.php 1 year ago user-removed-from-group.php 1 year ago user-submits-assignment.php 2 years ago user-submits-essay-quiz.php 2 years ago user-unenrolled-course.php 2 years ago
user-completes-course.php
125 lines
1 <?php
2 /**
3 * UserCompletesLDCourse.
4 * php version 5.6
5 *
6 * @category UserCompletesLDCourse
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\LearnDash\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Integrations\LearnDash\LearnDash;
18 use SureTriggers\Integrations\WordPress\WordPress;
19 use SureTriggers\Traits\SingletonLoader;
20
21 if ( ! class_exists( 'UserCompletesLDCourse' ) ) :
22
23
24 /**
25 * UserCompletesLDCourse
26 *
27 * @category UserCompletesLDCourse
28 * @package SureTriggers
29 * @author BSF <username@example.com>
30 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
31 * @link https://www.brainstormforce.com/
32 * @since 1.0.0
33 */
34 class UserCompletesLDCourse {
35
36
37 /**
38 * Integration type.
39 *
40 * @var string
41 */
42 public $integration = 'LearnDash';
43
44 /**
45 * Action name.
46 *
47 * @var string
48 */
49 public $trigger = 'user_completes_ld_course';
50
51 use SingletonLoader;
52
53
54 /**
55 * Constructor
56 *
57 * @since 1.0.0
58 */
59 public function __construct() {
60 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
61 }
62
63 /**
64 * Register a action.
65 *
66 * @param array $triggers actions.
67 * @return array
68 */
69 public function register( $triggers ) {
70
71 $triggers[ $this->integration ][ $this->trigger ] = [
72 'label' => __( 'Course Completed', 'suretriggers' ),
73 'action' => 'user_completes_ld_course',
74 'common_action' => 'learndash_course_completed',
75 'function' => [ $this, 'trigger_listener' ],
76 'priority' => 10,
77 'accepted_args' => 1,
78 ];
79
80 return $triggers;
81
82 }
83
84 /**
85 * Trigger listener
86 *
87 * @param array $data course data.
88 * @since 1.0.0
89 *
90 * @return void
91 */
92 public function trigger_listener( $data ) {
93 if ( empty( $data ) ) {
94 return;
95 }
96
97 $context = array_merge(
98 WordPress::get_user_context( $data['user']->ID ),
99 LearnDash::get_course_context( $data['course'] )
100 );
101
102 $context['course_status'] = $data['course']->post_status;
103 $timestamp = get_user_meta( $data['user']->ID, 'course_completed_' . $data['course']->ID, true );
104 $timestamp = is_numeric( $timestamp ) ? (int) $timestamp : null;
105 $date_format = get_option( 'date_format' );
106 if ( is_string( $date_format ) ) {
107 $context['course_completion_date'] = wp_date( $date_format, $timestamp );
108 }
109 if ( function_exists( 'learndash_get_course_certificate_link' ) ) {
110 $context['course_certificate'] = learndash_get_course_certificate_link( $data['course']->ID, $data['user']->ID );
111 }
112
113 AutomationController::sure_trigger_handle_trigger(
114 [
115 'trigger' => $this->trigger,
116 'context' => $context,
117 ]
118 );
119 }
120 }
121
122 UserCompletesLDCourse::get_instance();
123
124 endif;
125