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 / restrict-content-pro / includes / triggers.php

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

239 lines 8.3 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\Restrict_Content_Pro\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_restrict_content_pro_activity_triggers( $triggers ) {
21
22 $triggers[__( 'Restrict Content Pro', 'gamipress' )] = array(
23
24 // Purchase
25 'gamipress_rcp_free_membership' => __( 'Get any free membership level', 'gamipress' ),
26 'gamipress_rcp_free_specific_membership' => __( 'Get a specific free membership level', 'gamipress' ),
27 // Purchase
28 'gamipress_rcp_purchase_membership' => __( 'Purchase any membership level', 'gamipress' ),
29 'gamipress_rcp_purchase_specific_membership' => __( 'Purchase a specific membership level', 'gamipress' ),
30 // Cancel
31 'gamipress_rcp_cancel_membership' => __( 'Cancel any membership level subscription', 'gamipress' ),
32 'gamipress_rcp_cancel_specific_membership' => __( 'Cancel a specific membership level subscription', 'gamipress' ),
33 // Expired
34 'gamipress_rcp_membership_expired' => __( 'Get any membership level subscription expired', 'gamipress' ),
35 'gamipress_rcp_specific_membership_expired' => __( 'Get a specific membership level subscription expired', 'gamipress' ),
36
37 );
38
39 return $triggers;
40
41 }
42 add_filter( 'gamipress_activity_triggers', 'gamipress_restrict_content_pro_activity_triggers' );
43
44 /**
45 * Register plugin specific activity triggers
46 *
47 * @since 1.0.0
48 *
49 * @param array $specific_activity_triggers
50 * @return array
51 */
52 function gamipress_restrict_content_pro_specific_activity_triggers( $specific_activity_triggers ) {
53
54 $specific_activity_triggers['gamipress_rcp_free_specific_membership'] = array( 'rcp_membership' );
55 $specific_activity_triggers['gamipress_rcp_purchase_specific_membership'] = array( 'rcp_membership' );
56 $specific_activity_triggers['gamipress_rcp_cancel_specific_membership'] = array( 'rcp_membership' );
57 $specific_activity_triggers['gamipress_rcp_specific_membership_expired'] = array( 'rcp_membership' );
58
59 return $specific_activity_triggers;
60
61 }
62 add_filter( 'gamipress_specific_activity_triggers', 'gamipress_restrict_content_pro_specific_activity_triggers' );
63
64 /**
65 * Register plugin specific activity triggers labels
66 *
67 * @since 1.0.0
68 *
69 * @param array $specific_activity_trigger_labels
70 * @return array
71 */
72 function gamipress_restrict_content_pro_specific_activity_trigger_label( $specific_activity_trigger_labels ) {
73
74 $specific_activity_trigger_labels['gamipress_rcp_free_specific_membership'] = __( 'Get %s membership level', 'gamipress' );
75 $specific_activity_trigger_labels['gamipress_rcp_purchase_specific_membership'] = __( 'Purchase %s membership level', 'gamipress' );
76 $specific_activity_trigger_labels['gamipress_rcp_cancel_specific_membership'] = __( 'Cancel %s membership level subscription', 'gamipress' );
77 $specific_activity_trigger_labels['gamipress_rcp_specific_membership_expired'] = __( 'Get %s membership level subscription expired', 'gamipress' );
78
79 return $specific_activity_trigger_labels;
80 }
81 add_filter( 'gamipress_specific_activity_trigger_label', 'gamipress_restrict_content_pro_specific_activity_trigger_label' );
82
83 /**
84 * Get plugin specific activity trigger post title
85 *
86 * @since 1.0.0
87 *
88 * @param string $post_title
89 * @param integer $specific_id
90 * @param string $trigger_type
91 *
92 * @return string
93 */
94 function gamipress_restrict_content_pro_specific_activity_trigger_post_title( $post_title, $specific_id, $trigger_type ) {
95
96 switch( $trigger_type ) {
97 case 'gamipress_rcp_free_specific_membership':
98 case 'gamipress_rcp_purchase_specific_membership':
99 case 'gamipress_rcp_cancel_specific_membership':
100 case 'gamipress_rcp_specific_membership_expired':
101 if( absint( $specific_id ) !== 0 ) {
102
103 // Get the membership title
104 $membership_title = gamipress_restrict_content_pro_get_membership_title( $specific_id );
105
106 $post_title = $membership_title;
107 }
108 break;
109 }
110
111 return $post_title;
112
113 }
114 add_filter( 'gamipress_specific_activity_trigger_post_title', 'gamipress_restrict_content_pro_specific_activity_trigger_post_title', 10, 3 );
115
116 /**
117 * Get plugin specific activity trigger permalink
118 *
119 * @since 1.0.0
120 *
121 * @param string $permalink
122 * @param integer $specific_id
123 * @param string $trigger_type
124 * @param integer $site_id
125 *
126 * @return string
127 */
128 function gamipress_restrict_content_pro_specific_activity_trigger_permalink( $permalink, $specific_id, $trigger_type, $site_id ) {
129
130 switch( $trigger_type ) {
131 case 'gamipress_rcp_free_specific_membership':
132 case 'gamipress_rcp_purchase_specific_membership':
133 case 'gamipress_rcp_cancel_specific_membership':
134 case 'gamipress_rcp_specific_membership_expired':
135 $permalink = '';
136 break;
137 }
138
139 return $permalink;
140
141 }
142 add_filter( 'gamipress_specific_activity_trigger_permalink', 'gamipress_restrict_content_pro_specific_activity_trigger_permalink', 10, 4 );
143
144 /**
145 * Get user for a h5pn trigger action.
146 *
147 * @since 1.0.0
148 *
149 * @param integer $user_id user ID to override.
150 * @param string $trigger Trigger name.
151 * @param array $args Passed trigger args.
152 * @return integer User ID.
153 */
154 function gamipress_restrict_content_pro_trigger_get_user_id( $user_id, $trigger, $args ) {
155
156 switch ( $trigger ) {
157 // Free
158 case 'gamipress_rcp_free_membership':
159 case 'gamipress_rcp_free_specific_membership':
160 // Purchase
161 case 'gamipress_rcp_purchase_membership':
162 case 'gamipress_rcp_purchase_specific_membership':
163 // Cancel
164 case 'gamipress_rcp_cancel_membership':
165 case 'gamipress_rcp_cancel_specific_membership':
166 // Expired
167 case 'gamipress_rcp_membership_expired':
168 case 'gamipress_rcp_specific_membership_expired':
169 $user_id = $args[1];
170 break;
171 }
172
173 return $user_id;
174
175 }
176 add_filter( 'gamipress_trigger_get_user_id', 'gamipress_restrict_content_pro_trigger_get_user_id', 10, 3 );
177
178 /**
179 * Get the id for a h5pn specific trigger action.
180 *
181 * @since 1.0.0
182 *
183 * @param integer $specific_id Specific ID.
184 * @param string $trigger Trigger name.
185 * @param array $args Passed trigger args.
186 *
187 * @return integer Specific ID.
188 */
189 function gamipress_restrict_content_pro_specific_trigger_get_id( $specific_id, $trigger = '', $args = array() ) {
190
191 switch ( $trigger ) {
192 case 'gamipress_rcp_free_specific_membership':
193 case 'gamipress_rcp_purchase_specific_membership':
194 case 'gamipress_rcp_cancel_specific_membership':
195 case 'gamipress_rcp_specific_membership_expired':
196 $specific_id = $args[0];
197 break;
198 }
199
200 return $specific_id;
201 }
202 add_filter( 'gamipress_specific_trigger_get_id', 'gamipress_restrict_content_pro_specific_trigger_get_id', 10, 3 );
203
204 /**
205 * Extended meta data for event trigger logging
206 *
207 * @since 1.0.0
208 *
209 * @param array $log_meta
210 * @param integer $user_id
211 * @param string $trigger
212 * @param integer $site_id
213 * @param array $args
214 *
215 * @return array
216 */
217 function gamipress_restrict_content_pro_log_event_trigger_meta_data( $log_meta, $user_id, $trigger, $site_id, $args ) {
218
219 switch ( $trigger ) {
220 // Free
221 case 'gamipress_rcp_free_membership':
222 case 'gamipress_rcp_free_specific_membership':
223 // Purchase
224 case 'gamipress_rcp_purchase_membership':
225 case 'gamipress_rcp_purchase_specific_membership':
226 // Cancel
227 case 'gamipress_rcp_cancel_membership':
228 case 'gamipress_rcp_cancel_specific_membership':
229 // Expired
230 case 'gamipress_rcp_membership_expired':
231 case 'gamipress_rcp_specific_membership_expired':
232 // Add the membership ID
233 $log_meta['membership_id'] = $args[0];
234 break;
235 }
236
237 return $log_meta;
238 }
239 add_filter( 'gamipress_log_event_trigger_meta_data', 'gamipress_restrict_content_pro_log_event_trigger_meta_data', 10, 5 );