PluginProbe
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI / 8.0.2
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI v8.0.2
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 7.8.6 7.8.5 All 44 releases
gamipress / integrations / learndash / includes / functions.php

functions.php in GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI 8.0.2, at integrations/learndash/includes/functions.php

263 lines 8.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Functions
4 *
5 * @package GamiPress\LearnDash\Functions
6 * @since 1.0.0
7 */
8
9 // Exit if accessed directly
10 if( !defined( 'ABSPATH' ) ) exit;
11
12 /**
13 * Retrieves post ID.
14 *
15 * @since 1.3.0
16 *
17 * @param mixed $thing
18 *
19 * @return int|false
20 */
21 function gamipress_ld_get_post_id( $thing ) {
22
23 if( $thing instanceof WP_Post ) {
24 return absint( $thing->ID );
25 }
26
27 if( is_numeric( $thing ) ) {
28
29 if( absint( $thing ) === 0 ) {
30 return false;
31 } else {
32 return absint( $thing );
33 }
34 }
35
36 return false;
37 }
38
39 /**
40 * Retrieves post term ids for a taxonomy.
41 *
42 * @since 1.2.8
43 *
44 * @param int $post_id Post ID.
45 * @param string $taxonomy Taxonomy slug.
46 *
47 * @return array
48 */
49 function gamipress_ld_get_term_ids( $post_id, $taxonomy ) {
50
51 $terms = get_the_terms( $post_id, $taxonomy );
52
53 return ( empty( $terms ) || is_wp_error( $terms ) ) ? array() : wp_list_pluck( $terms, 'term_id' );
54
55 }
56
57 /**
58 * Helper function to get the terms IDs index
59 *
60 * @since 1.2.8
61 *
62 * @param string $trigger
63 *
64 * @return integer
65 */
66 function gamipress_ld_get_terms_ids_index( $trigger ) {
67
68 $index = -1;
69
70 switch ( $trigger ) {
71 // Course category
72 case 'gamipress_ld_enroll_course_category':
73 case 'gamipress_ld_complete_course_category':
74 // Course tag
75 case 'gamipress_ld_enroll_course_tag':
76 case 'gamipress_ld_complete_course_tag':
77 $index = 2;
78 break;
79 // Course category
80 case 'gamipress_ld_complete_quiz_course_category':
81 case 'gamipress_ld_pass_quiz_course_category':
82 case 'gamipress_ld_fail_quiz_course_category':
83 case 'gamipress_ld_complete_lesson_course_category':
84 // Course tag
85 case 'gamipress_ld_complete_quiz_course_tag':
86 case 'gamipress_ld_pass_quiz_course_tag':
87 case 'gamipress_ld_fail_quiz_course_tag':
88 case 'gamipress_ld_complete_lesson_course_tag':
89 // Lesson taxonomies
90 case 'gamipress_ld_complete_lesson_category':
91 case 'gamipress_ld_complete_lesson_tag':
92 // Quiz taxonomies
93 case 'gamipress_ld_complete_quiz_category':
94 case 'gamipress_ld_complete_quiz_tag':
95 case 'gamipress_ld_pass_quiz_category':
96 case 'gamipress_ld_pass_quiz_tag':
97 case 'gamipress_ld_fail_quiz_category':
98 case 'gamipress_ld_fail_quiz_tag':
99 $index = 3;
100 break;
101 // Course category
102 case 'gamipress_ld_complete_quiz_course_category_grade':
103 case 'gamipress_ld_complete_quiz_course_category_max_grade':
104 case 'gamipress_ld_complete_quiz_course_category_between_grade':
105 case 'gamipress_ld_complete_topic_course_category':
106 case 'gamipress_ld_assignment_upload_course_category':
107 case 'gamipress_ld_approve_assignment_course_category':
108 // Course tag
109 case 'gamipress_ld_complete_quiz_course_tag_grade':
110 case 'gamipress_ld_complete_quiz_course_tag_max_grade':
111 case 'gamipress_ld_complete_quiz_course_tag_between_grade':
112 case 'gamipress_ld_complete_topic_course_tag':
113 case 'gamipress_ld_assignment_upload_course_tag':
114 case 'gamipress_ld_approve_assignment_course_tag':
115 // Quiz category
116 case 'gamipress_ld_complete_quiz_category_grade':
117 case 'gamipress_ld_complete_quiz_category_max_grade':
118 case 'gamipress_ld_complete_quiz_category_between_grade':
119 // Quiz tag
120 case 'gamipress_ld_complete_quiz_tag_grade':
121 case 'gamipress_ld_complete_quiz_tag_max_grade':
122 case 'gamipress_ld_complete_quiz_tag_between_grade':
123 // Topic taxonomies
124 case 'gamipress_ld_complete_topic_category':
125 case 'gamipress_ld_complete_topic_tag':
126 // Lesson taxonomies
127 case 'gamipress_ld_assignment_upload_lesson_category':
128 case 'gamipress_ld_approve_assignment_lesson_category':
129 case 'gamipress_ld_assignment_upload_lesson_tag':
130 case 'gamipress_ld_approve_assignment_lesson_tag':
131 $index = 4;
132 break;
133 }
134
135 return $index;
136
137 }
138
139 /**
140 * Helper function to get the terms IDs index
141 *
142 * @since 1.2.8
143 *
144 * @param string $trigger
145 *
146 * @return string
147 */
148 function gamipress_ld_get_term_element( $trigger ) {
149
150 $element = '';
151
152 switch ( $trigger ) {
153 // Course category
154 case 'gamipress_ld_complete_quiz_course_category':
155 case 'gamipress_ld_complete_quiz_course_category_grade':
156 case 'gamipress_ld_complete_quiz_course_category_max_grade':
157 case 'gamipress_ld_complete_quiz_course_category_between_grade':
158 case 'gamipress_ld_pass_quiz_course_category':
159 case 'gamipress_ld_fail_quiz_course_category':
160 case 'gamipress_ld_complete_topic_course_category':
161 case 'gamipress_ld_assignment_upload_course_category':
162 case 'gamipress_ld_approve_assignment_course_category':
163 case 'gamipress_ld_complete_lesson_course_category':
164 case 'gamipress_ld_enroll_course_category':
165 case 'gamipress_ld_complete_course_category':
166 // Course tag
167 case 'gamipress_ld_complete_quiz_course_tag':
168 case 'gamipress_ld_complete_quiz_course_tag_grade':
169 case 'gamipress_ld_complete_quiz_course_tag_max_grade':
170 case 'gamipress_ld_complete_quiz_course_tag_between_grade':
171 case 'gamipress_ld_pass_quiz_course_tag':
172 case 'gamipress_ld_fail_quiz_course_tag':
173 case 'gamipress_ld_complete_topic_course_tag':
174 case 'gamipress_ld_assignment_upload_course_tag':
175 case 'gamipress_ld_approve_assignment_course_tag':
176 case 'gamipress_ld_complete_lesson_course_tag':
177 case 'gamipress_ld_enroll_course_tag':
178 case 'gamipress_ld_complete_course_tag':
179 $element = 'course';
180 break;
181 // Topic taxonomies
182 case 'gamipress_ld_complete_topic_category':
183 case 'gamipress_ld_complete_topic_tag':
184 $element = 'topic';
185 break;
186 // Lesson taxonomies
187 case 'gamipress_ld_assignment_upload_lesson_category':
188 case 'gamipress_ld_approve_assignment_lesson_category':
189 case 'gamipress_ld_complete_lesson_category':
190 case 'gamipress_ld_assignment_upload_lesson_tag':
191 case 'gamipress_ld_approve_assignment_lesson_tag':
192 case 'gamipress_ld_complete_lesson_tag':
193 $element = 'lesson';
194 break;
195 // Quiz category
196 case 'gamipress_ld_complete_quiz_category':
197 case 'gamipress_ld_pass_quiz_category':
198 case 'gamipress_ld_fail_quiz_category':
199 case 'gamipress_ld_complete_quiz_category_grade':
200 case 'gamipress_ld_complete_quiz_category_max_grade':
201 case 'gamipress_ld_complete_quiz_category_between_grade':
202 // Quiz tag
203 case 'gamipress_ld_complete_quiz_tag':
204 case 'gamipress_ld_pass_quiz_tag':
205 case 'gamipress_ld_fail_quiz_tag':
206 case 'gamipress_ld_complete_quiz_tag_grade':
207 case 'gamipress_ld_complete_quiz_tag_max_grade':
208 case 'gamipress_ld_complete_quiz_tag_between_grade':
209 $element = 'quiz';
210 break;
211 }
212
213 return $element;
214
215 }
216
217 /**
218 * Helper function to get the terms IDs index
219 *
220 * @since 1.2.8
221 *
222 * @param string $trigger
223 *
224 * @return string
225 */
226 function gamipress_ld_get_term_taxonomy( $trigger ) {
227
228 $taxonomy = 'category';
229
230 switch ( $trigger ) {
231 // Course tag
232 case 'gamipress_ld_complete_quiz_course_tag':
233 case 'gamipress_ld_complete_quiz_course_tag_grade':
234 case 'gamipress_ld_complete_quiz_course_tag_max_grade':
235 case 'gamipress_ld_complete_quiz_course_tag_between_grade':
236 case 'gamipress_ld_pass_quiz_course_tag':
237 case 'gamipress_ld_fail_quiz_course_tag':
238 case 'gamipress_ld_complete_topic_course_tag':
239 case 'gamipress_ld_assignment_upload_course_tag':
240 case 'gamipress_ld_approve_assignment_course_tag':
241 case 'gamipress_ld_complete_lesson_course_tag':
242 case 'gamipress_ld_enroll_course_tag':
243 case 'gamipress_ld_complete_course_tag':
244 // Topic tag
245 case 'gamipress_ld_complete_topic_tag':
246 // Lesson tag
247 case 'gamipress_ld_assignment_upload_lesson_tag':
248 case 'gamipress_ld_approve_assignment_lesson_tag':
249 case 'gamipress_ld_complete_lesson_tag':
250 // Quiz tag
251 case 'gamipress_ld_complete_quiz_tag':
252 case 'gamipress_ld_pass_quiz_tag':
253 case 'gamipress_ld_fail_quiz_tag':
254 case 'gamipress_ld_complete_quiz_tag_grade':
255 case 'gamipress_ld_complete_quiz_tag_max_grade':
256 case 'gamipress_ld_complete_quiz_tag_between_grade':
257 $taxonomy = 'tag';
258 break;
259 }
260
261 return $taxonomy;
262
263 }