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/peepso/includes/triggers.php +398 -0 7.9.3 → 8.0.5 View file →
@@ -1,0 +1,398 @@
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 );