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