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/gravity-kit/includes/triggers.php +195 -0 7.8.8 → 8.0.5 View file →
@@ -1,0 +1,195 @@
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 );