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
gamipress / integrations / mailerpress / includes / triggers.php

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

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