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