PluginProbe
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI / 8.0.5
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI v8.0.5
8.0.5 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 All 47 releases
← All changes | integrations/thrive-apprentice/includes/triggers.php +233 -0 7.9.4 → 8.0.5 View file →
@@ -1,0 +1,233 @@
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 );