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 / coursepress / includes / triggers.php

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

208 lines 7.9 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\CoursePress\Triggers
6 * @since 1.0.0
7 */
8
9 // Exit if accessed directly
10 if( !defined( 'ABSPATH' ) ) exit;
11
12 /**
13 * Register CoursePress specific triggers
14 *
15 * @param array $triggers
16 * @return mixed
17 */
18 function gamipress_coursepress_activity_triggers( $triggers ) {
19
20 $triggers[__( 'CoursePress', 'gamipress' )] = array(
21
22 // Modules
23 'gamipress_coursepress_complete_module' => __( 'Complete a module', 'gamipress' ),
24 'gamipress_coursepress_complete_specific_module' => __( 'Complete a specific module', 'gamipress' ),
25 'gamipress_coursepress_complete_module_specific_unit' => __( 'Complete a module of a specific unit', 'gamipress' ),
26 'gamipress_coursepress_complete_module_specific_course' => __( 'Complete a module of a specific course', 'gamipress' ),
27
28 // Units
29 'gamipress_coursepress_complete_unit' => __( 'Complete a unit', 'gamipress' ),
30 'gamipress_coursepress_complete_specific_unit' => __( 'Complete a specific unit', 'gamipress' ),
31 'gamipress_coursepress_complete_unit_specific_course' => __( 'Complete a unit of a specific course', 'gamipress' ),
32
33 // Courses
34 'gamipress_coursepress_complete_course' => __( 'Complete a course', 'gamipress' ),
35 'gamipress_coursepress_complete_specific_course' => __( 'Complete a specific course', 'gamipress' ),
36 );
37
38 return $triggers;
39
40 }
41 add_filter( 'gamipress_activity_triggers', 'gamipress_coursepress_activity_triggers' );
42
43 /**
44 * Register CoursePress specific activity triggers
45 *
46 * @since 1.0.0
47 *
48 * @param array $specific_activity_triggers
49 * @return array
50 */
51 function gamipress_coursepress_specific_activity_triggers( $specific_activity_triggers ) {
52
53 // Modules
54 $specific_activity_triggers['gamipress_coursepress_complete_specific_module'] = array( 'module' );
55 $specific_activity_triggers['gamipress_coursepress_complete_module_specific_unit'] = array( 'unit' );
56 $specific_activity_triggers['gamipress_coursepress_complete_module_specific_course'] = array( 'course' );
57
58 // Units
59 $specific_activity_triggers['gamipress_coursepress_complete_specific_unit'] = array( 'unit' );
60 $specific_activity_triggers['gamipress_coursepress_complete_unit_specific_course'] = array( 'course' );
61
62 // Courses
63 $specific_activity_triggers['gamipress_coursepress_complete_specific_course'] = array( 'course' );
64
65 return $specific_activity_triggers;
66 }
67 add_filter( 'gamipress_specific_activity_triggers', 'gamipress_coursepress_specific_activity_triggers' );
68
69 /**
70 * Register CoursePress specific activity triggers labels
71 *
72 * @since 1.0.0
73 *
74 * @param array $specific_activity_trigger_labels
75 * @return array
76 */
77 function gamipress_coursepress_specific_activity_trigger_label( $specific_activity_trigger_labels ) {
78
79 // Modules
80 $specific_activity_trigger_labels['gamipress_coursepress_complete_specific_module'] = __( 'Complete the module %s', 'gamipress' );
81 $specific_activity_trigger_labels['gamipress_coursepress_complete_module_specific_unit'] = __( 'Complete a module of the unit %s', 'gamipress' );
82 $specific_activity_trigger_labels['gamipress_coursepress_complete_module_specific_course'] = __( 'Complete a module of the course %s', 'gamipress' );
83
84 // Units
85 $specific_activity_trigger_labels['gamipress_coursepress_complete_specific_unit'] = __( 'Complete the unit %s', 'gamipress' );
86 $specific_activity_trigger_labels['gamipress_coursepress_complete_unit_specific_course'] = __( 'Complete a unit of the course %s', 'gamipress' );
87
88 // Courses
89 $specific_activity_trigger_labels['gamipress_coursepress_complete_specific_course'] = __( 'Complete the course %s', 'gamipress' );
90
91 return $specific_activity_trigger_labels;
92 }
93 add_filter( 'gamipress_specific_activity_trigger_label', 'gamipress_coursepress_specific_activity_trigger_label' );
94
95 /**
96 * Get user for a given trigger action.
97 *
98 * @since 1.0.0
99 *
100 * @param integer $user_id user ID to override.
101 * @param string $trigger Trigger name.
102 * @param array $args Passed trigger args.
103 * @return integer User ID.
104 */
105 function gamipress_coursepress_trigger_get_user_id( $user_id, $trigger, $args ) {
106
107 switch ( $trigger ) {
108 // Modules
109 case 'gamipress_coursepress_complete_module':
110 case 'gamipress_coursepress_complete_specific_module':
111 case 'gamipress_coursepress_complete_module_specific_unit':
112 case 'gamipress_coursepress_complete_module_specific_course':
113 // Units
114 case 'gamipress_coursepress_complete_unit':
115 case 'gamipress_coursepress_complete_specific_unit':
116 case 'gamipress_coursepress_complete_unit_specific_course':
117 // Courses
118 case 'gamipress_coursepress_complete_course':
119 case 'gamipress_coursepress_complete_specific_course':
120 $user_id = $args[1];
121 break;
122 }
123
124 return $user_id;
125
126 }
127 add_filter( 'gamipress_trigger_get_user_id', 'gamipress_coursepress_trigger_get_user_id', 10, 3 );
128
129 /**
130 * Get the id for a given specific trigger action.
131 *
132 * @since 1.0.0
133 *
134 * @param integer $specific_id Specific ID.
135 * @param string $trigger Trigger name.
136 * @param array $args Passed trigger args.
137 *
138 * @return integer Specific ID.
139 */
140 function gamipress_coursepress_specific_trigger_get_id( $specific_id, $trigger = '', $args = array() ) {
141
142 switch ( $trigger ) {
143 case 'gamipress_coursepress_complete_specific_module':
144 case 'gamipress_coursepress_complete_specific_unit':
145 case 'gamipress_coursepress_complete_specific_course':
146 $specific_id = $args[0];
147 break;
148 case 'gamipress_coursepress_complete_module_specific_unit':
149 case 'gamipress_coursepress_complete_unit_specific_course':
150 $specific_id = $args[2];
151 break;
152 case 'gamipress_coursepress_complete_module_specific_course':
153 $specific_id = $args[3];
154 break;
155 }
156
157 return $specific_id;
158 }
159 add_filter( 'gamipress_specific_trigger_get_id', 'gamipress_coursepress_specific_trigger_get_id', 10, 3 );
160
161 /**
162 * Extended meta data for event trigger logging
163 *
164 * @since 1.0.0
165 *
166 * @param array $log_meta
167 * @param integer $user_id
168 * @param string $trigger
169 * @param integer $site_id
170 * @param array $args
171 *
172 * @return array
173 */
174 function gamipress_coursepress_log_event_trigger_meta_data( $log_meta, $user_id, $trigger, $site_id, $args ) {
175
176 switch ( $trigger ) {
177
178 // Modules
179 case 'gamipress_coursepress_complete_module':
180 case 'gamipress_coursepress_complete_specific_module':
181 case 'gamipress_coursepress_complete_module_specific_unit':
182 case 'gamipress_coursepress_complete_module_specific_course':
183 // Add the module, unit and course IDs
184 $log_meta['module_id'] = $args[0];
185 $log_meta['unit_id'] = $args[2];
186 $log_meta['course_id'] = $args[3];
187 break;
188
189 // Units
190 case 'gamipress_coursepress_complete_unit':
191 case 'gamipress_coursepress_complete_specific_unit':
192 case 'gamipress_coursepress_complete_unit_specific_course':
193 // Add the unit and course IDs
194 $log_meta['unit_id'] = $args[0];
195 $log_meta['course_id'] = $args[2];
196 break;
197
198 // Courses
199 case 'gamipress_coursepress_complete_course':
200 case 'gamipress_coursepress_complete_specific_course':
201 // Add the course ID
202 $log_meta['course_id'] = $args[0];
203 break;
204 }
205
206 return $log_meta;
207 }
208 add_filter( 'gamipress_log_event_trigger_meta_data', 'gamipress_coursepress_log_event_trigger_meta_data', 10, 5 );