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/memberpress/includes/triggers.php +232 -0 7.9.3 → 8.0.5 View file →
@@ -1,0 +1,232 @@
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 );