PluginProbe
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI / 8.0.2
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI v8.0.2
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 7.8.6 7.8.5 All 44 releases
gamipress / integrations / gravity-kit / includes / triggers.php

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

196 lines 6.4 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\Gravity_Kit\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_gravity_kit_activity_triggers( $triggers ) {
21
22 $triggers[__( 'Gravity Kit', 'gamipress' )] = array(
23 'gamipress_gravity_kit_entry_approved_any_form' => __( 'Entry approved from any form', 'gamipress' ),
24 'gamipress_gravity_kit_entry_approved_specific_form' => __( 'Entry approved from a specific form', 'gamipress' ),
25 'gamipress_gravity_kit_entry_disapproved_any_form' => __( 'Entry disapproved from any form', 'gamipress' ),
26 'gamipress_gravity_kit_entry_disapproved_specific_form' => __( 'Entry disapproved from a specific form', 'gamipress' ),
27 );
28
29 return $triggers;
30
31 }
32 add_filter( 'gamipress_activity_triggers', 'gamipress_gravity_kit_activity_triggers' );
33
34 /**
35 * Register plugin specific activity triggers
36 *
37 * @since 1.0.0
38 *
39 * @param array $specific_activity_triggers
40 * @return array
41 */
42 function gamipress_gravity_kit_specific_activity_triggers( $specific_activity_triggers ) {
43
44 $specific_activity_triggers['gamipress_gravity_kit_entry_approved_specific_form'] = array( 'gravity_form' );
45 $specific_activity_triggers['gamipress_gravity_kit_entry_disapproved_specific_form'] = array( 'gravity_form' );
46
47 return $specific_activity_triggers;
48 }
49 add_filter( 'gamipress_specific_activity_triggers', 'gamipress_gravity_kit_specific_activity_triggers' );
50
51 /**
52 * Register plugin specific activity triggers labels
53 *
54 * @since 1.0.0
55 *
56 * @param array $specific_activity_trigger_labels
57 * @return array
58 */
59 function gamipress_gravity_kit_specific_activity_trigger_label( $specific_activity_trigger_labels ) {
60
61 $specific_activity_trigger_labels['gamipress_gravity_kit_entry_approved_specific_form'] = __( 'Approved entry from %s', 'gamipress' );
62 $specific_activity_trigger_labels['gamipress_gravity_kit_entry_disapproved_specific_form'] = __( 'Disapproved entry from %s', 'gamipress' );
63
64 return $specific_activity_trigger_labels;
65 }
66 add_filter( 'gamipress_specific_activity_trigger_label', 'gamipress_gravity_kit_specific_activity_trigger_label' );
67
68 /**
69 * Get plugin specific activity trigger post title
70 *
71 * @since 1.0.6
72 *
73 * @param string $post_title
74 * @param integer $specific_id
75 * @param string $trigger_type
76 * @param string $site_id
77 * @return string
78 */
79 function gamipress_gravity_kit_specific_activity_trigger_post_title( $post_title, $specific_id, $trigger_type, $site_id ) {
80
81 global $wpdb;
82
83 switch( $trigger_type ) {
84 case 'gamipress_gravity_kit_entry_approved_specific_form':
85 case 'gamipress_gravity_kit_entry_disapproved_specific_form':
86 if( absint( $specific_id ) !== 0 ) {
87
88 if( gamipress_is_network_wide_active() && $site_id !== get_current_blog_id() ) {
89 // Switch to site
90 switch_to_blog($site_id);
91
92 $post_title = $site_forms = $wpdb->get_var( $wpdb->prepare(
93 "SELECT p.title FROM {$wpdb->prefix}gf_form AS p WHERE p.id = %s",
94 "$specific_id"
95 ) );
96
97 // Restore current site
98 restore_current_blog();
99 } else {
100 $post_title = $site_forms = $wpdb->get_var( $wpdb->prepare(
101 "SELECT p.title FROM {$wpdb->prefix}gf_form AS p WHERE p.id = %s",
102 "$specific_id"
103 ) );
104 }
105
106
107 }
108 break;
109 }
110
111 return $post_title;
112
113 }
114 add_filter( 'gamipress_specific_activity_trigger_post_title', 'gamipress_gravity_kit_specific_activity_trigger_post_title', 10, 4 );
115
116 /**
117 * Get user for a given trigger action.
118 *
119 * @since 1.0.0
120 *
121 * @param integer $user_id user ID to override.
122 * @param string $trigger Trigger name.
123 * @param array $args Passed trigger args.
124 * @return integer User ID.
125 */
126 function gamipress_gravity_kit_trigger_get_user_id( $user_id, $trigger, $args ) {
127
128 switch ( $trigger ) {
129 case 'gamipress_gravity_kit_entry_approved_any_form':
130 case 'gamipress_gravity_kit_entry_approved_specific_form':
131 case 'gamipress_gravity_kit_entry_disapproved_any_form':
132 case 'gamipress_gravity_kit_entry_disapproved_specific_form':
133 $user_id = $args[1];
134 break;
135 }
136
137 return $user_id;
138
139 }
140 add_filter( 'gamipress_trigger_get_user_id', 'gamipress_gravity_kit_trigger_get_user_id', 10, 3);
141
142
143 /**
144 * Get the id for a given specific trigger action.
145 *
146 * @since 1.0.0
147 *
148 * @param integer $specific_id Specific ID.
149 * @param string $trigger Trigger name.
150 * @param array $args Passed trigger args.
151 *
152 * @return integer Specific ID.
153 */
154 function gamipress_gravity_kit_specific_trigger_get_id( $specific_id, $trigger = '', $args = array() ) {
155
156 switch ( $trigger ) {
157 case 'gamipress_gravity_kit_entry_approved_specific_form':
158 case 'gamipress_gravity_kit_entry_disapproved_specific_form':
159 $specific_id = $args[0];
160 break;
161 }
162
163 return $specific_id;
164 }
165 add_filter( 'gamipress_specific_trigger_get_id', 'gamipress_gravity_kit_specific_trigger_get_id', 10, 3 );
166
167 /**
168 * Extended meta data for event trigger logging
169 *
170 * @since 1.0.1
171 *
172 * @param array $log_meta
173 * @param integer $user_id
174 * @param string $trigger
175 * @param integer $site_id
176 * @param array $args
177 *
178 * @return array
179 */
180 function gamipress_gravity_kit_log_event_trigger_meta_data( $log_meta, $user_id, $trigger, $site_id, $args ) {
181
182 switch ( $trigger ) {
183 case 'gamipress_gravity_kit_entry_approved_any_form':
184 case 'gamipress_gravity_kit_entry_approved_specific_form':
185 case 'gamipress_gravity_kit_entry_disapproved_any_form':
186 case 'gamipress_gravity_kit_entry_disapproved_specific_form':
187 // Add the form ID
188 $log_meta['form_id'] = $args[0];
189 $log_meta['entry_id'] = $args[2];
190 break;
191 }
192
193 return $log_meta;
194 }
195 add_filter( 'gamipress_log_event_trigger_meta_data', 'gamipress_gravity_kit_log_event_trigger_meta_data', 10, 5 );
196