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

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

213 lines 8.2 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\Meta_Box\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_meta_box_activity_triggers( $triggers ) {
21
22 $triggers[__( 'Meta Box', 'gamipress' )] = array(
23
24 // Post fields
25 'gamipress_meta_box_update_any_post_field_any_value' => __( 'Update any post field with any value','gamipress' ),
26 'gamipress_meta_box_update_any_post_field_specific_value' => __( 'Update any post field with specific value','gamipress' ),
27 'gamipress_meta_box_update_specific_post_field_any_value' => __( 'Update specific post field with any value','gamipress' ),
28 'gamipress_meta_box_update_specific_post_field_specific_value' => __( 'Update specific post field with specific value','gamipress' ),
29
30 );
31
32 // User fields
33 // Meta Box User Meta Extension
34 if ( defined( 'MBAIO_DIR' ) || class_exists( 'RWMB_User_Storage' ) ) {
35
36 $triggers[__( 'Meta Box Users', 'gamipress' )] = array(
37 'gamipress_meta_box_update_any_user_field_any_value' => __( 'Update any user field with any value','gamipress' ),
38 'gamipress_meta_box_update_any_user_field_specific_value' => __( 'Update any user field with specific value','gamipress' ),
39 'gamipress_meta_box_update_specific_user_field_any_value' => __( 'Update specific user field with any value','gamipress' ),
40 'gamipress_meta_box_update_specific_user_field_specific_value' => __( 'Update specific user field with specific value','gamipress' ),
41 );
42
43 }
44
45 return $triggers;
46
47 }
48 add_filter( 'gamipress_activity_triggers', 'gamipress_meta_box_activity_triggers' );
49
50 /**
51 * Build custom activity trigger label
52 *
53 * @since 1.0.0
54 *
55 * @param string $title
56 * @param integer $requirement_id
57 * @param array $requirement
58 *
59 * @return string
60 */
61 function gamipress_meta_box_activity_trigger_label( $title, $requirement_id, $requirement ) {
62
63 $field_name = ( isset( $requirement['mb_field_name'] ) ) ? $requirement['mb_field_name'] : '';
64 $field_name_user = ( isset( $requirement['mb_field_name_user'] ) ) ? $requirement['mb_field_name_user'] : '';
65 $field_value = ( isset( $requirement['mb_field_value'] ) ) ? $requirement['mb_field_value'] : '';
66 $value_condition = ( isset( $requirement['mb_field_value_condition'] ) ) ? $requirement['mb_field_value_condition'] : '';
67 $value_conditions = gamipress_meta_box_get_value_conditions();
68
69 switch( $requirement['trigger_type'] ) {
70 // Post fields
71 case 'gamipress_meta_box_update_specific_post_field_any_value':
72 return sprintf( __( 'Update post field "%s" with any value', 'gamipress' ), $field_name );
73 break;
74 case 'gamipress_meta_box_update_any_post_field_specific_value':
75 return sprintf( __( 'Update any post field with value that matches with "%s"', 'gamipress' ), $field_value );
76 break;
77 case 'gamipress_meta_box_update_specific_post_field_specific_value':
78 return sprintf( __( 'Update post field "%s" with a value %s "%s"', 'gamipress' ), $field_name, $value_conditions[$value_condition], $field_value );
79 break;
80
81 // User fields
82 case 'gamipress_meta_box_update_specific_user_field_any_value':
83 return sprintf( __( 'Update user field "%s" with any value', 'gamipress' ), $field_name_user );
84 break;
85 case 'gamipress_meta_box_update_any_user_field_specific_value':
86 return sprintf( __( 'Update any user field with value that matches with "%s"', 'gamipress' ), $field_value );
87 break;
88 case 'gamipress_meta_box_update_specific_user_field_specific_value':
89 return sprintf( __( 'Update user field "%s" with a value %s "%s"', 'gamipress' ), $field_name_user, $value_conditions[$value_condition], $field_value );
90 break;
91
92 }
93
94 return $title;
95 }
96 add_filter( 'gamipress_activity_trigger_label', 'gamipress_meta_box_activity_trigger_label', 10, 3 );
97
98 /**
99 * Get plugin specific activity trigger post title
100 *
101 * @since 1.0.0
102 *
103 * @param string $post_title
104 * @param integer $specific_id
105 * @param string $trigger_type
106 *
107 * @return string
108 */
109
110 /**
111 * Get user for an acf trigger action.
112 *
113 * @since 1.0.0
114 *
115 * @param integer $user_id user ID to override.
116 * @param string $trigger Trigger name.
117 * @param array $args Passed trigger args.
118 * @return integer User ID.
119 */
120 function gamipress_meta_box_trigger_get_user_id( $user_id, $trigger, $args ) {
121
122 switch ( $trigger ) {
123 // Posts
124 case 'gamipress_meta_box_update_any_post_field_any_value':
125 case 'gamipress_meta_box_update_specific_post_field_any_value':
126 case 'gamipress_meta_box_update_any_post_field_specific_value':
127 case 'gamipress_meta_box_update_specific_post_field_specific_value':
128 // Users
129 case 'gamipress_meta_box_update_any_user_field_any_value':
130 case 'gamipress_meta_box_update_any_user_field_specific_value':
131 case 'gamipress_meta_box_update_specific_user_field_any_value':
132 case 'gamipress_meta_box_update_specific_user_field_specific_value':
133 $user_id = $args[0];
134 break;
135 }
136
137 return $user_id;
138
139 }
140 add_filter( 'gamipress_trigger_get_user_id', 'gamipress_meta_box_trigger_get_user_id', 10, 3 );
141
142 /**
143 * Get the id for an acf specific trigger action.
144 *
145 * @since 1.0.0
146 *
147 * @param integer $specific_id Specific ID.
148 * @param string $trigger Trigger name.
149 * @param array $args Passed trigger args.
150 *
151 * @return integer Specific ID.
152 */
153 function gamipress_meta_box_specific_trigger_get_id( $specific_id, $trigger = '', $args = array() ) {
154
155 switch ( $trigger ) {
156 // Posts
157 case 'gamipress_meta_box_update_specific_post_field_any_value':
158 case 'gamipress_meta_box_update_specific_post_field_specific_value':
159 $specific_id = $args[2];
160 break;
161 case 'gamipress_meta_box_update_any_post_field_specific_value':
162 $specific_id = $args[2];
163 break;
164 // Users
165 case 'gamipress_meta_box_update_specific_user_field_any_value':
166 case 'gamipress_meta_box_update_specific_user_field_specific_value':
167 $specific_id = $args[2];
168 break;
169 case 'gamipress_meta_box_update_any_user_field_specific_value':
170 $specific_id = $args[2];
171 break;
172 }
173
174 return $specific_id;
175 }
176 add_filter( 'gamipress_specific_trigger_get_id', 'gamipress_meta_box_specific_trigger_get_id', 10, 3 );
177
178 /**
179 * Extended meta data for event trigger logging
180 *
181 * @since 1.0.0
182 *
183 * @param array $log_meta
184 * @param integer $user_id
185 * @param string $trigger
186 * @param integer $site_id
187 * @param array $args
188 *
189 * @return array
190 */
191 function gamipress_meta_box_log_event_trigger_meta_data( $log_meta, $user_id, $trigger, $site_id, $args ) {
192
193 switch ( $trigger ) {
194 // Posts
195 case 'gamipress_meta_box_update_any_post_field_any_value':
196 case 'gamipress_meta_box_update_specific_post_field_any_value':
197 case 'gamipress_meta_box_update_any_post_field_specific_value':
198 case 'gamipress_meta_box_update_specific_post_field_specific_value':
199 // Users
200 case 'gamipress_meta_box_update_any_user_field_any_value':
201 case 'gamipress_meta_box_update_any_user_field_specific_value':
202 case 'gamipress_meta_box_update_specific_user_field_any_value':
203 case 'gamipress_meta_box_update_specific_user_field_specific_value':
204 // Add the user ID, field name and value
205 $log_meta['user_id'] = $args[0];
206 $log_meta['field_name'] = $args[2];
207 $log_meta['field_value'] = $args[3];
208 break;
209 }
210
211 return $log_meta;
212 }
213 add_filter( 'gamipress_log_event_trigger_meta_data', 'gamipress_meta_box_log_event_trigger_meta_data', 10, 5 );