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

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

232 lines 11.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\MemberPress\Triggers
6 * @since 1.0.0
7 */
8
9 // Exit if accessed directly
10 if( !defined( 'ABSPATH' ) ) exit;
11
12 /**
13 * Register MemberPress activity triggers
14 *
15 * @param array $triggers
16 * @return mixed
17 */
18 function gamipress_memberpress_activity_triggers( $triggers ) {
19
20 $triggers[__( 'MemberPress', 'gamipress' )] = array(
21 'gamipress_memberpress_product_purchase' => __( 'Purchase any subscription product', 'gamipress' ),
22 'gamipress_memberpress_specific_product_purchase' => __( 'Purchase a specific subscription product', 'gamipress' ),
23 'gamipress_memberpress_lifetime_product_purchase' => __( 'Purchase any one-time subscription product', 'gamipress' ),
24 'gamipress_memberpress_specific_lifetime_product_purchase' => __( 'Purchase a specific one-time subscription product', 'gamipress' ),
25 'gamipress_memberpress_recurring_product_purchase' => __( 'Purchase any recurring subscription product', 'gamipress' ),
26 'gamipress_memberpress_specific_recurring_product_purchase' => __( 'Purchase a specific recurring subscription product', 'gamipress' ),
27 'gamipress_memberpress_product_cancelled' => __( 'Cancel a subscription product', 'gamipress' ),
28 'gamipress_memberpress_specific_product_cancelled' => __( 'Cancel a specific subscription product', 'gamipress' ),
29 'gamipress_memberpress_product_suspended' => __( 'Suspend a subscription product', 'gamipress' ),
30 'gamipress_memberpress_specific_product_suspended' => __( 'Suspend a specific subscription product', 'gamipress' ),
31 );
32
33 $triggers[__( 'MemberPress Courses', 'gamipress' )] = array(
34 'gamipress_memberpress_complete_lesson' => __( 'Complete any lesson', 'gamipress' ),
35 'gamipress_memberpress_complete_specific_lesson' => __( 'Complete a specific lesson', 'gamipress' ),
36 'gamipress_memberpress_complete_lesson_specific_course' => __( 'Complete a lesson of a specific course', 'gamipress' ),
37 'gamipress_memberpress_start_course' => __( 'Start a course', 'gamipress' ),
38 'gamipress_memberpress_start_specific_course' => __( 'Start a specific course', 'gamipress' ),
39 'gamipress_memberpress_complete_course' => __( 'Complete a course', 'gamipress' ),
40 'gamipress_memberpress_complete_specific_course' => __( 'Complete a specific course', 'gamipress' ),
41 );
42
43 return $triggers;
44
45 }
46 add_filter( 'gamipress_activity_triggers', 'gamipress_memberpress_activity_triggers' );
47
48 /**
49 * Register MemberPress specific activity triggers
50 *
51 * @since 1.0.0
52 *
53 * @param array $specific_activity_triggers
54 * @return array
55 */
56 function gamipress_memberpress_specific_activity_triggers( $specific_activity_triggers ) {
57
58 // Purchase
59 $specific_activity_triggers['gamipress_memberpress_specific_product_purchase'] = array( 'memberpressproduct' );
60 $specific_activity_triggers['gamipress_memberpress_specific_lifetime_product_purchase'] = array( 'memberpressproduct' );
61 $specific_activity_triggers['gamipress_memberpress_specific_recurring_product_purchase'] = array( 'memberpressproduct' );
62 $specific_activity_triggers['gamipress_memberpress_specific_product_cancelled'] = array( 'memberpressproduct' );
63 $specific_activity_triggers['gamipress_memberpress_specific_product_suspended'] = array( 'memberpressproduct' );
64 $specific_activity_triggers['gamipress_memberpress_complete_specific_lesson'] = array( 'mpcs-lesson' );
65 $specific_activity_triggers['gamipress_memberpress_complete_lesson_specific_course'] = array( ' mpcs-course' );
66 $specific_activity_triggers['gamipress_memberpress_start_specific_course'] = array( ' mpcs-course' );
67 $specific_activity_triggers['gamipress_memberpress_complete_specific_course'] = array( ' mpcs-course' );
68
69 return $specific_activity_triggers;
70 }
71 add_filter( 'gamipress_specific_activity_triggers', 'gamipress_memberpress_specific_activity_triggers' );
72
73 /**
74 * Register MemberPress specific activity triggers labels
75 *
76 * @since 1.0.0
77 *
78 * @param array $specific_activity_trigger_labels
79 * @return array
80 */
81 function gamipress_memberpress_specific_activity_trigger_label( $specific_activity_trigger_labels ) {
82
83 // Purchase
84 $specific_activity_trigger_labels['gamipress_memberpress_specific_product_purchase'] = __( 'Purchase %s', 'gamipress' );
85 $specific_activity_trigger_labels['gamipress_memberpress_specific_lifetime_product_purchase'] = __( 'Purchase %s', 'gamipress' );
86 $specific_activity_trigger_labels['gamipress_memberpress_specific_recurring_product_purchase'] = __( 'Purchase %s', 'gamipress' );
87 $specific_activity_trigger_labels['gamipress_memberpress_specific_product_cancelled'] = __( 'Cancel %s', 'gamipress' );
88 $specific_activity_trigger_labels['gamipress_memberpress_specific_product_suspended'] = __( 'Suspend %s', 'gamipress' );
89 $specific_activity_trigger_labels['gamipress_memberpress_complete_specific_lesson'] = __( 'Complete %s lesson', 'gamipress' );
90 $specific_activity_trigger_labels['gamipress_memberpress_complete_lesson_specific_course'] = __( 'Complete a lesson of %s course', 'gamipress' );
91 $specific_activity_trigger_labels['gamipress_memberpress_start_specific_course'] = __( 'Start %s course', 'gamipress' );
92 $specific_activity_trigger_labels['gamipress_memberpress_complete_specific_course'] = __( 'Complete %s course', 'gamipress' );
93
94 return $specific_activity_trigger_labels;
95 }
96 add_filter( 'gamipress_specific_activity_trigger_label', 'gamipress_memberpress_specific_activity_trigger_label' );
97
98 /**
99 * Get user for a given trigger action.
100 *
101 * @since 1.0.0
102 *
103 * @param integer $user_id user ID to override.
104 * @param string $trigger Trigger name.
105 * @param array $args Passed trigger args.
106 * @return integer User ID.
107 */
108 function gamipress_memberpress_trigger_get_user_id( $user_id, $trigger, $args ) {
109
110 switch ( $trigger ) {
111 // Purchase
112 case 'gamipress_memberpress_product_purchase':
113 case 'gamipress_memberpress_specific_product_purchase':
114 case 'gamipress_memberpress_lifetime_product_purchase':
115 case 'gamipress_memberpress_specific_lifetime_product_purchase':
116 case 'gamipress_memberpress_recurring_product_purchase':
117 case 'gamipress_memberpress_specific_recurring_product_purchase':
118 case 'gamipress_memberpress_product_cancelled':
119 case 'gamipress_memberpress_specific_product_cancelled':
120 case 'gamipress_memberpress_product_suspended':
121 case 'gamipress_memberpress_specific_product_suspended':
122 // Courses
123 case 'gamipress_memberpress_complete_lesson':
124 case 'gamipress_memberpress_complete_specific_lesson':
125 case 'gamipress_memberpress_complete_lesson_specific_course':
126 case 'gamipress_memberpress_start_course':
127 case 'gamipress_memberpress_start_specific_course':
128 case 'gamipress_memberpress_complete_course':
129 case 'gamipress_memberpress_complete_specific_course':
130 $user_id = $args[1];
131 break;
132 }
133
134 return $user_id;
135
136 }
137 add_filter( 'gamipress_trigger_get_user_id', 'gamipress_memberpress_trigger_get_user_id', 10, 3 );
138
139 /**
140 * Get the id for a given specific trigger action.
141 *
142 * @since 1.0.1
143 *
144 * @param integer $specific_id Specific ID to override.
145 * @param string $trigger Trigger name.
146 * @param array $args Passed trigger args.
147 *
148 * @return integer Specific ID.
149 */
150 function gamipress_memberpress_specific_trigger_get_id( $specific_id, $trigger, $args ) {
151
152 switch ( $trigger ) {
153 // Purchase
154 case 'gamipress_memberpress_specific_product_purchase':
155 case 'gamipress_memberpress_specific_lifetime_product_purchase':
156 case 'gamipress_memberpress_specific_recurring_product_purchase':
157 case 'gamipress_memberpress_specific_product_cancelled':
158 case 'gamipress_memberpress_specific_product_suspended':
159 case 'gamipress_memberpress_complete_specific_lesson':
160 case 'gamipress_memberpress_start_specific_course':
161 case 'gamipress_memberpress_complete_specific_course':
162 $specific_id = $args[0];
163 break;
164 case 'gamipress_memberpress_complete_lesson_specific_course':
165 $specific_id = $args[2];
166 break;
167 }
168
169 return $specific_id;
170
171 }
172
173 add_filter( 'gamipress_specific_trigger_get_id', 'gamipress_memberpress_specific_trigger_get_id', 10, 3 );
174
175 /**
176 * Extended meta data for event trigger logging
177 *
178 * @since 1.0.2
179 *
180 * @param array $log_meta
181 * @param integer $user_id
182 * @param string $trigger
183 * @param integer $site_id
184 * @param array $args
185 *
186 * @return array
187 */
188 function gamipress_memberpress_log_event_trigger_meta_data( $log_meta, $user_id, $trigger, $site_id, $args ) {
189
190 switch ( $trigger ) {
191 // Purchase
192 case 'gamipress_memberpress_product_purchase':
193 case 'gamipress_memberpress_specific_product_purchase':
194 case 'gamipress_memberpress_lifetime_product_purchase':
195 case 'gamipress_memberpress_specific_lifetime_product_purchase':
196 case 'gamipress_memberpress_recurring_product_purchase':
197 case 'gamipress_memberpress_specific_recurring_product_purchase':
198 case 'gamipress_memberpress_product_cancelled':
199 case 'gamipress_memberpress_specific_product_cancelled':
200 case 'gamipress_memberpress_product_suspended':
201 case 'gamipress_memberpress_specific_product_suspended':
202 // Add the product and order IDs
203 $log_meta['product_id'] = $args[0];
204 $log_meta['post_id'] = $args[0];
205 break;
206 // Courses
207 case 'gamipress_memberpress_complete_lesson':
208 case 'gamipress_memberpress_complete_specific_lesson':
209 // Add the lesson and course IDs
210 $log_meta['lesson_id'] = $args[0];
211 $log_meta['course_id'] = $args[2];
212 $log_meta['post_id'] = $args[0];
213 break;
214 case 'gamipress_memberpress_complete_lesson_specific_course':
215 // Add the lesson and course IDs
216 $log_meta['lesson_id'] = $args[0];
217 $log_meta['course_id'] = $args[2];
218 $log_meta['post_id'] = $args[2];
219 break;
220 case 'gamipress_memberpress_start_course':
221 case 'gamipress_memberpress_start_specific_course':
222 case 'gamipress_memberpress_complete_course':
223 case 'gamipress_memberpress_complete_specific_course':
224 // Add the course ID
225 $log_meta['course_id'] = $args[0];
226 $log_meta['post_id'] = $args[0];
227 break;
228 }
229
230 return $log_meta;
231 }
232 add_filter( 'gamipress_log_event_trigger_meta_data', 'gamipress_memberpress_log_event_trigger_meta_data', 10, 5 );