PluginProbe
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI / 8.0.6
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI v8.0.6
8.0.6 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 All 48 releases
← All changes | integrations/wishlist-member/includes/triggers.php +201 -0 7.9.1 → 8.0.6 View file →
@@ -1,0 +1,201 @@
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 );