PluginProbe
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI / 8.0.2
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI v8.0.2
8.0.1 8.0.2 8.0.0 7.9.9.7 7.9.9.6 7.9.9.5 7.9.9.4 7.9.9.3 7.9.9.2 7.9.9.1 7.9.9 7.9.8 7.9.7 7.9.6 7.9.5 7.9.4 7.9.3 7.9.2 7.9.1 7.9.0 7.8.9 7.8.8 7.8.7 7.8.6 7.8.5 All 44 releases
gamipress / integrations / masterstudy-lms / includes / triggers.php

triggers.php in GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI 8.0.2, at integrations/masterstudy-lms/includes/triggers.php

224 lines 9.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Triggers
4 *
5 * @package GamiPress\MasterStudy_LMS\Triggers
6 * @since 1.0.0
7 */
8
9 // Exit if accessed directly
10 if( !defined( 'ABSPATH' ) ) exit;
11
12 /**
13 * Register plugin specific triggers
14 *
15 * @since 1.0.0
16 *
17 * @param array $triggers
18 * @return mixed
19 */
20 function gamipress_masterstudy_lms_activity_triggers( $triggers ) {
21
22 $triggers[__( 'MasterStudy LMS', 'gamipress' )] = array(
23 // Quiz
24 'gamipress_masterstudy_lms_complete_quiz' => __( 'Complete a quiz', 'gamipress' ),
25 'gamipress_masterstudy_lms_complete_specific_quiz' => __( 'Complete a specific quiz', 'gamipress' ),
26 'gamipress_masterstudy_lms_pass_quiz' => __( 'Pass a quiz', 'gamipress' ),
27 'gamipress_masterstudy_lms_pass_specific_quiz' => __( 'Pass a specific quiz', 'gamipress' ),
28 'gamipress_masterstudy_lms_fail_quiz' => __( 'Fail a quiz', 'gamipress' ),
29 'gamipress_masterstudy_lms_fail_specific_quiz' => __( 'Fail a specific quiz', 'gamipress' ),
30 // Lesson
31 'gamipress_masterstudy_lms_complete_lesson' => __( 'Complete a lesson', 'gamipress' ),
32 'gamipress_masterstudy_lms_complete_specific_lesson' => __( 'Complete a specific lesson', 'gamipress' ),
33 'gamipress_masterstudy_lms_complete_lesson_specific_course' => __( 'Complete a lesson of a specific', 'gamipress' ),
34 // Course
35 'gamipress_masterstudy_lms_enroll_course' => __( 'Enroll any course', 'gamipress' ),
36 'gamipress_masterstudy_lms_enroll_specific_course' => __( 'Enroll a specific course', 'gamipress' ),
37 'gamipress_masterstudy_lms_complete_course' => __( 'Complete a course', 'gamipress' ),
38 'gamipress_masterstudy_lms_complete_specific_course' => __( 'Complete a specific course', 'gamipress' ),
39 'gamipress_masterstudy_lms_download_course_certificate' => __( 'Download a course certificate', 'gamipress' ),
40 'gamipress_masterstudy_lms_download_specific_course_certificate' => __( 'Download a specific course certificate', 'gamipress' ),
41 );
42
43 return $triggers;
44
45 }
46 add_filter( 'gamipress_activity_triggers', 'gamipress_masterstudy_lms_activity_triggers' );
47
48 /**
49 * Register plugin specific activity triggers
50 *
51 * @since 1.0.0
52 *
53 * @param array $specific_activity_triggers
54 * @return array
55 */
56 function gamipress_masterstudy_lms_specific_activity_triggers( $specific_activity_triggers ) {
57
58 // Quiz
59 $specific_activity_triggers['gamipress_masterstudy_lms_complete_specific_quiz'] = array( 'stm-quizzes' );
60 $specific_activity_triggers['gamipress_masterstudy_lms_pass_specific_quiz'] = array( 'stm-quizzes' );
61 $specific_activity_triggers['gamipress_masterstudy_lms_fail_specific_quiz'] = array( 'stm-quizzes' );
62 // Lesson
63 $specific_activity_triggers['gamipress_masterstudy_lms_complete_specific_lesson'] = array( 'stm-lessons' );
64 $specific_activity_triggers['gamipress_masterstudy_lms_complete_lesson_specific_course'] = array( 'stm-courses' );
65 // Course
66 $specific_activity_triggers['gamipress_masterstudy_lms_enroll_specific_course'] = array( 'stm-courses' );
67 $specific_activity_triggers['gamipress_masterstudy_lms_complete_specific_course'] = array( 'stm-courses' );
68 $specific_activity_triggers['gamipress_masterstudy_lms_download_specific_course_certificate'] = array( 'stm-courses' );
69
70 return $specific_activity_triggers;
71 }
72 add_filter( 'gamipress_specific_activity_triggers', 'gamipress_masterstudy_lms_specific_activity_triggers' );
73
74 /**
75 * Register plugin specific activity triggers labels
76 *
77 * @since 1.0.0
78 *
79 * @param array $specific_activity_trigger_labels
80 * @return array
81 */
82 function gamipress_masterstudy_lms_specific_activity_trigger_label( $specific_activity_trigger_labels ) {
83
84 // Quiz
85 $specific_activity_trigger_labels['gamipress_masterstudy_lms_complete_specific_quiz'] = __( 'Complete the quiz %s', 'gamipress' );
86 $specific_activity_trigger_labels['gamipress_masterstudy_lms_pass_specific_quiz'] = __( 'Pass the quiz %s', 'gamipress' );
87 $specific_activity_trigger_labels['gamipress_masterstudy_lms_fail_specific_quiz'] = __( 'Fail the quiz %s', 'gamipress' );
88 // Lesson
89 $specific_activity_trigger_labels['gamipress_masterstudy_lms_complete_specific_lesson'] = __( 'Complete the lesson %s', 'gamipress' );
90 $specific_activity_trigger_labels['gamipress_masterstudy_lms_complete_lesson_specific_course'] = __( 'Complete a lesson of the course %s', 'gamipress' );
91 // Course
92 $specific_activity_trigger_labels['gamipress_masterstudy_lms_enroll_specific_course'] = __( 'Enroll the course %s', 'gamipress' );
93 $specific_activity_trigger_labels['gamipress_masterstudy_lms_complete_specific_course'] = __( 'Complete the course %s', 'gamipress' );
94 $specific_activity_trigger_labels['gamipress_masterstudy_lms_download_specific_course_certificate'] = __( 'Download the certificate of the course %s', 'gamipress' );
95
96 return $specific_activity_trigger_labels;
97 }
98 add_filter( 'gamipress_specific_activity_trigger_label', 'gamipress_masterstudy_lms_specific_activity_trigger_label' );
99
100 /**
101 * Get user for a given trigger action.
102 *
103 * @since 1.0.0
104 *
105 * @param integer $user_id user ID to override.
106 * @param string $trigger Trigger name.
107 * @param array $args Passed trigger args.
108 * @return integer User ID.
109 */
110 function gamipress_masterstudy_lms_trigger_get_user_id( $user_id, $trigger, $args ) {
111
112 switch ( $trigger ) {
113 // Quiz
114 case 'gamipress_masterstudy_lms_complete_quiz':
115 case 'gamipress_masterstudy_lms_complete_specific_quiz':
116 case 'gamipress_masterstudy_lms_pass_quiz':
117 case 'gamipress_masterstudy_lms_pass_specific_quiz':
118 case 'gamipress_masterstudy_lms_fail_quiz':
119 case 'gamipress_masterstudy_lms_fail_specific_quiz':
120 // Lesson
121 case 'gamipress_masterstudy_lms_complete_lesson':
122 case 'gamipress_masterstudy_lms_complete_specific_lesson':
123 case 'gamipress_masterstudy_lms_complete_lesson_specific_course':
124 // Course
125 case 'gamipress_masterstudy_lms_enroll_course':
126 case 'gamipress_masterstudy_lms_enroll_specific_course':
127 case 'gamipress_masterstudy_lms_complete_course':
128 case 'gamipress_masterstudy_lms_complete_specific_course':
129 case 'gamipress_masterstudy_lms_download_course_certificate':
130 case 'gamipress_masterstudy_lms_download_specific_course_certificate':
131 $user_id = $args[1];
132 break;
133 }
134
135 return $user_id;
136
137 }
138 add_filter( 'gamipress_trigger_get_user_id', 'gamipress_masterstudy_lms_trigger_get_user_id', 10, 3 );
139
140 /**
141 * Get the id for a given specific trigger action.
142 *
143 * @since 1.0.0
144 *
145 * @param integer $specific_id Specific ID.
146 * @param string $trigger Trigger name.
147 * @param array $args Passed trigger args.
148 *
149 * @return integer Specific ID.
150 */
151 function gamipress_masterstudy_lms_specific_trigger_get_id( $specific_id, $trigger = '', $args = array() ) {
152
153 switch ( $trigger ) {
154 // Quiz
155 case 'gamipress_masterstudy_lms_complete_specific_quiz':
156 case 'gamipress_masterstudy_lms_pass_specific_quiz':
157 case 'gamipress_masterstudy_lms_fail_specific_quiz':
158 // Lesson
159 case 'gamipress_masterstudy_lms_complete_specific_lesson':
160 // Course
161 case 'gamipress_masterstudy_lms_enroll_specific_course':
162 case 'gamipress_masterstudy_lms_complete_specific_course':
163 case 'gamipress_masterstudy_lms_download_specific_course_certificate':
164 $specific_id = $args[0];
165 break;
166 case 'gamipress_masterstudy_lms_complete_lesson_specific_course':
167 $specific_id = $args[2];
168 break;
169 }
170
171 return $specific_id;
172 }
173 add_filter( 'gamipress_specific_trigger_get_id', 'gamipress_masterstudy_lms_specific_trigger_get_id', 10, 3 );
174
175 /**
176 * Extended meta data for event trigger logging
177 *
178 * @since 1.0.0
179 *
180 * @param array $log_meta
181 * @param integer $user_id
182 * @param string $trigger
183 * @param integer $site_id
184 * @param array $args
185 *
186 * @return array
187 */
188 function gamipress_masterstudy_lms_log_event_trigger_meta_data( $log_meta, $user_id, $trigger, $site_id, $args ) {
189
190 switch ( $trigger ) {
191 // Quiz
192 case 'gamipress_masterstudy_lms_complete_quiz':
193 case 'gamipress_masterstudy_lms_complete_specific_quiz':
194 case 'gamipress_masterstudy_lms_pass_quiz':
195 case 'gamipress_masterstudy_lms_pass_specific_quiz':
196 case 'gamipress_masterstudy_lms_fail_quiz':
197 case 'gamipress_masterstudy_lms_fail_specific_quiz':
198 // Add the quiz and course IDs
199 $log_meta['quiz_id'] = $args[0];
200 $log_meta['course_id'] = $args[2];
201 break;
202 // Lesson
203 case 'gamipress_masterstudy_lms_complete_lesson':
204 case 'gamipress_masterstudy_lms_complete_specific_lesson':
205 case 'gamipress_masterstudy_lms_complete_lesson_specific_course':
206 // Add the lesson and course IDs
207 $log_meta['lesson_id'] = $args[0];
208 $log_meta['course_id'] = $args[2];
209 break;
210 // Course
211 case 'gamipress_masterstudy_lms_enroll_course':
212 case 'gamipress_masterstudy_lms_enroll_specific_course':
213 case 'gamipress_masterstudy_lms_complete_course':
214 case 'gamipress_masterstudy_lms_complete_specific_course':
215 case 'gamipress_masterstudy_lms_download_course_certificate':
216 case 'gamipress_masterstudy_lms_download_specific_course_certificate':
217 // Add the course ID
218 $log_meta['course_id'] = $args[0];
219 break;
220 }
221
222 return $log_meta;
223 }
224 add_filter( 'gamipress_log_event_trigger_meta_data', 'gamipress_masterstudy_lms_log_event_trigger_meta_data', 10, 5 );