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/restrict-content-pro/includes/triggers.php +239 -0 7.9.2 → 8.0.5 View file →
@@ -1,0 +1,239 @@
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 );