PluginProbe
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI / 8.0.3
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI v8.0.3
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 / wishlist-member / includes / triggers.php

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

201 lines 7.5 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\WishList_Member\Triggers
6 * @since 1.0.0
7 */
8 // Exit if accessed directly
9 if( !defined( 'ABSPATH' ) ) exit;
10
11 /**
12 * Register plugin specific triggers
13 *
14 * @param array $triggers
15 * @return mixed
16 */
17 function gamipress_wishlist_member_activity_triggers( $triggers ) {
18
19 $triggers[__( 'WishList Member', 'gamipress' )] = array(
20
21 'gamipress_wishlist_member_add_level' => __( 'Get added to any level', 'gamipress' ),
22 'gamipress_wishlist_member_add_specific_level' => __( 'Get added to specific level', 'gamipress' ),
23
24 'gamipress_wishlist_member_remove_level' => __( 'Get removed from any level', 'gamipress' ),
25 'gamipress_wishlist_member_remove_specific_level' => __( 'Get removed from specific level', 'gamipress' ),
26
27 'gamipress_wishlist_member_approve_level' => __( 'Get approved on any level', 'gamipress' ),
28 'gamipress_wishlist_member_approve_specific_level' => __( 'Get approved on specific level', 'gamipress' ),
29
30 'gamipress_wishlist_member_unapprove_level' => __( 'Get unapproved from any level', 'gamipress' ),
31 'gamipress_wishlist_member_unapprove_specific_level' => __( 'Get unapproved from specific level', 'gamipress' ),
32
33 'gamipress_wishlist_member_cancel_level' => __( 'Get cancelled on any level', 'gamipress' ),
34 'gamipress_wishlist_member_cancel_specific_level' => __( 'Get cancelled on specific level', 'gamipress' ),
35
36 'gamipress_wishlist_member_uncancel_level' => __( 'Get uncancelled on any level', 'gamipress' ),
37 'gamipress_wishlist_member_uncancel_specific_level' => __( 'Get uncancelled on specific level', 'gamipress' ),
38 );
39
40 return $triggers;
41
42 }
43 add_filter( 'gamipress_activity_triggers', 'gamipress_wishlist_member_activity_triggers' );
44
45 /**
46 * Build custom activity trigger label
47 *
48 * @since 1.0.0
49 *
50 * @param string $title
51 * @param integer $requirement_id
52 * @param array $requirement
53 *
54 * @return string
55 */
56 function gamipress_wishlist_member_activity_trigger_label( $title, $requirement_id, $requirement ) {
57
58 global $WishListMemberInstance;
59
60 $level_id = ( isset( $requirement['wishlist_member_level_id'] ) ) ? $requirement['wishlist_member_level_id'] : '';
61 $level_title = '';
62
63 switch( $requirement['trigger_type'] ) {
64 case 'gamipress_wishlist_member_add_specific_level':
65 case 'gamipress_wishlist_member_remove_specific_level':
66 case 'gamipress_wishlist_member_approve_specific_level':
67 case 'gamipress_wishlist_member_unapprove_specific_level':
68 case 'gamipress_wishlist_member_cancel_specific_level':
69 case 'gamipress_wishlist_member_uncancel_specific_level':
70 if( function_exists( 'wlmapi_get_levels' ) ) {
71
72 // Get all registered levels
73 $levels = wlmapi_get_levels();
74
75 // Check that levels are correctly setup
76 if ( is_array( $levels )
77 && isset( $levels['levels'] )
78 && isset( $levels['levels']['level'] )
79 && ! empty( $levels['levels']['level'] ) ) {
80
81 // Loop levels to add them as options
82 foreach ( $levels['levels']['level'] as $level ) {
83 if( $level['id'] === $level_id ) {
84 $level_title = $level['name'];
85 }
86 }
87
88 }
89
90 }
91 break;
92 }
93
94 switch( $requirement['trigger_type'] ) {
95 case 'gamipress_wishlist_member_add_specific_level':
96 return sprintf( __( 'Get added to %s level', 'gamipress' ), $level_title );
97 break;
98 case 'gamipress_wishlist_member_remove_specific_level':
99 return sprintf( __( 'Get removed from %s level', 'gamipress' ), $level_title );
100 break;
101 case 'gamipress_wishlist_member_approve_specific_level':
102 return sprintf( __( 'Get approved on %s level', 'gamipress' ), $level_title );
103 break;
104 case 'gamipress_wishlist_member_unapprove_specific_level':
105 return sprintf( __( 'Get unapproved from %s level', 'gamipress' ), $level_title );
106 break;
107 case 'gamipress_wishlist_member_cancel_specific_level':
108 return sprintf( __( 'Get cancelled on %s level', 'gamipress' ), $level_title );
109 break;
110 case 'gamipress_wishlist_member_uncancel_specific_level':
111 return sprintf( __( 'Get uncancelled on %s level', 'gamipress' ), $level_title );
112 break;
113 }
114
115 return $title;
116 }
117 add_filter( 'gamipress_activity_trigger_label', 'gamipress_wishlist_member_activity_trigger_label', 10, 3 );
118
119 /**
120 * Get user for a given trigger action.
121 *
122 * @since 1.0.0
123 *
124 * @param integer $user_id user ID to override.
125 * @param string $trigger Trigger name.
126 * @param array $args Passed trigger args.
127 *
128 * @return integer User ID.
129 */
130 function gamipress_wishlist_member_trigger_get_user_id( $user_id, $trigger, $args ) {
131
132 switch ( $trigger ) {
133
134 case 'gamipress_wishlist_member_add_level':
135 case 'gamipress_wishlist_member_add_specific_level':
136
137 case 'gamipress_wishlist_member_remove_level':
138 case 'gamipress_wishlist_member_remove_specific_level':
139
140 case 'gamipress_wishlist_member_approve_level':
141 case 'gamipress_wishlist_member_approve_specific_level':
142
143 case 'gamipress_wishlist_member_unapprove_level':
144 case 'gamipress_wishlist_member_unapprove_specific_level':
145
146 case 'gamipress_wishlist_member_cancel_level':
147 case 'gamipress_wishlist_member_cancel_specific_level':
148
149 case 'gamipress_wishlist_member_uncancel_level':
150 case 'gamipress_wishlist_member_uncancel_specific_level':
151 $user_id = $args[1];
152 break;
153
154 }
155
156 return $user_id;
157
158 }
159 add_filter( 'gamipress_trigger_get_user_id', 'gamipress_wishlist_member_trigger_get_user_id', 10, 3 );
160
161 /**
162 * Extended meta data for event trigger logging
163 *
164 * @since 1.0.0
165 *
166 * @param array $log_meta
167 * @param integer $user_id
168 * @param string $trigger
169 * @param integer $site_id
170 * @param array $args
171 *
172 * @return array
173 */
174 function gamipress_wishlist_member_log_event_trigger_meta_data( $log_meta, $user_id, $trigger, $site_id, $args ) {
175
176 switch ( $trigger ) {
177 case 'gamipress_wishlist_member_add_level':
178 case 'gamipress_wishlist_member_add_specific_level':
179
180 case 'gamipress_wishlist_member_remove_level':
181 case 'gamipress_wishlist_member_remove_specific_level':
182
183 case 'gamipress_wishlist_member_approve_level':
184 case 'gamipress_wishlist_member_approve_specific_level':
185
186 case 'gamipress_wishlist_member_unapprove_level':
187 case 'gamipress_wishlist_member_unapprove_specific_level':
188
189 case 'gamipress_wishlist_member_cancel_level':
190 case 'gamipress_wishlist_member_cancel_specific_level':
191
192 case 'gamipress_wishlist_member_uncancel_level':
193 case 'gamipress_wishlist_member_uncancel_specific_level':
194 // Add the level ID
195 $log_meta['level_id'] = $args[0];
196 break;
197 }
198
199 return $log_meta;
200 }
201 add_filter( 'gamipress_log_event_trigger_meta_data', 'gamipress_wishlist_member_log_event_trigger_meta_data', 10, 5 );