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

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

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