PluginProbe
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses / 4.1.7
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses v4.1.7
4.4.7 4.4.6 4.4.5 4.4.4 4.4.3 4.4.2 4.4.1 4.4.0 4.3.9.1 4.3.9 4.3.8 4.3.7 4.1.6.9 4.1.6.9.1 4.1.6.9.2 4.1.6.9.3 4.1.6.9.4 4.1.7 4.1.7.1 4.1.7.2 4.1.7.3 4.1.7.3.1 4.1.7.3.2 4.2.0 4.2.1 All 138 releases
learnpress / inc / lp-template-hooks.php

lp-template-hooks.php in LearnPress – WordPress LMS Plugin for Create and Sell Online Courses 4.1.7, at inc/lp-template-hooks.php

566 lines 18.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Build courses content
4 */
5
6 /*****************************************/
7 /** */
8 /** DOCUMENTATION */
9 /** */
10 /*****************************************/
11
12 /**
13 * Core template classes: LP_Template_General, LP_Template_Profile, LP_Template_Course.
14 *
15 * + Get instance of a template: LP()->template( TYPE ) e.g: LP()->template( 'course' )
16 * + LP()->template( TYPE )->func(CALLBACK) => hook to an action with function CALLBACK of TYPE class
17 * + LP()->template( TYPE )->callback( TEMPLATE ) => hook to an action to c
18 */
19
20
21 defined( 'ABSPATH' ) || exit();
22
23 /**
24 * New functions since 3.0.0
25 */
26
27 /**
28 * Header and Footer
29 *
30 * @see LP_Template_General::template_header()
31 * @see LP_Template_General::template_footer()
32 */
33 add_action( 'learn-press/template-header', LP()->template( 'general' )->func( 'template_header' ) );
34 add_action( 'learn-press/template-footer', LP()->template( 'general' )->func( 'template_footer' ) );
35
36 /**
37 * Course breadcrumb
38 *
39 * @see LP_Template_General::breadcrumb()
40 */
41 add_action(
42 'learn-press/before-main-content',
43 LP()->template( 'general' )->text( '<div class="lp-archive-courses">', 'lp-archive-courses-open' ),
44 - 100
45 );
46 add_action( 'learn-press/before-main-content', LP()->template( 'general' )->func( 'breadcrumb' ) );
47
48 add_action(
49 'learn-press/after-main-content',
50 LP()->template( 'general' )->text( '</div>', 'lp-archive-courses-close' ),
51 100
52 );
53
54
55 /**
56 * Course buttons
57 *
58 * @see learn_press_course_purchase_button
59 * @see learn_press_course_enroll_button
60 * @see learn_press_course_retake_button
61 * @see learn_press_course_continue_button
62 * @see learn_press_course_finish_button
63 * @see learn_press_course_external_button
64 */
65 learn_press_add_course_buttons();
66
67
68 /** BEGIN: Archive course */
69 add_action( 'learn-press/before-courses-loop', LP()->template( 'course' )->func( 'courses_top_bar' ), 10 );
70
71 /** BEGIN: Archive course loop item */
72 add_action(
73 'learn-press/before-courses-loop-item',
74 LP()->template( 'course' )->text( '<div class="course-wrap-thumbnail">', 'course-wrap-thumbnail-open' ),
75 1
76 );
77 add_action(
78 'learn-press/before-courses-loop-item',
79 LP()->template( 'course' )->callback( 'loop/course/badge-featured' ),
80 5
81 );
82 add_action(
83 'learn-press/before-courses-loop-item',
84 LP()->template( 'course' )->callback( 'loop/course/thumbnail.php' ),
85 10
86 );
87 add_action(
88 'learn-press/before-courses-loop-item',
89 LP()->template( 'course' )->text( '</div>', 'course-wrap-thumbnail-close' ),
90 1000
91 );
92
93 add_action(
94 'learn-press/before-courses-loop-item',
95 LP()->template( 'course' )->text(
96 '<!-- START .course-content --> <div class="course-content">',
97 'course-content-open'
98 ),
99 1000
100 );
101 add_action(
102 'learn-press/before-courses-loop-item',
103 LP()->template( 'course' )->callback( 'loop/course/categories' ),
104 1010
105 );
106 add_action(
107 'learn-press/before-courses-loop-item',
108 LP()->template( 'course' )->callback( 'loop/course/instructor' ),
109 1010
110 );
111 add_action(
112 'learn-press/courses-loop-item-title',
113 LP()->template( 'course' )->callback( 'loop/course/title.php' ),
114 20
115 );
116
117 /**
118 * @see LP_Template_Course::courses_loop_item_meta()
119 * @see LP_Template_Course::courses_loop_item_info_begin()
120 * @see LP_Template_Course::clearfix()
121 * @see LP_Template_Course::courses_loop_item_price()
122 * @see LP_Template_Course::courses_loop_item_info_end()
123 */
124
125 add_action(
126 'learn-press/after-courses-loop-item',
127 LP()->template( 'course' )->text(
128 '<!-- START .course-content-meta --> <div class="course-wrap-meta">',
129 'course-wrap-meta-open'
130 ),
131 20
132 );
133 add_action(
134 'learn-press/after-courses-loop-item',
135 LP()->template( 'course' )->callback( 'single-course/meta/duration' ),
136 20
137 );
138 add_action(
139 'learn-press/after-courses-loop-item',
140 LP()->template( 'course' )->callback( 'single-course/meta/level' ),
141 20
142 );
143 /**
144 * @see LP_Template_Course::count_object()
145 */
146 add_action( 'learn-press/after-courses-loop-item', LP()->template( 'course' )->func( 'count_object' ), 20 );
147 add_action(
148 'learn-press/after-courses-loop-item',
149 LP()->template( 'course' )->text( '</div> <!-- END .course-content-meta -->', 'course-wrap-meta-close' ),
150 20
151 );
152
153 add_action( 'learn-press/after-courses-loop-item', LP()->template( 'course' )->func( 'courses_loop_item_meta' ), 25 );
154 add_action(
155 'learn-press/after-courses-loop-item',
156 LP()->template( 'course' )->func( 'courses_loop_item_info_begin' ),
157 20
158 );
159 add_action( 'learn-press/after-courses-loop-item', LP()->template( 'course' )->func( 'clearfix' ), 30 );
160
161 add_action(
162 'learn-press/after-courses-loop-item',
163 LP()->template( 'course' )->text(
164 '<!-- START .course-content-footer --> <div class="course-footer">',
165 'course-footer-open'
166 ),
167 40
168 );
169 add_action( 'learn-press/after-courses-loop-item', LP()->template( 'course' )->func( 'courses_loop_item_price' ), 50 );
170 add_action(
171 'learn-press/after-courses-loop-item',
172 LP()->template( 'course' )->text( '</div> <!-- END .course-content-footer -->', 'course-footer-close' ),
173 50
174 );
175 add_action( 'learn-press/after-courses-loop-item', LP()->template( 'course' )->func( 'course_readmore' ), 55 );
176
177 add_action(
178 'learn-press/after-courses-loop-item',
179 LP()->template( 'course' )->func( 'courses_loop_item_info_end' ),
180 60
181 );
182
183 add_action(
184 'learn-press/after-courses-loop-item',
185 LP()->template( 'course' )->text( '</div> <!-- END .course-content -->', 'course-content-close' ),
186 1000
187 );
188
189 /** END: Archive course loop item */
190
191 /** Archive course pagination */
192 add_action(
193 'learn-press/after-courses-loop',
194 LP()->template( 'course' )->callback( 'loop/course/pagination.php' ),
195 10
196 );
197 /** END: Archive course */
198
199 /** BEGIN: Main content of single course */
200
201
202 // Sidebar and content
203 add_action( 'learn-press/single-course-summary', LP()->template( 'course' )->callback( 'single-course/content' ), 10 );
204
205 // Content
206 add_action(
207 'learn-press/course-content-summary',
208 LP()->template( 'course' )->text(
209 '<div class="course-detail-info"> <div class="lp-content-area"> <div class="course-info-left">',
210 'course-info-left-open'
211 ),
212 10
213 );
214 add_action(
215 'learn-press/course-content-summary',
216 LP()->template( 'course' )->callback( 'single-course/meta-primary' ),
217 10
218 );
219 add_action( 'learn-press/course-content-summary', LP()->template( 'course' )->callback( 'single-course/title' ), 10 );
220 add_action(
221 'learn-press/course-content-summary',
222 LP()->template( 'course' )->callback( 'single-course/meta-secondary' ),
223 10
224 );
225 add_action(
226 'learn-press/course-content-summary',
227 LP()->template( 'course' )->text( ' </div> </div> </div>', 'course-info-left-close' ),
228 15
229 );
230
231 add_action(
232 'learn-press/course-content-summary',
233 LP()->template( 'course' )->text( '<div class="lp-entry-content lp-content-area">', 'lp-entry-content-open' ),
234 30
235 );
236 add_action(
237 'learn-press/course-content-summary',
238 LP()->template( 'course' )->text( '<div class="entry-content-left">', 'entry-content-left-open' ),
239 35
240 );
241 add_action(
242 'learn-press/course-content-summary',
243 LP()->template( 'course' )->func( 'course_extra_boxes_position_control' ),
244 39
245 );
246 add_action( 'learn-press/course-content-summary', LP()->template( 'course' )->func( 'course_extra_boxes' ), 40 );
247 // add_action( 'learn-press/course-content-summary', LP()->template( 'course' )->callback( 'single-course/progress' ), 40 );
248 // add_action( 'learn-press/course-content-summary', LP()->template( 'course' )->func( 'remaining_time' ), 50 );
249 add_action(
250 'learn-press/course-content-summary',
251 LP()->template( 'course' )->callback( 'single-course/tabs/tabs' ),
252 60
253 );
254 // appear at bottom after enrolled
255 add_action( 'learn-press/course-content-summary', LP()->template( 'course' )->func( 'course_extra_boxes' ), 70 );
256
257 add_action( 'learn-press/course-content-summary', LP()->template( 'course' )->func( 'course_comment_template' ), 75 );
258
259 add_action(
260 'learn-press/course-content-summary',
261 LP()->template( 'course' )->text( '<!-- end entry content left --> </div>', 'entry-content-left-close' ),
262 80
263 );
264
265 add_action( 'learn-press/course-content-summary', LP()->template( 'course' )->callback( 'single-course/sidebar' ), 85 );
266
267 add_action(
268 'learn-press/course-content-summary',
269 LP()->template( 'course' )->text( ' </div>', 'lp-entry-content-close' ),
270 100
271 );
272
273 // Meta
274 add_action(
275 'learn-press/course-meta-primary-left',
276 LP()->template( 'course' )->callback( 'single-course/meta/instructor' ),
277 10
278 );
279 add_action(
280 'learn-press/course-meta-primary-left',
281 LP()->template( 'course' )->callback( 'single-course/meta/category' ),
282 20
283 );
284
285 add_action(
286 'learn-press/course-meta-secondary-left',
287 LP()->template( 'course' )->callback( 'single-course/meta/duration' ),
288 10
289 );
290 add_action(
291 'learn-press/course-meta-secondary-left',
292 LP()->template( 'course' )->callback( 'single-course/meta/level' ),
293 20
294 );
295 /**
296 * @see LP_Template_Course::count_object()
297 */
298 add_action( 'learn-press/course-meta-secondary-left', LP()->template( 'course' )->func( 'count_object' ), 20 );
299
300
301 // Sidebar content
302 /**
303 * @see LP_Template_Course::course_sidebar_preview()
304 * @see LP_Template_Course::course_extra_key_features()
305 * @see LP_Template_Course::course_extra_requirements()
306 */
307 add_action( 'learn-press/course-summary-sidebar', LP()->template( 'course' )->func( 'course_sidebar_preview' ), 10 );
308 add_action( 'learn-press/course-summary-sidebar', LP()->template( 'course' )->func( 'course_featured_review' ), 20 );
309 // add_action( 'learn-press/course-summary-sidebar', LP()->template( 'course' )->func( 'course_extra_key_features' ), 20 );
310 // add_action( 'learn-press/course-summary-sidebar', LP()->template( 'course' )->func( 'course_extra_requirements' ), 30 );
311
312 /** END: Main content of single course */
313
314 /** BEGIN: Course section */
315 add_action(
316 'learn-press/section-summary',
317 LP()->template( 'course' )->callback( 'single-course/section/title.php', array( 'section' ) ),
318 10
319 );
320 add_action(
321 'learn-press/section-summary',
322 LP()->template( 'course' )->callback( 'single-course/section/content.php', array( 'section' ) ),
323 20
324 );
325
326 add_action(
327 'learn-press/after-section-loop-item-title',
328 LP()->template( 'course' )->callback(
329 'single-course/section/item-meta.php',
330 array(
331 'item',
332 'section',
333 )
334 ),
335 10,
336 2
337 );
338
339 /** BEGIN: Quiz item */
340
341 /**
342 * @see LP_Template_Course::quiz_meta_questions()
343 * @see LP_Template_Course::item_meta_duration()
344 * @see LP_Template_Course::quiz_meta_final()
345 */
346 add_action(
347 'learn-press/course-section-item/before-lp_quiz-meta',
348 LP()->template( 'course' )->func( 'quiz_meta_questions' ),
349 10
350 );
351 add_action(
352 'learn-press/course-section-item/before-lp_quiz-meta',
353 LP()->template( 'course' )->func( 'item_meta_duration' ),
354 20
355 );
356 add_action(
357 'learn-press/course-section-item/before-lp_quiz-meta',
358 LP()->template( 'course' )->func( 'quiz_meta_final' ),
359 30
360 );
361 /** END: Quiz item */
362
363 /** BEGIN: Lesson item */
364 add_action(
365 'learn-press/course-section-item/before-lp_lesson-meta',
366 LP()->template( 'course' )->func( 'item_meta_duration' ),
367 10
368 );
369 /** END: Lesson item */
370
371 /** END: Course section */
372
373 /** BEGIN: Popup */
374 /**
375 * @see single-button-toggle-sidebar
376 */
377 add_action(
378 'learn-press/single-button-toggle-sidebar',
379 LP()->template( 'course' )->text( '<input type="checkbox" id="sidebar-toggle" />', 'single-button-toggle-sidebar' ),
380 5
381 );
382
383 /**
384 * @see LP_Template_Course::popup_header()
385 * @see LP_Template_Course::popup_sidebar()
386 * @see LP_Template_Course::popup_content()
387 * @see LP_Template_Course::popup_footer()
388 */
389 add_action( 'learn-press/single-item-summary', LP()->template( 'course' )->func( 'popup_header' ), 10 );
390 add_action( 'learn-press/single-item-summary', LP()->template( 'course' )->func( 'popup_sidebar' ), 20 );
391 add_action( 'learn-press/single-item-summary', LP()->template( 'course' )->func( 'popup_content' ), 30 );
392 add_action( 'learn-press/single-item-summary', LP()->template( 'course' )->func( 'popup_footer' ), 40 );
393
394 /**
395 * @see LP_Template_Course::popup_footer_nav()
396 */
397 add_action( 'learn-press/popup-footer', LP()->template( 'course' )->func( 'popup_footer_nav' ), 10 );
398 /** END: Popup */
399
400 /** BEGIN: Popup quiz */
401 /**
402 * @see LP_Template_Course::course_finish_button()
403 */
404 add_action( 'learn-press/quiz-buttons', LP()->template( 'course' )->func( 'course_finish_button' ), 10 );
405 /** END: Popup quiz */
406
407 /** BEGIN: Popup lesson */
408
409 /**
410 * @see LP_Template_Course::item_lesson_title()
411 * @see LP_Template_Course::item_lesson_content()
412 * @see LP_Template_Course::item_lesson_content_blocked()
413 * @see LP_Template_Course::item_lesson_complete_button()
414 * @see LP_Template_Course::course_finish_button()
415 */
416 add_action(
417 'learn-press/before-content-item-summary/lp_lesson',
418 LP()->template( 'course' )->func( 'item_lesson_title' ),
419 10
420 );
421 add_action(
422 'learn-press/content-item-summary/lp_lesson',
423 LP()->template( 'course' )->func( 'item_lesson_content' ),
424 10
425 );
426 // add_action( 'learn-press/content-item-summary/lp_lesson',
427 // LP()->template( 'course' )->func( 'item_lesson_content_blocked' ), 15 );
428 add_action(
429 'learn-press/after-content-item-summary/lp_lesson',
430 LP()->template( 'course' )->func( 'item_lesson_complete_button' ),
431 10
432 );
433 add_action(
434 'learn-press/after-content-item-summary/lp_lesson',
435 LP()->template( 'course' )->func( 'course_finish_button' ),
436 15
437 );
438 /** END: Popup lesson */
439
440 /**
441 * @see LP_Template_Course::course_item_content()
442 */
443 add_action( 'learn-press/course-item-content', LP()->template( 'course' )->func( 'course_item_content' ), 5 );
444
445 /** BEGIN: User profile */
446
447 /**
448 * @see LP_Template_Profile::header()
449 * @see LP_Template_Profile::tabs()
450 * @see LP_Template_Profile::content()
451 */
452 //add_action( 'learn-press/before-user-profile', LP()->template( 'profile' )->func( 'header' ), 10 );
453
454 add_action( 'learn-press/user-profile', LP()->template( 'profile' )->func( 'sidebar' ), 10 );
455 add_action( 'learn-press/user-profile', LP()->template( 'profile' )->func( 'content' ), 20 );
456
457 add_action( 'learn-press/user-profile-account', LP()->template( 'profile' )->text( ' <div class="lp-profile-left">', 'user-profile-account-left-open' ), 5 );
458 add_action( 'learn-press/user-profile-account', LP()->template( 'profile' )->func( 'avatar' ), 10 );
459 add_action( 'learn-press/user-profile-account', LP()->template( 'profile' )->func( 'socials' ), 10 );
460 add_action( 'learn-press/user-profile-account', LP()->template( 'profile' )->text( ' </div>', 'user-profile-account-left-close' ), 15 );
461 add_action( 'learn-press/user-profile-account', LP()->template( 'profile' )->func( 'header' ), 20 );
462
463 add_action( 'learn-press/user-profile-tabs', LP()->template( 'profile' )->func( 'tabs' ), 10 );
464
465
466 add_action( 'learn-press/profile/orders', LP()->template( 'profile' )->callback( 'profile/tabs/orders/list.php' ), 10 );
467 add_action(
468 'learn-press/profile/orders',
469 LP()->template( 'profile' )->callback( 'profile/tabs/orders/recover-order.php' ),
470 20
471 );
472
473 /**
474 * @see LP_Template_Profile::order_details()
475 * @see LP_Template_Profile::order_recover()
476 * @see LP_Template_Profile::order_message()
477 */
478 add_action( 'learn-press/profile/order-details', LP()->template( 'profile' )->func( 'order_details' ), 5 );
479 add_action( 'learn-press/profile/order-details', LP()->template( 'profile' )->func( 'order_recover' ), 10 );
480 add_action( 'learn-press/profile/order-details', LP()->template( 'profile' )->func( 'order_message' ), 15 );
481
482 /**
483 * @see LP_Template_Profile::dashboard_logged_in()
484 * @deprecated 4.1.6
485 */
486 // add_action( 'learn-press/profile/before-dashboard', LP()->template( 'profile' )->func( 'dashboard_statistic' ), 10 );
487 add_action(
488 'learn-press/profile/dashboard-summary',
489 LP()->template( 'profile' )->func( 'dashboard_featured_courses' ),
490 20
491 );
492 add_action(
493 'learn-press/profile/dashboard-summary',
494 LP()->template( 'profile' )->func( 'dashboard_latest_courses' ),
495 30
496 );
497
498 /**
499 * @see LP_Template_Profile::dashboard_not_logged_in()
500 * @see LP_Template_Profile::login_form()
501 * @see LP_Template_Profile::register_form()
502 */
503 add_action( 'learn-press/user-profile', LP()->template( 'profile' )->func( 'dashboard_not_logged_in' ), 5 );
504 add_action( 'learn-press/user-profile', LP()->template( 'profile' )->func( 'login_form' ), 10 );
505 add_action( 'learn-press/user-profile', LP()->template( 'profile' )->func( 'register_form' ), 15 );
506
507 /** BEGIN: Checkout page */
508 /**
509 * @see LP_Template_Checkout::review_order()
510 */
511 add_action( 'learn-press/before-checkout-form', LP()->template( 'checkout' )->func( 'review_order' ), 10 );
512 add_action( 'learn-press/after-checkout-form', LP()->template( 'checkout' )->func( 'account_logged_in' ), 20 );
513 add_action( 'learn-press/after-checkout-form', LP()->template( 'checkout' )->func( 'account_register' ), 30 );
514 add_action( 'learn-press/after-checkout-form', LP()->template( 'checkout' )->func( 'account_login' ), 40 );
515 add_action( 'learn-press/after-checkout-form', LP()->template( 'checkout' )->func( 'guest_checkout' ), 50 );
516 add_action( 'learn-press/after-checkout-form', LP()->template( 'checkout' )->func( 'order_comment' ), 60 );
517 add_action( 'learn-press/after-checkout-form', LP()->template( 'checkout' )->func( 'payment' ), 70 );
518 add_action( 'learn-press/after-checkout-form', LP()->template( 'checkout' )->func( 'terms' ), 80 );
519
520 // ******************************************************************************************************************* //
521
522 add_action( 'learn-press/content-item-summary-class', 'learn_press_content_item_summary_classes', 15 );
523 add_action(
524 'learn-press/before-content-item-summary/lp_quiz',
525 LP()->template( 'course' )->callback( 'content-quiz/title.php' ),
526 5
527 );
528 add_action( 'learn-press/content-item-summary/lp_quiz', LP()->template( 'course' )->callback( 'content-quiz/js' ), 25 );
529 // add_action( 'learn-press/parse-course-item', 'learn_press_control_displaying_course_item', 5 ); // comment by tungnx
530 //add_action( 'learn-press/after-single-course', 'learn_press_single_course_args', 5 );
531 add_filter( 'document_title_parts', 'learn_press_single_document_title_parts', 5 );
532
533 add_filter( 'body_class', 'learn_press_body_classes', 10 );
534 add_filter( 'post_class', 'learn_press_course_class', 15, 3 );
535 //add_action( 'wp_head', 'learn_press_single_course_args', 5 );
536 add_action(
537 'learn-press/before-checkout-order-review',
538 LP()->template( 'course' )->callback( 'checkout/form-logged-in.php' ),
539 10
540 );
541 add_filter( 'comments_template_query_args', 'learn_press_comments_template_query_args' );
542 add_filter( 'get_comments_number', 'learn_press_filter_get_comments_number' );
543
544 add_filter( 'excerpt_length', 'learn_press_custom_excerpt_length', 999 );
545 // add_filter( 'learn_press_get_template', LP()->template( 'general' )->func( 'filter_block_content_template' ), 10, 5 );
546
547 /**
548 * Filter to hide the section if there is no item.
549 *
550 * @param bool $visible
551 * @param LP_Course_Section $section
552 * @param LP_Course $course
553 *
554 * @return bool
555 * @since 4.0.0
556 */
557 function learn_press_filter_section_visible( $visible, $section, $course ) {
558 if ( ! $section->get_items() ) {
559 $visible = false;
560 }
561
562 return $visible;
563 }
564
565 add_filter( 'learn-press/section-visible', 'learn_press_filter_section_visible', 10, 3 );
566