PluginProbe
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI / 8.0.1
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI v8.0.1
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 / simplepress / includes / triggers.php

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

245 lines 9.3 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\SimpePress\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 * @param array $triggers
16 * @return mixed
17 */
18 function gamipress_simplepress_activity_triggers( $triggers ) {
19
20 $triggers[__( 'Simple:Press', 'gamipress' )] = array(
21 // New topic
22 'gamipress_simplepress_new_topic' => __( 'Create a new topic', 'gamipress' ),
23 'gamipress_simplepress_specific_forum_new_topic' => __( 'Create a new topic on a specific forum', 'gamipress' ),
24 // New Reply
25 'gamipress_simplepress_new_reply' => __( 'Reply to a topic', 'gamipress' ),
26 'gamipress_simplepress_specific_topic_new_reply' => __( 'Reply to a specific topic', 'gamipress' ),
27 'gamipress_simplepress_specific_forum_new_reply' => __( 'Reply to a topic on a specific forum', 'gamipress' ),
28 // Delete topic
29 'gamipress_simplepress_delete_topic' => __( 'Delete a topic', 'gamipress' ),
30 'gamipress_simplepress_specific_forum_delete_topic' => __( 'Delete a topic on a specific forum', 'gamipress' ),
31 // Delete Reply
32 'gamipress_simplepress_delete_reply' => __( 'Delete a reply', 'gamipress' ),
33 'gamipress_simplepress_specific_topic_delete_reply' => __( 'Delete a reply of a specific topic', 'gamipress' ),
34 'gamipress_simplepress_specific_forum_delete_reply' => __( 'Delete a reply of a specific forum', 'gamipress' ),
35 );
36
37 return $triggers;
38
39 }
40 add_filter( 'gamipress_activity_triggers', 'gamipress_simplepress_activity_triggers' );
41
42 /**
43 * Register plugin specific activity triggers
44 *
45 * @since 1.0.0
46 *
47 * @param array $specific_activity_triggers
48 * @return array
49 */
50 function gamipress_simplepress_specific_activity_triggers( $specific_activity_triggers ) {
51
52 // New topic
53 $specific_activity_triggers['gamipress_simplepress_specific_forum_new_topic'] = array( 'simplepress_forum' );
54 // New Reply
55 $specific_activity_triggers['gamipress_simplepress_specific_topic_new_reply'] = array( 'simplepress_topic' );
56 $specific_activity_triggers['gamipress_simplepress_specific_forum_new_reply'] = array( 'simplepress_forum' );
57 // Delete topic
58 $specific_activity_triggers['gamipress_simplepress_specific_forum_delete_topic'] = array( 'simplepress_forum' );
59 // Delete Reply
60 $specific_activity_triggers['gamipress_simplepress_specific_topic_delete_reply'] = array( 'simplepress_topic' );
61 $specific_activity_triggers['gamipress_simplepress_specific_forum_delete_reply'] = array( 'simplepress_forum' );
62
63 return $specific_activity_triggers;
64 }
65 add_filter( 'gamipress_specific_activity_triggers', 'gamipress_simplepress_specific_activity_triggers' );
66
67 /**
68 * Register plugin specific activity triggers labels
69 *
70 * @since 1.0.0
71 *
72 * @param array $specific_activity_trigger_labels
73 * @return array
74 */
75 function gamipress_simplepress_specific_activity_trigger_label( $specific_activity_trigger_labels ) {
76
77 // New topic
78 $specific_activity_trigger_labels['gamipress_simplepress_specific_forum_new_topic'] = __( 'Create a topic on %s forum', 'gamipress' );
79 // New Reply
80 $specific_activity_trigger_labels['gamipress_simplepress_specific_topic_new_reply'] = __( 'Reply on %s topic', 'gamipress' );
81 $specific_activity_trigger_labels['gamipress_simplepress_specific_forum_new_reply'] = __( 'Reply on %s forum', 'gamipress' );
82 // Delete topic
83 $specific_activity_trigger_labels['gamipress_simplepress_specific_forum_delete_topic'] = __( 'Delete a topic on %s forum', 'gamipress' );
84 // Delete Reply
85 $specific_activity_trigger_labels['gamipress_simplepress_specific_topic_delete_reply'] = __( 'Delete a reply on %s topic', 'gamipress' );
86 $specific_activity_trigger_labels['gamipress_simplepress_specific_forum_delete_reply'] = __( 'Delete a reply on %s forum', 'gamipress' );
87
88
89
90 return $specific_activity_trigger_labels;
91 }
92 add_filter( 'gamipress_specific_activity_trigger_label', 'gamipress_simplepress_specific_activity_trigger_label' );
93
94 /**
95 * Get plugin specific activity trigger post title
96 *
97 * @since 1.0.0
98 *
99 * @param string $post_title
100 * @param int $specific_id
101 * @param string $trigger_type
102 * @param int $site_id
103 * @return string
104 */
105 function gamipress_simplepress_specific_activity_trigger_post_title( $post_title, $specific_id, $trigger_type, $site_id ) {
106
107 global $wpdb;
108
109 switch( $trigger_type ) {
110 // Forum title
111 case 'gamipress_simplepress_specific_forum_new_topic':
112 case 'gamipress_simplepress_specific_forum_new_reply':
113 case 'gamipress_simplepress_specific_forum_delete_topic':
114 case 'gamipress_simplepress_specific_forum_delete_reply':
115 if( absint( $specific_id ) !== 0 ) {
116 $post_title = gamipress_simplepress_get_forum_title( $specific_id );
117 }
118 break;
119 // Topic title
120 case 'gamipress_simplepress_specific_topic_new_reply':
121 case 'gamipress_simplepress_specific_topic_delete_reply':
122 if( absint( $specific_id ) !== 0 ) {
123 $post_title = gamipress_simplepress_get_topic_title( $specific_id );
124 }
125 break;
126 }
127
128 return $post_title;
129
130 }
131 add_filter( 'gamipress_specific_activity_trigger_post_title', 'gamipress_simplepress_specific_activity_trigger_post_title', 10, 4 );
132
133 /**
134 * Get user for a given trigger action.
135 *
136 * @since 1.0.0
137 *
138 * @param integer $user_id user ID to override.
139 * @param string $trigger Trigger name.
140 * @param array $args Passed trigger args.
141 * @return integer User ID.
142 */
143 function gamipress_simplepress_trigger_get_user_id( $user_id, $trigger, $args ) {
144
145 switch ( $trigger ) {
146 // New topic
147 case 'gamipress_simplepress_new_topic':
148 case 'gamipress_simplepress_specific_forum_new_topic':
149 // New Reply
150 case 'gamipress_simplepress_new_reply':
151 case 'gamipress_simplepress_specific_topic_new_reply':
152 case 'gamipress_simplepress_specific_forum_new_reply':
153 // Delete topic
154 case 'gamipress_simplepress_delete_topic':
155 case 'gamipress_simplepress_specific_forum_delete_topic':
156 // Delete Reply
157 case 'gamipress_simplepress_delete_reply':
158 case 'gamipress_simplepress_specific_topic_delete_reply':
159 case 'gamipress_simplepress_specific_forum_delete_reply':
160 $user_id = $args[1];
161 break;
162 }
163
164 return $user_id;
165
166 }
167 add_filter( 'gamipress_trigger_get_user_id', 'gamipress_simplepress_trigger_get_user_id', 10, 3);
168
169
170 /**
171 * Get the id for a given specific trigger action.
172 *
173 * @since 1.0.0
174 *
175 * @param integer $specific_id Specific ID.
176 * @param string $trigger Trigger name.
177 * @param array $args Passed trigger args.
178 *
179 * @return integer Specific ID.
180 */
181 function gamipress_simplepress_specific_trigger_get_id( $specific_id, $trigger = '', $args = array() ) {
182
183 switch ( $trigger ) {
184 // New topic
185 case 'gamipress_simplepress_specific_forum_new_topic':
186 // New Reply
187 case 'gamipress_simplepress_specific_topic_new_reply':
188 case 'gamipress_simplepress_specific_forum_new_reply':
189 // Delete topic
190 case 'gamipress_simplepress_specific_forum_delete_topic':
191 // Delete Reply
192 case 'gamipress_simplepress_specific_topic_delete_reply':
193 case 'gamipress_simplepress_specific_forum_delete_reply':
194 $specific_id = $args[0];
195 break;
196 }
197
198 return $specific_id;
199 }
200 add_filter( 'gamipress_specific_trigger_get_id', 'gamipress_simplepress_specific_trigger_get_id', 10, 3 );
201
202 /**
203 * Extended meta data for event trigger logging
204 *
205 * @since 1.0.0
206 *
207 * @param array $log_meta
208 * @param integer $user_id
209 * @param string $trigger
210 * @param integer $site_id
211 * @param array $args
212 *
213 * @return array
214 */
215 function gamipress_simplepress_log_event_trigger_meta_data( $log_meta, $user_id, $trigger, $site_id, $args ) {
216
217 switch ( $trigger ) {
218 // New topic
219 case 'gamipress_simplepress_new_topic':
220 case 'gamipress_simplepress_specific_forum_new_topic':
221 // Delete topic
222 case 'gamipress_simplepress_delete_topic':
223 case 'gamipress_simplepress_specific_forum_delete_topic':
224 // Add the topic and forum IDs
225 $log_meta['topic_id'] = $args[0];
226 $log_meta['forum_id'] = $args[2];
227 break;
228 // New Reply
229 case 'gamipress_simplepress_new_reply':
230 case 'gamipress_simplepress_specific_topic_new_reply':
231 case 'gamipress_simplepress_specific_forum_new_reply':
232 // Delete Reply
233 case 'gamipress_simplepress_delete_reply':
234 case 'gamipress_simplepress_specific_topic_delete_reply':
235 case 'gamipress_simplepress_specific_forum_delete_reply':
236 // Add the reply, topic and forum IDs
237 $log_meta['reply_id'] = $args[0];
238 $log_meta['topic_id'] = $args[2];
239 $log_meta['forum_id'] = $args[3];
240 break;
241 }
242
243 return $log_meta;
244 }
245 add_filter( 'gamipress_log_event_trigger_meta_data', 'gamipress_simplepress_log_event_trigger_meta_data', 10, 5 );