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

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

172 lines 5.0 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\Give\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_give_activity_triggers( $triggers ) {
21
22 $triggers[__( 'Give', 'gamipress' )] = array(
23 'gamipress_give_new_donation' => __( 'Make a donation', 'gamipress' ),
24 'gamipress_give_new_donation_min_amount' => __( 'Make a donation of a minimum amount', 'gamipress' ),
25 'gamipress_give_new_donation_specific_form' => __( 'Make a donation through a specific form', 'gamipress' ),
26 );
27
28 return $triggers;
29
30 }
31 add_filter( 'gamipress_activity_triggers', 'gamipress_give_activity_triggers' );
32
33 /**
34 * Build custom activity trigger label
35 *
36 * @since 1.0.0
37 *
38 * @param string $title
39 * @param integer $requirement_id
40 * @param array $requirement
41 *
42 * @return string
43 */
44 function gamipress_give_activity_trigger_label( $title, $requirement_id, $requirement ) {
45
46 $minimum_amount = ( isset( $requirement['give_amount'] ) ) ? floatval( $requirement['give_amount'] ) : 0;
47
48 switch( $requirement['trigger_type'] ) {
49
50 // Minimum amount event
51 case 'gamipress_give_new_donation_min_amount':
52
53 $formatted_amount = give_currency_filter( give_format_amount( $minimum_amount ), array( 'decode_currency' => true ) );
54
55 return sprintf( __( 'Make a donation of %s or higher', 'gamipress' ), $formatted_amount );
56 break;
57
58 }
59
60 return $title;
61 }
62 add_filter( 'gamipress_activity_trigger_label', 'gamipress_give_activity_trigger_label', 10, 3 );
63
64 /**
65 * Register plugin specific activity triggers
66 *
67 * @since 1.0.0
68 *
69 * @param array $specific_activity_triggers
70 * @return array
71 */
72 function gamipress_give_specific_activity_triggers( $specific_activity_triggers ) {
73
74 $specific_activity_triggers['gamipress_give_new_donation_specific_form'] = array( 'give_forms' );
75
76 return $specific_activity_triggers;
77 }
78 add_filter( 'gamipress_specific_activity_triggers', 'gamipress_give_specific_activity_triggers' );
79
80 /**
81 * Register plugin specific activity triggers labels
82 *
83 * @since 1.0.0
84 *
85 * @param array $specific_activity_trigger_labels
86 * @return array
87 */
88 function gamipress_give_specific_activity_trigger_label( $specific_activity_trigger_labels ) {
89
90 $specific_activity_trigger_labels['gamipress_give_new_donation_specific_form'] = __( 'Make a donation through the form %s', 'gamipress' );
91
92 return $specific_activity_trigger_labels;
93 }
94 add_filter( 'gamipress_specific_activity_trigger_label', 'gamipress_give_specific_activity_trigger_label' );
95
96 /**
97 * Get user for a given trigger action.
98 *
99 * @since 1.0.0
100 *
101 * @param integer $user_id user ID to override.
102 * @param string $trigger Trigger name.
103 * @param array $args Passed trigger args.
104 * @return integer User ID.
105 */
106 function gamipress_give_trigger_get_user_id( $user_id, $trigger, $args ) {
107
108 switch ( $trigger ) {
109 case 'gamipress_give_new_donation':
110 case 'gamipress_give_new_donation_min_amount':
111 case 'gamipress_give_new_donation_specific_form':
112 $user_id = $args[1];
113 break;
114 }
115
116 return $user_id;
117
118 }
119 add_filter( 'gamipress_trigger_get_user_id', 'gamipress_give_trigger_get_user_id', 10, 3 );
120
121 /**
122 * Get the id for a given specific trigger action.
123 *
124 * @since 1.0.0
125 *
126 * @param integer $specific_id Specific ID.
127 * @param string $trigger Trigger name.
128 * @param array $args Passed trigger args.
129 *
130 * @return integer Specific ID.
131 */
132 function gamipress_give_specific_trigger_get_id( $specific_id, $trigger = '', $args = array() ) {
133
134 switch ( $trigger ) {
135 case 'gamipress_give_new_donation_specific_form':
136 $specific_id = $args[2];
137 break;
138 }
139
140 return $specific_id;
141 }
142 add_filter( 'gamipress_specific_trigger_get_id', 'gamipress_give_specific_trigger_get_id', 10, 3 );
143
144 /**
145 * Extended meta data for event trigger logging
146 *
147 * @since 1.0.0
148 *
149 * @param array $log_meta
150 * @param integer $user_id
151 * @param string $trigger
152 * @param integer $site_id
153 * @param array $args
154 *
155 * @return array
156 */
157 function gamipress_give_log_event_trigger_meta_data( $log_meta, $user_id, $trigger, $site_id, $args ) {
158
159 switch ( $trigger ) {
160 case 'gamipress_give_new_donation':
161 case 'gamipress_give_new_donation_min_amount':
162 case 'gamipress_give_new_donation_specific_form':
163 // Add the payment ID, form ID and amount donated
164 $log_meta['payment_id'] = $args[0];
165 $log_meta['form_id'] = $args[2];
166 $log_meta['amount'] = $args[3];
167 break;
168 }
169
170 return $log_meta;
171 }
172 add_filter( 'gamipress_log_event_trigger_meta_data', 'gamipress_give_log_event_trigger_meta_data', 10, 5 );