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

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

398 lines 15.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\PeepSo\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_peepso_activity_triggers( $triggers ) {
21
22 $triggers[__( 'PeepSo', 'gamipress' )] = array(
23 'gamipress_peepso_change_avatar' => __( 'Change profile avatar', 'gamipress' ),
24 'gamipress_peepso_change_cover' => __( 'Change cover image', 'gamipress' ),
25
26 'gamipress_peepso_new_activity_post' => __( 'Write an activity post', 'gamipress' ),
27 'gamipress_peepso_new_activity_comment' => __( 'Write a comment on an activity post', 'gamipress' ),
28 );
29
30 $triggers[__( 'PeepSo Likes', 'gamipress' )] = array(
31 // Like
32 'gamipress_peepso_profile_like' => __( 'Like an user profile', 'gamipress' ),
33 'gamipress_peepso_get_profile_like' => __( 'Get a like on your profile', 'gamipress' ),
34
35 'gamipress_peepso_post_like' => __( 'Like an activity post', 'gamipress' ),
36 'gamipress_peepso_get_post_like' => __( 'Get a like an activity post', 'gamipress' ),
37
38 'gamipress_peepso_photo_post_like' => __( 'Like an activity post with a photo', 'gamipress' ),
39 'gamipress_peepso_get_photo_post_like' => __( 'Get a like an activity post with a photo', 'gamipress' ),
40
41 'gamipress_peepso_video_post_like' => __( 'Like an activity post with a video', 'gamipress' ),
42 'gamipress_peepso_get_video_post_like' => __( 'Get a like an activity post with a video', 'gamipress' ),
43
44 'gamipress_peepso_comment_like' => __( 'Like a comment', 'gamipress' ),
45 'gamipress_peepso_get_comment_like' => __( 'Get a like a comment', 'gamipress' ),
46
47 // Unlike
48 'gamipress_peepso_profile_unlike' => __( 'Unlike an user profile', 'gamipress' ),
49 'gamipress_peepso_get_profile_unlike' => __( 'Get an unlike on your profile', 'gamipress' ),
50
51 'gamipress_peepso_post_unlike' => __( 'Unlike an activity post', 'gamipress' ),
52 'gamipress_peepso_get_post_unlike' => __( 'Get an unlike an activity post', 'gamipress' ),
53
54 'gamipress_peepso_photo_post_unlike' => __( 'Unlike an activity post with a photo', 'gamipress' ),
55 'gamipress_peepso_get_photo_post_unlike' => __( 'Get an unlike an activity post with a photo', 'gamipress' ),
56
57 'gamipress_peepso_video_post_unlike' => __( 'Unlike an activity post with a video', 'gamipress' ),
58 'gamipress_peepso_get_video_post_unlike' => __( 'Get an unlike an activity post with a video', 'gamipress' ),
59
60 'gamipress_peepso_comment_unlike' => __( 'Unlike a comment', 'gamipress' ),
61 'gamipress_peepso_get_comment_unlike' => __( 'Get an unlike a comment', 'gamipress' ),
62 );
63
64 $triggers[__( 'PeepSo Reactions', 'gamipress' )] = array(
65 // React
66 'gamipress_peepso_profile_react' => __( 'React to an user profile', 'gamipress' ),
67 'gamipress_peepso_get_profile_react' => __( 'Get a reaction on your profile', 'gamipress' ),
68
69 'gamipress_peepso_post_react' => __( 'React to an activity post', 'gamipress' ),
70 'gamipress_peepso_get_post_react' => __( 'Get a reaction an activity post', 'gamipress' ),
71
72 'gamipress_peepso_photo_post_react' => __( 'React to an activity post with a photo', 'gamipress' ),
73 'gamipress_peepso_get_photo_post_react' => __( 'Get a reaction an activity post with a photo', 'gamipress' ),
74
75 'gamipress_peepso_video_post_react' => __( 'React to an activity post with a video', 'gamipress' ),
76 'gamipress_peepso_get_video_post_react' => __( 'Get a reaction an activity post with a video', 'gamipress' ),
77
78 'gamipress_peepso_comment_react' => __( 'React to a comment', 'gamipress' ),
79 'gamipress_peepso_get_comment_react' => __( 'Get a reaction a comment', 'gamipress' ),
80
81 // Unreact
82 'gamipress_peepso_profile_unreact' => __( 'Remove a reaction on an user profile', 'gamipress' ),
83 'gamipress_peepso_get_profile_unreact' => __( 'Get a reaction removed on your profile', 'gamipress' ),
84
85 'gamipress_peepso_post_unreact' => __( 'Remove a reaction on an activity post', 'gamipress' ),
86 'gamipress_peepso_get_post_unreact' => __( 'Get a reaction removed on an activity post', 'gamipress' ),
87
88 'gamipress_peepso_photo_post_unreact' => __( 'Remove a reaction on an activity post with a photo', 'gamipress' ),
89 'gamipress_peepso_get_photo_post_unreact' => __( 'Get a reaction removed on an activity post with a photo', 'gamipress' ),
90
91 'gamipress_peepso_video_post_unreact' => __( 'Remove a reaction on an activity post with a video', 'gamipress' ),
92 'gamipress_peepso_get_video_post_unreact' => __( 'Get a reaction removed on an activity post with a video', 'gamipress' ),
93
94 'gamipress_peepso_comment_unreact' => __( 'Remove a reaction on a comment', 'gamipress' ),
95 'gamipress_peepso_get_comment_unreact' => __( 'Get a reaction removed on a comment', 'gamipress' ),
96 );
97
98 // Friends
99 if( class_exists( 'PeepSoFriendsPlugin' ) ) {
100 $triggers[__( 'PeepSo Friends', 'gamipress' )] = array(
101 'gamipress_peepso_friend_request' => __( 'Send a friend request', 'gamipress' ),
102 'gamipress_peepso_friend_add' => __( 'Add a new friend', 'gamipress' ),
103 );
104 }
105
106 // Groups
107 if( class_exists( 'PeepSoGroupsPlugin' ) ) {
108 $triggers[__( 'PeepSo Groups', 'gamipress' )] = array(
109 'gamipress_peepso_create_group' => __( 'Create a group', 'gamipress' ),
110 'gamipress_peepso_join_group' => __( 'Join a group', 'gamipress' ),
111 'gamipress_peepso_join_specific_group' => __( 'Join a specific group', 'gamipress' ),
112 'gamipress_peepso_change_group_avatar' => __( 'Change group avatar', 'gamipress' ),
113 'gamipress_peepso_change_group_cover' => __( 'Change group cover image', 'gamipress' ),
114 );
115 }
116
117 // Messages
118 if( class_exists( 'PeepSoMessagesPlugin' ) ) {
119 $triggers[__( 'PeepSo Messages', 'gamipress' )] = array(
120 'gamipress_peepso_new_conversation' => __( 'Send a message', 'gamipress' ),
121 );
122 }
123
124 return $triggers;
125
126 }
127 add_filter( 'gamipress_activity_triggers', 'gamipress_peepso_activity_triggers' );
128
129 /**
130 * Register plugin specific activity triggers
131 *
132 * @since 1.0.0
133 *
134 * @param array $specific_activity_triggers
135 * @return array
136 */
137 function gamipress_peepso_specific_activity_triggers( $specific_activity_triggers ) {
138
139 $group_post_type = ( class_exists( 'PeepSoGroup' ) ? PeepSoGroup::POST_TYPE : 'peepso-group' );
140
141 // Groups
142 if( class_exists( 'PeepSoGroupsPlugin' ) ) {
143 $specific_activity_triggers['gamipress_peepso_join_specific_group'] = array( $group_post_type );
144 }
145
146 return $specific_activity_triggers;
147 }
148 add_filter( 'gamipress_specific_activity_triggers', 'gamipress_peepso_specific_activity_triggers' );
149
150 /**
151 * Register plugin specific activity triggers labels
152 *
153 * @since 1.0.0
154 *
155 * @param array $specific_activity_trigger_labels
156 * @return array
157 */
158 function gamipress_peepso_specific_activity_trigger_label( $specific_activity_trigger_labels ) {
159
160 $specific_activity_trigger_labels['gamipress_peepso_join_specific_group'] = __( 'Join %s group', 'gamipress' );
161
162 return $specific_activity_trigger_labels;
163 }
164 add_filter( 'gamipress_specific_activity_trigger_label', 'gamipress_peepso_specific_activity_trigger_label' );
165
166 /**
167 * Get user for a PeepSo trigger action.
168 *
169 * @since 1.0.0
170 *
171 * @param integer $user_id user ID to override.
172 * @param string $trigger Trigger name.
173 * @param array $args Passed trigger args.
174 * @return integer User ID.
175 */
176 function gamipress_peepso_trigger_get_user_id( $user_id, $trigger, $args ) {
177
178 switch ( $trigger ) {
179 case 'gamipress_peepso_change_avatar':
180 case 'gamipress_peepso_change_cover':
181 // Friends
182 case 'gamipress_peepso_friend_request':
183 case 'gamipress_peepso_friend_add':
184 $user_id = $args[0];
185 break;
186 case 'gamipress_peepso_new_activity_post':
187 case 'gamipress_peepso_new_activity_comment':
188 // Like
189 case 'gamipress_peepso_profile_like':
190 case 'gamipress_peepso_get_profile_like':
191
192 case 'gamipress_peepso_post_like':
193 case 'gamipress_peepso_get_post_like':
194
195 case 'gamipress_peepso_photo_post_like':
196 case 'gamipress_peepso_get_photo_post_like':
197
198 case 'gamipress_peepso_video_post_like':
199 case 'gamipress_peepso_get_video_post_like':
200
201 case 'gamipress_peepso_comment_like':
202 case 'gamipress_peepso_get_comment_like':
203 // Unlike
204 case 'gamipress_peepso_profile_unlike':
205 case 'gamipress_peepso_get_profile_unlike':
206
207 case 'gamipress_peepso_post_unlike':
208 case 'gamipress_peepso_get_post_unlike':
209
210 case 'gamipress_peepso_photo_post_unlike':
211 case 'gamipress_peepso_get_photo_post_unlike':
212
213 case 'gamipress_peepso_video_post_unlike':
214 case 'gamipress_peepso_get_video_post_unlike':
215
216 case 'gamipress_peepso_comment_unlike':
217 case 'gamipress_peepso_get_comment_unlike':
218 // React
219 case 'gamipress_peepso_profile_react':
220 case 'gamipress_peepso_get_profile_react':
221
222 case 'gamipress_peepso_post_react':
223 case 'gamipress_peepso_get_post_react':
224
225 case 'gamipress_peepso_photo_post_react':
226 case 'gamipress_peepso_get_photo_post_react':
227
228 case 'gamipress_peepso_video_post_react':
229 case 'gamipress_peepso_get_video_post_react':
230
231 case 'gamipress_peepso_comment_react':
232 case 'gamipress_peepso_get_comment_react':
233 // Unreact
234 case 'gamipress_peepso_profile_unreact':
235 case 'gamipress_peepso_get_profile_unreact':
236
237 case 'gamipress_peepso_post_unreact':
238 case 'gamipress_peepso_get_post_unreact':
239
240 case 'gamipress_peepso_photo_post_unreact':
241 case 'gamipress_peepso_get_photo_post_unreact':
242
243 case 'gamipress_peepso_video_post_unreact':
244 case 'gamipress_peepso_get_video_post_unreact':
245
246 case 'gamipress_peepso_comment_unreact':
247 case 'gamipress_peepso_get_comment_unreact':
248 // Groups
249 case 'gamipress_peepso_create_group':
250 case 'gamipress_peepso_join_group':
251 case 'gamipress_peepso_join_specific_group':
252
253 case 'gamipress_peepso_change_group_avatar':
254 case 'gamipress_peepso_change_group_cover':
255 // Messages
256 case 'gamipress_peepso_new_conversation':
257 $user_id = $args[1];
258 break;
259 }
260
261 return $user_id;
262
263 }
264 add_filter( 'gamipress_trigger_get_user_id', 'gamipress_peepso_trigger_get_user_id', 10, 3 );
265
266 /**
267 * Get the id for a PeepSo specific trigger action.
268 *
269 * @since 1.0.0
270 *
271 * @param integer $specific_id Specific ID.
272 * @param string $trigger Trigger name.
273 * @param array $args Passed trigger args.
274 *
275 * @return integer Specific ID.
276 */
277 function gamipress_peepso_specific_trigger_get_id( $specific_id, $trigger = '', $args = array() ) {
278
279 switch ( $trigger ) {
280 case 'gamipress_peepso_join_specific_group':
281 $specific_id = $args[0];
282 break;
283 }
284
285 return $specific_id;
286 }
287 add_filter( 'gamipress_specific_trigger_get_id', 'gamipress_peepso_specific_trigger_get_id', 10, 3 );
288
289 /**
290 * Extended meta data for event trigger logging
291 *
292 * @since 1.0.0
293 *
294 * @param array $log_meta
295 * @param integer $user_id
296 * @param string $trigger
297 * @param integer $site_id
298 * @param array $args
299 *
300 * @return array
301 */
302 function gamipress_peepso_log_event_trigger_meta_data( $log_meta, $user_id, $trigger, $site_id, $args ) {
303
304 switch ( $trigger ) {
305 case 'gamipress_peepso_new_activity_post':
306 case 'gamipress_peepso_new_activity_comment':
307 // Add the activity and post IDs
308 $log_meta['activity_id'] = $args[0];
309 $log_meta['post_id'] = $args[2];
310 break;
311 // Like/Unlike
312 case 'gamipress_peepso_get_profile_like':
313 case 'gamipress_peepso_get_profile_unlike':
314 // Add the liker ID
315 $log_meta['liker_id'] = $args[0];
316 break;
317 case 'gamipress_peepso_profile_like':
318 case 'gamipress_peepso_post_like':
319 case 'gamipress_peepso_photo_post_like':
320 case 'gamipress_peepso_video_post_like':
321 case 'gamipress_peepso_comment_like':
322
323 case 'gamipress_peepso_profile_unlike':
324 case 'gamipress_peepso_post_unlike':
325 case 'gamipress_peepso_photo_post_unlike':
326 case 'gamipress_peepso_video_post_unlike':
327 case 'gamipress_peepso_comment_unlike':
328 // Add the liker ID
329 $log_meta['liker_id'] = $args[1];
330 break;
331 case 'gamipress_peepso_get_post_like':
332 case 'gamipress_peepso_get_photo_post_like':
333 case 'gamipress_peepso_get_video_post_like':
334 case 'gamipress_peepso_get_comment_like':
335
336 case 'gamipress_peepso_get_post_unlike':
337 case 'gamipress_peepso_get_photo_post_unlike':
338 case 'gamipress_peepso_get_video_post_unlike':
339 case 'gamipress_peepso_get_comment_unlike':
340 // Add the liker ID
341 $log_meta['liker_id'] = $args[2];
342 break;
343 // React/Unreact
344 case 'gamipress_peepso_get_profile_react':
345 case 'gamipress_peepso_get_profile_unreact':
346 // Add the reacter ID
347 $log_meta['reacter_id'] = $args[0];
348 break;
349 case 'gamipress_peepso_profile_react':
350 case 'gamipress_peepso_post_react':
351 case 'gamipress_peepso_photo_post_react':
352 case 'gamipress_peepso_video_post_react':
353 case 'gamipress_peepso_comment_react':
354
355 case 'gamipress_peepso_profile_unreact':
356 case 'gamipress_peepso_post_unreact':
357 case 'gamipress_peepso_photo_post_unreact':
358 case 'gamipress_peepso_video_post_unreact':
359 case 'gamipress_peepso_comment_unreact':
360 // Add the reacter ID
361 $log_meta['reacter_id'] = $args[1];
362 break;
363 case 'gamipress_peepso_get_post_react':
364 case 'gamipress_peepso_get_photo_post_react':
365 case 'gamipress_peepso_get_video_post_react':
366 case 'gamipress_peepso_get_comment_react':
367 case 'gamipress_peepso_get_post_unreact':
368 case 'gamipress_peepso_get_photo_post_unreact':
369 case 'gamipress_peepso_get_video_post_unreact':
370 case 'gamipress_peepso_get_comment_unreact':
371 // Add the reacter ID
372 $log_meta['reacter_id'] = $args[2];
373 break;
374 // Friends
375 case 'gamipress_peepso_friend_request':
376 case 'gamipress_peepso_friend_add':
377 // Add the friend ID
378 $log_meta['friend_id'] = $args[1];
379 break;
380 // Groups
381 case 'gamipress_peepso_create_group':
382 case 'gamipress_peepso_join_group':
383 case 'gamipress_peepso_join_specific_group':
384 case 'gamipress_peepso_change_group_avatar':
385 case 'gamipress_peepso_change_group_cover':
386 // Add the group ID
387 $log_meta['group_id'] = $args[0];
388 break;
389 case 'gamipress_peepso_new_conversation':
390 // Add the message ID
391 $log_meta['message_id'] = $args[0];
392 break;
393
394 }
395
396 return $log_meta;
397 }
398 add_filter( 'gamipress_log_event_trigger_meta_data', 'gamipress_peepso_log_event_trigger_meta_data', 10, 5 );