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/mail-mint/includes/triggers.php +284 -0 7.8.9 → 8.0.5 View file →
@@ -1,0 +1,284 @@
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 );