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

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

284 lines 9.8 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\Mail_Mint\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_mail_mint_activity_triggers( $triggers ) {
21
22 $triggers[__( 'Mail Mint', 'gamipress' )] = array(
23 // Tag added
24 'gamipress_mail_mint_tag_added' => __( 'A tag added', 'gamipress' ),
25 'gamipress_mail_mint_specific_tag_added' => __( 'Specific tag added', 'gamipress' ),
26 // List added
27 'gamipress_mail_mint_list_added' => __( 'Added to a list', 'gamipress' ),
28 'gamipress_mail_mint_specific_list_added' => __( 'Added to a specific list', 'gamipress' ),
29 // Tag removed
30 'gamipress_mail_mint_tag_removed' => __( 'A tag removed', 'gamipress' ),
31 'gamipress_mail_mint_specific_tag_removed' => __( 'Specific tag removed', 'gamipress' ),
32 // List removed
33 'gamipress_mail_mint_list_removed' => __( 'Removed from a list', 'gamipress' ),
34 'gamipress_mail_mint_specific_list_removed' => __( 'Removed from specific list', 'gamipress' ),
35 // Submit form
36 'gamipress_mail_mint_submit_form' => __( 'Submit a form', 'gamipress' ),
37 'gamipress_mail_mint_specific_submit_form' => __( 'Submit a specific form', 'gamipress' ),
38 // Register contact
39 'gamipress_mail_mint_register_contact' => __( 'Register as a contact', 'gamipress' ),
40 );
41
42 return $triggers;
43
44 }
45 add_filter( 'gamipress_activity_triggers', 'gamipress_mail_mint_activity_triggers' );
46
47 /**
48 * Register plugin specific activity triggers
49 *
50 * @since 1.0.0
51 *
52 * @param array $specific_activity_triggers
53 * @return array
54 */
55 function gamipress_mail_mint_specific_activity_triggers( $specific_activity_triggers ) {
56
57 $specific_activity_triggers['gamipress_mail_mint_specific_tag_added'] = array( 'mail_mint_tags' );
58 $specific_activity_triggers['gamipress_mail_mint_specific_list_added'] = array( 'mail_mint_lists' );
59 $specific_activity_triggers['gamipress_mail_mint_specific_tag_removed'] = array( 'mail_mint_tags' );
60 $specific_activity_triggers['gamipress_mail_mint_specific_list_removed'] = array( 'mail_mint_lists' );
61 $specific_activity_triggers['gamipress_mail_mint_specific_submit_form'] = array( 'mail_mint_forms' );
62
63 return $specific_activity_triggers;
64
65 }
66 add_filter( 'gamipress_specific_activity_triggers', 'gamipress_mail_mint_specific_activity_triggers' );
67
68 /**
69 * Register plugin specific activity triggers labels
70 *
71 * @since 1.0.0
72 *
73 * @param array $specific_activity_trigger_labels
74 * @return array
75 */
76 function gamipress_mail_mint_specific_activity_trigger_label( $specific_activity_trigger_labels ) {
77
78 $specific_activity_trigger_labels['gamipress_mail_mint_specific_tag_added'] = __( 'Tag %s added', 'gamipress' );
79 $specific_activity_trigger_labels['gamipress_mail_mint_specific_list_added'] = __( 'Added to %s list', 'gamipress' );
80 $specific_activity_trigger_labels['gamipress_mail_mint_specific_tag_removed'] = __( 'Tag %s removed', 'gamipress' );
81 $specific_activity_trigger_labels['gamipress_mail_mint_specific_list_removed'] = __( 'Removed from %s list', 'gamipress' );
82 $specific_activity_trigger_labels['gamipress_mail_mint_specific_submit_form'] = __( 'Submit form %s', 'gamipress' );
83
84 return $specific_activity_trigger_labels;
85 }
86 add_filter( 'gamipress_specific_activity_trigger_label', 'gamipress_mail_mint_specific_activity_trigger_label' );
87
88 /**
89 * Get plugin specific activity trigger post title
90 *
91 * @since 1.0.0
92 *
93 * @param string $post_title
94 * @param integer $specific_id
95 * @param string $trigger_type
96 *
97 * @return string
98 */
99 function gamipress_mail_mint_specific_activity_trigger_post_title( $post_title, $specific_id, $trigger_type ) {
100
101 switch( $trigger_type ) {
102 case 'gamipress_mail_mint_specific_tag_added':
103 case 'gamipress_mail_mint_specific_tag_removed':
104 if( absint( $specific_id ) !== 0 ) {
105
106 // Get the tag title
107 $tag_title = gamipress_mail_mint_get_tag_title( $specific_id );
108
109 $post_title = $tag_title;
110 }
111 break;
112 case 'gamipress_mail_mint_specific_list_added':
113 case 'gamipress_mail_mint_specific_list_removed':
114 if( absint( $specific_id ) !== 0 ) {
115
116 // Get the list title
117 $list_title = gamipress_mail_mint_get_list_title( $specific_id );
118
119 $post_title = $list_title;
120 }
121 break;
122 case 'gamipress_mail_mint_specific_submit_form':
123 if( absint( $specific_id ) !== 0 ) {
124
125 // Get the form title
126 $form_title = gamipress_mail_mint_get_form_title( $specific_id );
127
128 $post_title = $form_title;
129 }
130 break;
131 }
132
133 return $post_title;
134
135 }
136 add_filter( 'gamipress_specific_activity_trigger_post_title', 'gamipress_mail_mint_specific_activity_trigger_post_title', 10, 3 );
137
138 /**
139 * Get plugin specific activity trigger permalink
140 *
141 * @since 1.0.0
142 *
143 * @param string $permalink
144 * @param integer $specific_id
145 * @param string $trigger_type
146 * @param integer $site_id
147 *
148 * @return string
149 */
150 function gamipress_mail_mint_specific_activity_trigger_permalink( $permalink, $specific_id, $trigger_type, $site_id ) {
151
152 switch( $trigger_type ) {
153 case 'gamipress_mail_mint_specific_tag_added':
154 case 'gamipress_mail_mint_specific_list_added':
155 case 'gamipress_mail_mint_specific_tag_removed':
156 case 'gamipress_mail_mint_specific_list_removed':
157 case 'gamipress_mail_mint_specific_submit_form':
158 $permalink = '';
159 break;
160 }
161
162 return $permalink;
163
164 }
165 add_filter( 'gamipress_specific_activity_trigger_permalink', 'gamipress_mail_mint_specific_activity_trigger_permalink', 10, 4 );
166
167 /**
168 * Get user for a Mail Mint trigger action.
169 *
170 * @since 1.0.0
171 *
172 * @param integer $user_id user ID to override.
173 * @param string $trigger Trigger name.
174 * @param array $args Passed trigger args.
175 * @return integer User ID.
176 */
177 function gamipress_mail_mint_trigger_get_user_id( $user_id, $trigger, $args ) {
178
179 switch ( $trigger ) {
180 // Tag added
181 case 'gamipress_mail_mint_tag_added':
182 case 'gamipress_mail_mint_specific_tag_added':
183 // List added
184 case 'gamipress_mail_mint_list_added':
185 case 'gamipress_mail_mint_specific_list_added':
186 // Tag removed
187 case 'gamipress_mail_mint_tag_removed':
188 case 'gamipress_mail_mint_specific_tag_removed':
189 // List removed
190 case 'gamipress_mail_mint_list_removed':
191 case 'gamipress_mail_mint_specific_list_removed':
192 // Submit form
193 case 'gamipress_mail_mint_submit_form':
194 case 'gamipress_mail_mint_specific_submit_form':
195 $user_id = $args[1];
196 break;
197 // Register contact
198 case 'gamipress_mail_mint_register_contact':
199 $user_id = $args[0];
200 break;
201 }
202
203 return $user_id;
204
205 }
206 add_filter( 'gamipress_trigger_get_user_id', 'gamipress_mail_mint_trigger_get_user_id', 10, 3 );
207
208 /**
209 * Get the id for a Mail Mint specific trigger action.
210 *
211 * @since 1.0.0
212 *
213 * @param integer $specific_id Specific ID.
214 * @param string $trigger Trigger name.
215 * @param array $args Passed trigger args.
216 *
217 * @return integer Specific ID.
218 */
219 function gamipress_mail_mint_specific_trigger_get_id( $specific_id, $trigger = '', $args = array() ) {
220
221 switch ( $trigger ) {
222 // Tag added
223 case 'gamipress_mail_mint_specific_tag_added':
224 // List added
225 case 'gamipress_mail_mint_specific_list_added':
226 // Tag added
227 case 'gamipress_mail_mint_specific_tag_removed':
228 // List added
229 case 'gamipress_mail_mint_specific_list_removed':
230 // Submit form
231 case 'gamipress_mail_mint_specific_submit_form':
232 $specific_id = $args[0];
233 break;
234 }
235
236 return $specific_id;
237 }
238 add_filter( 'gamipress_specific_trigger_get_id', 'gamipress_mail_mint_specific_trigger_get_id', 10, 3 );
239
240 /**
241 * Extended meta data for event trigger logging
242 *
243 * @since 1.0.0
244 *
245 * @param array $log_meta
246 * @param integer $user_id
247 * @param string $trigger
248 * @param integer $site_id
249 * @param array $args
250 *
251 * @return array
252 */
253 function gamipress_mail_mint_log_event_trigger_meta_data( $log_meta, $user_id, $trigger, $site_id, $args ) {
254
255 switch ( $trigger ) {
256 // Tag added
257 case 'gamipress_mail_mint_tag_added':
258 case 'gamipress_mail_mint_specific_tag_added':
259 // Tag removed
260 case 'gamipress_mail_mint_tag_removed':
261 case 'gamipress_mail_mint_specific_tag_removed':
262 // Add the tag ID
263 $log_meta['tag_id'] = $args[0];
264 break;
265 // List added
266 case 'gamipress_mail_mint_list_added':
267 case 'gamipress_mail_mint_specific_list_added':
268 // List removed
269 case 'gamipress_mail_mint_list_removed':
270 case 'gamipress_mail_mint_specific_list_removed':
271 // Add the list ID
272 $log_meta['list_id'] = $args[0];
273 break;
274 // Submit form
275 case 'gamipress_mail_mint_submit_form':
276 case 'gamipress_mail_mint_specific_submit_form':
277 // Add the form ID
278 $log_meta['form_id'] = $args[0];
279 break;
280 }
281
282 return $log_meta;
283 }
284 add_filter( 'gamipress_log_event_trigger_meta_data', 'gamipress_mail_mint_log_event_trigger_meta_data', 10, 5 );