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

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

189 lines 6.4 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\Favorites\Triggers
6 * @since 1.0.0
7 */
8
9 // Exit if accessed directly
10 if( !defined( 'ABSPATH' ) ) exit;
11
12 /**
13 * Register Favorites specific triggers
14 *
15 * @since 1.0.0
16 *
17 * @param array $triggers
18 * @return mixed
19 */
20 function gamipress_favorites_activity_triggers( $triggers ) {
21
22 $triggers[__( 'Favorites', 'gamipress' )] = array(
23 // Favorite
24 'gamipress_favorites_favorite' => __( 'Favorite a post', 'gamipress' ),
25 'gamipress_favorites_specific_favorite' => __( 'Favorite a specific post', 'gamipress' ),
26 'gamipress_favorites_user_favorite' => __( 'Get a favorite on a post', 'gamipress' ),
27 'gamipress_favorites_user_specific_favorite' => __( 'Get a favorite on a specific post', 'gamipress' ),
28 // Unfavorite
29 'gamipress_favorites_unfavorite' => __( 'Unfavorite a post', 'gamipress' ),
30 'gamipress_favorites_specific_unfavorite' => __( 'Unfavorite a specific post', 'gamipress' ),
31 'gamipress_favorites_user_unfavorite' => __( 'Get a unfavorite on a post', 'gamipress' ),
32 'gamipress_favorites_user_specific_unfavorite' => __( 'Get a unfavorite on a specific post', 'gamipress' ),
33 );
34
35 return $triggers;
36
37 }
38 add_filter( 'gamipress_activity_triggers', 'gamipress_favorites_activity_triggers' );
39
40 /**
41 * Register Favorites specific activity triggers
42 *
43 * @since 1.0.0
44 *
45 * @param array $specific_activity_triggers
46 * @return array
47 */
48 function gamipress_favorites_specific_activity_triggers( $specific_activity_triggers ) {
49
50 $post_types = array();
51
52 // Get favorites post type display options
53 $types = get_option('simplefavorites_display');
54
55 if ( ! empty( $types['posttypes'] ) && $types !== "" ) {
56
57 foreach ( $types['posttypes'] as $key => $type ) {
58
59 // If favorites display is active, then add the post type
60 if ( isset( $type['display'] ) && $type['display'] == 'true' ) {
61 $post_types[] = $key;
62 }
63
64 }
65
66 }
67
68 $specific_activity_triggers['gamipress_favorites_specific_favorite'] = $post_types;
69 $specific_activity_triggers['gamipress_favorites_user_specific_favorite'] = $post_types;
70 $specific_activity_triggers['gamipress_favorites_specific_unfavorite'] = $post_types;
71 $specific_activity_triggers['gamipress_favorites_user_specific_unfavorite'] = $post_types;
72
73 return $specific_activity_triggers;
74 }
75 add_filter( 'gamipress_specific_activity_triggers', 'gamipress_favorites_specific_activity_triggers' );
76
77 /**
78 * Register Favorites specific activity triggers labels
79 *
80 * @since 1.0.0
81 *
82 * @param array $specific_activity_trigger_labels
83 * @return array
84 */
85 function gamipress_favorites_specific_activity_trigger_label( $specific_activity_trigger_labels ) {
86
87 $specific_activity_trigger_labels['gamipress_favorites_specific_favorite'] = __( 'Favorite %s', 'gamipress' );
88 $specific_activity_trigger_labels['gamipress_favorites_user_specific_favorite'] = __( 'Get %s favorited', 'gamipress' );
89 $specific_activity_trigger_labels['gamipress_favorites_specific_unfavorite'] = __( 'Unfavorite %s', 'gamipress' );
90 $specific_activity_trigger_labels['gamipress_favorites_user_specific_unfavorite'] = __( 'Get %s unfavorited', 'gamipress' );
91
92 return $specific_activity_trigger_labels;
93 }
94 add_filter( 'gamipress_specific_activity_trigger_label', 'gamipress_favorites_specific_activity_trigger_label' );
95
96 /**
97 * Get user for a given trigger action.
98 *
99 * @since 1.0.0
100 *
101 * @param integer $user_id user ID to override.
102 * @param string $trigger Trigger name.
103 * @param array $args Passed trigger args.
104 * @return integer User ID.
105 */
106 function gamipress_favorites_trigger_get_user_id( $user_id, $trigger, $args ) {
107
108 switch ( $trigger ) {
109 // Favorite
110 case 'gamipress_favorites_favorite':
111 case 'gamipress_favorites_specific_favorite':
112 case 'gamipress_favorites_user_favorite':
113 case 'gamipress_favorites_user_specific_favorite':
114 // Unfavorite
115 case 'gamipress_favorites_unfavorite':
116 case 'gamipress_favorites_specific_unfavorite':
117 case 'gamipress_favorites_user_unfavorite':
118 case 'gamipress_favorites_user_specific_unfavorite':
119 $user_id = $args[1];
120 break;
121 }
122
123 return $user_id;
124
125 }
126 add_filter( 'gamipress_trigger_get_user_id', 'gamipress_favorites_trigger_get_user_id', 10, 3);
127
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_favorites_specific_trigger_get_id( $specific_id, $trigger = '', $args = array() ) {
141
142 switch ( $trigger ) {
143 case 'gamipress_favorites_specific_favorite':
144 case 'gamipress_favorites_user_specific_favorite':
145 // Unfavorite
146 case 'gamipress_favorites_specific_unfavorite':
147 case 'gamipress_favorites_user_specific_unfavorite':
148 $specific_id = $args[0];
149 break;
150 }
151
152 return $specific_id;
153 }
154 add_filter( 'gamipress_specific_trigger_get_id', 'gamipress_favorites_specific_trigger_get_id', 10, 3 );
155
156 /**
157 * Extended meta data for event trigger logging
158 *
159 * @since 1.0.0
160 *
161 * @param array $log_meta
162 * @param integer $user_id
163 * @param string $trigger
164 * @param integer $site_id
165 * @param array $args
166 *
167 * @return array
168 */
169 function gamipress_favorites_log_event_trigger_meta_data( $log_meta, $user_id, $trigger, $site_id, $args ) {
170
171 switch ( $trigger ) {
172 // Favorite
173 case 'gamipress_favorites_favorite':
174 case 'gamipress_favorites_specific_favorite':
175 case 'gamipress_favorites_user_favorite':
176 case 'gamipress_favorites_user_specific_favorite':
177 // Unfavorite
178 case 'gamipress_favorites_unfavorite':
179 case 'gamipress_favorites_specific_unfavorite':
180 case 'gamipress_favorites_user_unfavorite':
181 case 'gamipress_favorites_user_specific_unfavorite':
182 // Add the favorited post ID
183 $log_meta['post_id'] = $args[0];
184 break;
185 }
186
187 return $log_meta;
188 }
189 add_filter( 'gamipress_log_event_trigger_meta_data', 'gamipress_favorites_log_event_trigger_meta_data', 10, 5 );