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/learndash/includes/functions.php +263 -0 7.8.8 → 8.0.5 View file →
@@ -1,0 +1,263 @@
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 +}