PluginProbe
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI / 7.9.8
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI v7.9.8
8.0.4 8.0.3 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 All 46 releases
gamipress / integrations / thrive-apprentice / includes / triggers.php

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

233 lines 7.5 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\Thrive_Apprentice\Triggers
6 * @since 1.0.0
7 */
8
9 // Exit if accessed directly
10 if( !defined( 'ABSPATH' ) ) exit;
11
12 /**
13 * Register plugin activity triggers
14 *
15 * @param array $triggers
16 * @return mixed
17 */
18 function gamipress_thrive_apprentice_activity_triggers( $triggers ) {
19
20 $triggers[__( 'Thrive Apprentice', 'gamipress' )] = array(
21
22 // Lessons
23 'gamipress_thrive_apprentice_complete_lesson' => __( 'Complete any lesson', 'gamipress' ),
24 'gamipress_thrive_apprentice_complete_specific_lesson' => __( 'Complete specific lesson', 'gamipress' ),
25
26 // Modules
27 'gamipress_thrive_apprentice_complete_module' => __( 'Complete any module', 'gamipress' ),
28 'gamipress_thrive_apprentice_complete_specific_module' => __( 'Complete specific module', 'gamipress' ),
29
30 // Courses
31 'gamipress_thrive_apprentice_complete_course' => __( 'Complete any course', 'gamipress' ),
32 'gamipress_thrive_apprentice_complete_specific_course' => __( 'Complete specific course', 'gamipress' ),
33
34 );
35
36 return $triggers;
37
38 }
39 add_filter( 'gamipress_activity_triggers', 'gamipress_thrive_apprentice_activity_triggers' );
40
41 /**
42 * Register specific activity triggers
43 *
44 * @since 1.0.0
45 *
46 * @param array $specific_activity_triggers
47 * @return array
48 */
49 function gamipress_thrive_apprentice_specific_activity_triggers( $specific_activity_triggers ) {
50
51 $specific_activity_triggers['gamipress_thrive_apprentice_complete_specific_lesson'] = array( 'tva_lesson' );
52 $specific_activity_triggers['gamipress_thrive_apprentice_complete_specific_module'] = array( 'tva_module' );
53 $specific_activity_triggers['gamipress_thrive_apprentice_complete_specific_course'] = array( 'tva_courses_posts' );
54
55 return $specific_activity_triggers;
56 }
57 add_filter( 'gamipress_specific_activity_triggers', 'gamipress_thrive_apprentice_specific_activity_triggers' );
58
59 /**
60 * Register specific activity triggers labels
61 *
62 * @since 1.0.0
63 *
64 * @param array $specific_activity_trigger_labels
65 * @return array
66 */
67 function gamipress_thrive_apprentice_specific_activity_trigger_label( $specific_activity_trigger_labels ) {
68
69 $specific_activity_trigger_labels['gamipress_thrive_apprentice_complete_specific_lesson'] = __( 'Complete %s lesson', 'gamipress' );
70 $specific_activity_trigger_labels['gamipress_thrive_apprentice_complete_specific_module'] = __( 'Complete %s module', 'gamipress' );
71 $specific_activity_trigger_labels['gamipress_thrive_apprentice_complete_specific_course'] = __( 'Complete %s course', 'gamipress' );
72
73 return $specific_activity_trigger_labels;
74 }
75 add_filter( 'gamipress_specific_activity_trigger_label', 'gamipress_thrive_apprentice_specific_activity_trigger_label' );
76
77 /**
78 * Get plugin specific activity trigger post title
79 *
80 * @since 1.0.0
81 *
82 * @param string $post_title
83 * @param integer $specific_id
84 * @param string $trigger_type
85 *
86 * @return string
87 */
88 function gamipress_thrive_apprentice_specific_activity_trigger_post_title( $post_title, $specific_id, $trigger_type ) {
89
90 switch( $trigger_type ) {
91
92 case 'gamipress_thrive_apprentice_complete_specific_course':
93 if( absint( $specific_id ) !== 0 ) {
94
95 // Get the course title
96 $course_title = gamipress_thrive_apprentice_get_course_title( $specific_id );
97
98 $post_title = $course_title;
99 }
100 break;
101 }
102
103 return $post_title;
104
105 }
106 add_filter( 'gamipress_specific_activity_trigger_post_title', 'gamipress_thrive_apprentice_specific_activity_trigger_post_title', 10, 3 );
107
108 /**
109 * Get plugin specific activity trigger permalink
110 *
111 * @since 1.0.0
112 *
113 * @param string $permalink
114 * @param integer $specific_id
115 * @param string $trigger_type
116 * @param integer $site_id
117 *
118 * @return string
119 */
120 function gamipress_thrive_apprentice_specific_activity_trigger_permalink( $permalink, $specific_id, $trigger_type, $site_id ) {
121
122 switch( $trigger_type ) {
123 case 'gamipress_thrive_apprentice_complete_specific_course':
124 $permalink = '';
125 break;
126 }
127
128 return $permalink;
129
130 }
131 add_filter( 'gamipress_specific_activity_trigger_permalink', 'gamipress_thrive_apprentice_specific_activity_trigger_permalink', 10, 4 );
132
133
134 /**
135 * Get user for a given trigger action.
136 *
137 * @since 1.0.0
138 *
139 * @param integer $user_id user ID to override.
140 * @param string $trigger Trigger name.
141 * @param array $args Passed trigger args.
142 * @return integer User ID.
143 */
144
145 function gamipress_thrive_apprentice_trigger_get_user_id( $user_id, $trigger, $args ) {
146
147 switch ( $trigger ) {
148 // Lessons
149 case 'gamipress_thrive_apprentice_complete_lesson':
150 case 'gamipress_thrive_apprentice_complete_specific_lesson':
151 // Modules
152 case 'gamipress_thrive_apprentice_complete_module':
153 case 'gamipress_thrive_apprentice_complete_specific_module':
154 // Courses
155 case 'gamipress_thrive_apprentice_complete_course':
156 case 'gamipress_thrive_apprentice_complete_specific_course':
157 $user_id = $args[1];
158 break;
159 }
160
161 return $user_id;
162
163 }
164 add_filter( 'gamipress_trigger_get_user_id', 'gamipress_thrive_apprentice_trigger_get_user_id', 10, 3 );
165
166 /**
167 * Get the id for a given specific trigger action.
168 *
169 * @since 1.0.0
170 *
171 * @param integer $specific_id Specific ID to override.
172 * @param string $trigger Trigger name.
173 * @param array $args Passed trigger args.
174 *
175 * @return integer Specific ID.
176 */
177 function gamipress_thrive_apprentice_specific_trigger_get_id( $specific_id, $trigger, $args ) {
178
179 switch ( $trigger ) {
180 case 'gamipress_thrive_apprentice_complete_specific_lesson':
181 case 'gamipress_thrive_apprentice_complete_specific_module':
182 case 'gamipress_thrive_apprentice_complete_specific_course':
183 $specific_id = $args[0];
184 break;
185 }
186
187 return $specific_id;
188
189 }
190
191 add_filter( 'gamipress_specific_trigger_get_id', 'gamipress_thrive_apprentice_specific_trigger_get_id', 10, 3 );
192
193 /**
194 * Extended meta data for event trigger logging
195 *
196 * @since 1.0.2
197 *
198 * @param array $log_meta
199 * @param integer $user_id
200 * @param string $trigger
201 * @param integer $site_id
202 * @param array $args
203 *
204 * @return array
205 */
206 function gamipress_thrive_apprentice_log_event_trigger_meta_data( $log_meta, $user_id, $trigger, $site_id, $args ) {
207
208 switch ( $trigger ) {
209
210 // Lessons
211 case 'gamipress_thrive_apprentice_complete_lesson':
212 case 'gamipress_thrive_apprentice_complete_specific_lesson':
213 // Add the lesson ID
214 $log_meta['lesson_id'] = $args[0];
215 break;
216
217 // Modules
218 case 'gamipress_thrive_apprentice_complete_module':
219 case 'gamipress_thrive_apprentice_complete_specific_module':
220 // Add the module ID
221 $log_meta['module_id'] = $args[0];
222 break;
223 // Courses
224 case 'gamipress_thrive_apprentice_complete_course':
225 case 'gamipress_thrive_apprentice_complete_specific_course':
226 // Add the Course ID
227 $log_meta['course_id'] = $args[0];
228 break;
229 }
230
231 return $log_meta;
232 }
233 add_filter( 'gamipress_log_event_trigger_meta_data', 'gamipress_thrive_apprentice_log_event_trigger_meta_data', 10, 5 );