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/autonami/includes/triggers.php +252 -0 7.9.2 → 8.0.5 View file →
@@ -1,0 +1,252 @@
1 +<?php
2 +/**
3 + * Triggers
4 + *
5 + * @package GamiPress\Autonami\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_autonami_activity_triggers( $triggers ) {
21 +
22 + $triggers[__( 'Autonami', 'gamipress' )] = array(
23 + // Tag added
24 + 'gamipress_autonami_tag_added' => __( 'Any tag added', 'gamipress' ),
25 + 'gamipress_autonami_specific_tag_added' => __( 'Specific tag added', 'gamipress' ),
26 + // List added
27 + 'gamipress_autonami_list_added' => __( 'Added to any list', 'gamipress' ),
28 + 'gamipress_autonami_specific_list_added' => __( 'Added to a specific list', 'gamipress' ),
29 + // Tag removed
30 + 'gamipress_autonami_tag_removed' => __( 'Any tag removed', 'gamipress' ),
31 + 'gamipress_autonami_specific_tag_removed' => __( 'Specific tag removed', 'gamipress' ),
32 + // List removed
33 + 'gamipress_autonami_list_removed' => __( 'Removed from any list', 'gamipress' ),
34 + 'gamipress_autonami_specific_list_removed' => __( 'Removed from specific list', 'gamipress' ),
35 + );
36 +
37 + return $triggers;
38 +
39 +}
40 +add_filter( 'gamipress_activity_triggers', 'gamipress_autonami_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_autonami_specific_activity_triggers( $specific_activity_triggers ) {
51 +
52 + $specific_activity_triggers['gamipress_autonami_specific_tag_added'] = array( 'autonami_tags' );
53 + $specific_activity_triggers['gamipress_autonami_specific_list_added'] = array( 'autonami_lists' );
54 + $specific_activity_triggers['gamipress_autonami_specific_tag_removed'] = array( 'autonami_tags' );
55 + $specific_activity_triggers['gamipress_autonami_specific_list_removed'] = array( 'autonami_lists' );
56 +
57 + return $specific_activity_triggers;
58 +
59 +}
60 +add_filter( 'gamipress_specific_activity_triggers', 'gamipress_autonami_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_autonami_specific_activity_trigger_label( $specific_activity_trigger_labels ) {
71 +
72 + $specific_activity_trigger_labels['gamipress_autonami_specific_tag_added'] = __( 'Tag %s added', 'gamipress' );
73 + $specific_activity_trigger_labels['gamipress_autonami_specific_list_added'] = __( 'Added to %s list', 'gamipress' );
74 + $specific_activity_trigger_labels['gamipress_autonami_specific_tag_removed'] = __( 'Tag %s removed', 'gamipress' );
75 + $specific_activity_trigger_labels['gamipress_autonami_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_autonami_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_autonami_specific_activity_trigger_post_title( $post_title, $specific_id, $trigger_type ) {
93 +
94 + switch( $trigger_type ) {
95 + case 'gamipress_autonami_specific_tag_added':
96 + case 'gamipress_autonami_specific_tag_removed':
97 + if( absint( $specific_id ) !== 0 ) {
98 +
99 + // Get the tag title
100 + $tag_title = gamipress_autonami_get_tag_title( $specific_id );
101 +
102 + $post_title = $tag_title;
103 + }
104 + break;
105 + case 'gamipress_autonami_specific_list_added':
106 + case 'gamipress_autonami_specific_list_removed':
107 + if( absint( $specific_id ) !== 0 ) {
108 +
109 + // Get the list title
110 + $list_title = gamipress_autonami_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_autonami_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_autonami_specific_activity_trigger_permalink( $permalink, $specific_id, $trigger_type, $site_id ) {
135 +
136 + switch( $trigger_type ) {
137 + case 'gamipress_autonami_specific_tag_added':
138 + case 'gamipress_autonami_specific_list_added':
139 + case 'gamipress_autonami_specific_tag_removed':
140 + case 'gamipress_autonami_specific_list_removed':
141 + $permalink = '';
142 + break;
143 + }
144 +
145 + return $permalink;
146 +
147 +}
148 +add_filter( 'gamipress_specific_activity_trigger_permalink', 'gamipress_autonami_specific_activity_trigger_permalink', 10, 4 );
149 +
150 +/**
151 + * Get user for a autonamin 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_autonami_trigger_get_user_id( $user_id, $trigger, $args ) {
161 +
162 + switch ( $trigger ) {
163 + // Tag added
164 + case 'gamipress_autonami_tag_added':
165 + case 'gamipress_autonami_specific_tag_added':
166 + // List added
167 + case 'gamipress_autonami_list_added':
168 + case 'gamipress_autonami_specific_list_added':
169 + // Tag removed
170 + case 'gamipress_autonami_tag_removed':
171 + case 'gamipress_autonami_specific_tag_removed':
172 + // List removed
173 + case 'gamipress_autonami_list_removed':
174 + case 'gamipress_autonami_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_autonami_trigger_get_user_id', 10, 3 );
183 +
184 +/**
185 + * Get the id for a autonamin 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_autonami_specific_trigger_get_id( $specific_id, $trigger = '', $args = array() ) {
196 +
197 + switch ( $trigger ) {
198 + // Tag added
199 + case 'gamipress_autonami_specific_tag_added':
200 + // List added
201 + case 'gamipress_autonami_specific_list_added':
202 + // Tag added
203 + case 'gamipress_autonami_specific_tag_removed':
204 + // List added
205 + case 'gamipress_autonami_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_autonami_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_autonami_log_event_trigger_meta_data( $log_meta, $user_id, $trigger, $site_id, $args ) {
228 +
229 + switch ( $trigger ) {
230 + // Tag added
231 + case 'gamipress_autonami_tag_added':
232 + case 'gamipress_autonami_specific_tag_added':
233 + // Tag removed
234 + case 'gamipress_autonami_tag_removed':
235 + case 'gamipress_autonami_specific_tag_removed':
236 + // Add the tag ID
237 + $log_meta['tag_id'] = $args[0];
238 + break;
239 + // List added
240 + case 'gamipress_autonami_list_added':
241 + case 'gamipress_autonami_specific_list_added':
242 + // List removed
243 + case 'gamipress_autonami_list_removed':
244 + case 'gamipress_autonami_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_autonami_log_event_trigger_meta_data', 10, 5 );