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-group-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-group-course.php
161 lines
1 <?php
2 /**
3 * UserCompletesGroupLDCourse.
4 * php version 5.6
5 *
6 * @category UserCompletesGroupLDCourse
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\WordPress\WordPress;
18 use SureTriggers\Integrations\LearnDash\LearnDash;
19 use SureTriggers\Traits\SingletonLoader;
20
21 if ( ! class_exists( 'UserCompletesGroupLDCourse' ) ) :
22
23
24 /**
25 * UserCompletesGroupLDCourse
26 *
27 * @category UserCompletesGroupLDCourse
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 UserCompletesGroupLDCourse {
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_group_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' => __( 'User Completes Group Course', 'suretriggers' ),
73 'action' => 'user_completes_group_ld_course',
74 'common_action' => 'learndash_group_completed',
75 'function' => [ $this, 'trigger_listener' ],
76 'priority' => 99,
77 'accepted_args' => 1,
78 ];
79
80 return $triggers;
81
82 }
83
84 /**
85 * Trigger listener
86 *
87 * @param array $group_progress Group Progress.
88 * @since 1.0.0
89 *
90 * @return void
91 */
92 public function trigger_listener( $group_progress ) {
93
94 if ( ! function_exists( 'ld_course_access_expires_on' ) ) {
95 return;
96 }
97
98 if ( empty( $group_progress ) ) {
99 return;
100 }
101
102 $user = $group_progress['user'];
103 if ( ! $user instanceof \WP_User ) {
104 return;
105 }
106
107 $progress = $group_progress['progress'];
108 $group_completed = false;
109 if ( ( ! empty( $progress['total'] ) ) && ( absint( $progress['total'] ) === absint( $progress['completed'] ) ) ) {
110 $group_completed = true;
111 }
112 if ( false === $group_completed ) {
113 return;
114 }
115
116 $user_id = absint( $user->ID );
117 $group = $group_progress['group'];
118 $group_id = absint( $group->ID );
119 $course_ids = $progress['course_ids'];
120
121 $context = WordPress::get_user_context( $user_id );
122 $context['sfwd_group_id'] = $group_id;
123 $context['group_title'] = get_the_title( $group_id );
124 $context['group_url'] = get_permalink( $group_id );
125 $context['group_featured_image_id'] = get_post_meta( $group_id, '_thumbnail_id', true );
126 $context['group_featured_image_url'] = get_the_post_thumbnail_url( $group_id );
127 foreach ( $course_ids as $key => $course_id ) {
128 $context[ 'completed ' . $key ]['course_id'] = $course_id;
129 $context[ 'completed ' . $key ]['course_title'] = get_the_title( $course_id );
130 $context[ 'completed ' . $key ]['course_url'] = get_permalink( $course_id );
131 $context[ 'completed ' . $key ]['course_featured_image_id'] = get_post_meta( $course_id, '_thumbnail_id', true );
132 $context[ 'completed ' . $key ]['course_featured_image_url'] = get_the_post_thumbnail_url( $course_id );
133 $timestamp = ld_course_access_expires_on( $course_id, $user_id );
134 $timestamp = is_numeric( $timestamp ) ? (int) $timestamp : null;
135 $date_format = get_option( 'date_format' );
136 if ( is_string( $date_format ) ) {
137 $context[ 'completed ' . $key ]['course_access_expiry_date'] = wp_date( $date_format, $timestamp );
138 }
139 }
140 if ( function_exists( 'learndash_group_enrolled_courses' ) ) {
141 $group_courses_id = learndash_group_enrolled_courses( $group_id );
142 if ( ! empty( $group_courses_id ) ) {
143 foreach ( $group_courses_id as $key => $course_id ) {
144 $context['group_courses'][ $key ] = LearnDash::get_course_pluggable_data( $course_id );
145 }
146 }
147 }
148
149 AutomationController::sure_trigger_handle_trigger(
150 [
151 'trigger' => $this->trigger,
152 'context' => $context,
153 ]
154 );
155 }
156 }
157
158 UserCompletesGroupLDCourse::get_instance();
159
160 endif;
161