PluginProbe
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses / 4.4.8
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses v4.4.8
4.4.8 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 All 139 releases
← All changes | inc/lp-template-hooks.php +117 -159 4.2.04.4.8 View file →
@@ -17,8 +17,16 @@
17 17 * + LearnPress::instance()->template( TYPE )->callback( TEMPLATE ) => hook to an action to c
18 18 */
19 19
20 20
21 +use LearnPress\Helpers\Template;
22 +use LearnPress\Models\CourseModel;
23 +use LearnPress\Models\UserItems\UserCourseModel;
24 +use LearnPress\Models\UserModel;
25 +use LearnPress\TemplateHooks\Course\ListCoursesTemplate;
26 +use LearnPress\TemplateHooks\Course\SingleCourseTemplate;
27 +use LearnPress\TemplateHooks\UserItem\UserCourseTemplate;
28 +
21 29 defined( 'ABSPATH' ) || exit();
22 30
23 31 /**
24 32 * New functions since 3.0.0
@@ -32,18 +40,18 @@
32 40 */
33 41 add_action( 'learn-press/template-header', LearnPress::instance()->template( 'general' )->func( 'template_header' ) );
34 42 add_action( 'learn-press/template-footer', LearnPress::instance()->template( 'general' )->func( 'template_footer' ) );
35 43
44 +add_action(
45 + 'learn-press/before-main-content',
46 + LearnPress::instance()->template( 'general' )->text( '<div class="lp-archive-courses">', 'lp-archive-courses-open' ),
47 + - 100
48 +);
36 49 /**
37 50 * Course breadcrumb
38 51 *
39 52 * @see LP_Template_General::breadcrumb()
40 53 */
41 -add_action(
42 - 'learn-press/before-main-content',
43 - LearnPress::instance()->template( 'general' )->text( '<div class="lp-archive-courses">', 'lp-archive-courses-open' ),
44 - - 100
45 -);
46 54 add_action( 'learn-press/before-main-content', LearnPress::instance()->template( 'general' )->func( 'breadcrumb' ) );
47 55
48 56 add_action(
49 57 'learn-press/after-main-content',
@@ -53,18 +61,40 @@
53 61
54 62
55 63 /**
56 64 * 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
65 + * old hook: learn-press/course-buttons
64 66 */
65 -learn_press_add_course_buttons();
67 +add_action(
68 + 'learn-press/course-buttons',
69 + function () {
70 + $singleCourseTemplate = SingleCourseTemplate::instance();
71 + $course = CourseModel::find( get_the_ID(), true );
72 + $user = UserModel::find( get_current_user_id(), true );
73 + $userCourseModel = UserCourseModel::find( get_current_user_id(), get_the_ID(), true );
74 + $userCourseTemplate = UserCourseTemplate::instance();
66 75
76 + // Button enroll
77 + echo $singleCourseTemplate->html_btn_enroll_course( $course, $user );
78 + // Button purchase
79 + echo $singleCourseTemplate->html_btn_purchase_course( $course, $user );
80 + // Button external
81 + echo '<div style="display:flex;flex-direction:column">';
82 + echo $singleCourseTemplate->html_btn_external( $course, $user );
83 + echo '</div>';
84 + if ( $userCourseModel instanceof UserCourseModel ) {
85 + // Button retake
86 + echo $userCourseTemplate->html_btn_retake( $userCourseModel );
87 + // Button continue
88 + echo '<div style="margin-bottom: 10px">';
89 + echo $userCourseTemplate->html_btn_continue( $userCourseModel );
90 + echo '</div>';
91 + // Button finish
92 + echo $userCourseTemplate->html_btn_finish( $userCourseModel );
93 + }
94 + },
95 + 5
96 +);
67 97
68 98 /** BEGIN: Archive course */
69 99 add_action( 'learn-press/before-courses-loop', LearnPress::instance()->template( 'course' )->func( 'courses_top_bar' ), 10 );
70 100
@@ -69,132 +99,48 @@
69 99 add_action( 'learn-press/before-courses-loop', LearnPress::instance()->template( 'course' )->func( 'courses_top_bar' ), 10 );
70 100
71 101 /** BEGIN: Archive course loop item */
72 102 add_action(
73 - 'learn-press/before-courses-loop-item',
74 - LearnPress::instance()->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 - LearnPress::instance()->template( 'course' )->callback( 'loop/course/badge-featured' ),
80 - 5
81 -);
82 -add_action(
83 - 'learn-press/before-courses-loop-item',
84 - LearnPress::instance()->template( 'course' )->callback( 'loop/course/thumbnail.php' ),
85 - 10
86 -);
87 -add_action(
88 - 'learn-press/before-courses-loop-item',
89 - LearnPress::instance()->template( 'course' )->text( '</div>', 'course-wrap-thumbnail-close' ),
90 - 1000
91 -);
92 -
93 -add_action(
94 - 'learn-press/before-courses-loop-item',
95 - LearnPress::instance()->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 - LearnPress::instance()->template( 'course' )->callback( 'loop/course/categories' ),
104 - 1010
105 -);
106 -add_action(
107 - 'learn-press/before-courses-loop-item',
108 - LearnPress::instance()->template( 'course' )->callback( 'loop/course/instructor' ),
109 - 1010
110 -);
111 -add_action(
112 103 'learn-press/courses-loop-item-title',
113 104 LearnPress::instance()->template( 'course' )->callback( 'loop/course/title.php' ),
114 105 20
115 106 );
116 107
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 - */
108 +/** END: Archive course loop item */
124 109
125 -add_action(
126 - 'learn-press/after-courses-loop-item',
127 - LearnPress::instance()->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 - LearnPress::instance()->template( 'course' )->callback( 'single-course/meta/duration' ),
136 - 20
137 -);
138 -add_action(
139 - 'learn-press/after-courses-loop-item',
140 - LearnPress::instance()->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', LearnPress::instance()->template( 'course' )->func( 'count_object' ), 20 );
147 -add_action(
148 - 'learn-press/after-courses-loop-item',
149 - LearnPress::instance()->template( 'course' )->text( '</div> <!-- END .course-content-meta -->', 'course-wrap-meta-close' ),
150 - 20
151 -);
110 +/** Archive course pagination */
111 +if ( LP_Settings::theme_no_support_load_courses_ajax() ) {
112 + add_action(
113 + 'learn-press/after-courses-loop',
114 + LearnPress::instance()->template( 'course' )->callback( 'loop/course/pagination.php' )
115 + );
116 +} else {
117 + add_action(
118 + 'learn-press/after-courses-loop',
119 + function () {
120 + $listCourseTemplate = ListCoursesTemplate::instance();
121 + $pagination_type = LP_Settings::get_option( 'course_pagination_type', 'number' );
122 + $enableAjaxLoadCourses = LP_Settings_Courses::is_ajax_load_courses();
123 + $enableNoLoadAjaxFirst = LP_Settings_Courses::is_no_load_ajax_first_courses();
124 + if ( $enableAjaxLoadCourses && $pagination_type !== 'number' ) {
125 + if ( $enableNoLoadAjaxFirst ) {
126 + if ( 'load-more' === $pagination_type ) {
127 + echo $listCourseTemplate->html_pagination_load_more();
128 + } elseif ( 'infinite' === $pagination_type ) {
129 + echo $listCourseTemplate->html_pagination_infinite();
130 + }
131 + }
152 132
153 -add_action( 'learn-press/after-courses-loop-item', LearnPress::instance()->template( 'course' )->func( 'courses_loop_item_meta' ), 25 );
154 -add_action(
155 - 'learn-press/after-courses-loop-item',
156 - LearnPress::instance()->template( 'course' )->func( 'courses_loop_item_info_begin' ),
157 - 20
158 -);
159 -add_action( 'learn-press/after-courses-loop-item', LearnPress::instance()->template( 'course' )->func( 'clearfix' ), 30 );
133 + return;
134 + }
160 135
161 -add_action(
162 - 'learn-press/after-courses-loop-item',
163 - LearnPress::instance()->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', LearnPress::instance()->template( 'course' )->func( 'courses_loop_item_price' ), 50 );
170 -add_action(
171 - 'learn-press/after-courses-loop-item',
172 - LearnPress::instance()->template( 'course' )->text( '</div> <!-- END .course-content-footer -->', 'course-footer-close' ),
173 - 50
174 -);
175 -add_action( 'learn-press/after-courses-loop-item', LearnPress::instance()->template( 'course' )->func( 'course_readmore' ), 55 );
176 -
177 -add_action(
178 - 'learn-press/after-courses-loop-item',
179 - LearnPress::instance()->template( 'course' )->func( 'courses_loop_item_info_end' ),
180 - 60
181 -);
182 -
183 -add_action(
184 - 'learn-press/after-courses-loop-item',
185 - LearnPress::instance()->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 - LearnPress::instance()->template( 'course' )->callback( 'loop/course/pagination.php' ),
195 - 10
196 -);
136 + if ( ! $enableAjaxLoadCourses || ( $enableAjaxLoadCourses && $enableNoLoadAjaxFirst ) ) {
137 + Template::instance()->get_frontend_template( 'loop/course/pagination.php' );
138 + }
139 + },
140 + 10
141 + );
142 +}
197 143 /** END: Archive course */
198 144
199 145 /** BEGIN: Main content of single course */
200 146
@@ -237,14 +183,14 @@
237 183 'learn-press/course-content-summary',
238 184 LearnPress::instance()->template( 'course' )->text( '<div class="entry-content-left">', 'entry-content-left-open' ),
239 185 35
240 186 );
241 -add_action(
242 - 'learn-press/course-content-summary',
243 - LearnPress::instance()->template( 'course' )->func( 'course_extra_boxes_position_control' ),
244 - 39
245 -);
246 -add_action( 'learn-press/course-content-summary', LearnPress::instance()->template( 'course' )->func( 'course_extra_boxes' ), 40 );
187 +//add_action(
188 +// 'learn-press/course-content-summary',
189 +// LearnPress::instance()->template( 'course' )->func( 'course_extra_boxes_position_control' ),
190 +// 39
191 +//);
192 +//add_action( 'learn-press/course-content-summary', LearnPress::instance()->template( 'course' )->func( 'course_extra_boxes' ), 40 );
247 193 // add_action( 'learn-press/course-content-summary', LearnPress::instance()->template( 'course' )->callback( 'single-course/progress' ), 40 );
248 194 // add_action( 'learn-press/course-content-summary', LearnPress::instance()->template( 'course' )->func( 'remaining_time' ), 50 );
249 195 add_action(
250 196 'learn-press/course-content-summary',
@@ -375,9 +321,9 @@
375 321 * @see single-button-toggle-sidebar
376 322 */
377 323 add_action(
378 324 'learn-press/single-button-toggle-sidebar',
379 - LearnPress::instance()->template( 'course' )->text( '<input type="checkbox" id="sidebar-toggle" />', 'single-button-toggle-sidebar' ),
325 + LearnPress::instance()->template( 'course' )->text( '<input type="checkbox" id="sidebar-toggle" title="Show/Hide curriculum" />', 'single-button-toggle-sidebar' ),
380 326 5
381 327 );
382 328
383 329 /**
@@ -400,9 +346,9 @@
400 346 /** BEGIN: Popup quiz */
401 347 /**
402 348 * @see LP_Template_Course::course_finish_button()
403 349 */
404 -add_action( 'learn-press/quiz-buttons', LearnPress::instance()->template( 'course' )->func( 'course_finish_button' ), 10 );
350 +//add_action( 'learn-press/quiz-buttons', LearnPress::instance()->template( 'course' )->func( 'course_finish_button' ), 10 );
405 351 /** END: Popup quiz */
406 352
407 353 /** BEGIN: Popup lesson */
408 354
@@ -409,9 +355,8 @@
409 355 /**
410 356 * @see LP_Template_Course::item_lesson_title()
411 357 * @see LP_Template_Course::item_lesson_content()
412 358 * @see LP_Template_Course::item_lesson_complete_button()
413 - * @see LP_Template_Course::course_finish_button()
414 359 */
415 360 add_action(
416 361 'learn-press/before-content-item-summary/lp_lesson',
417 362 LearnPress::instance()->template( 'course' )->func( 'item_lesson_title' ),
@@ -423,14 +368,26 @@
423 368 10
424 369 );
425 370 add_action(
426 371 'learn-press/after-content-item-summary/lp_lesson',
372 + LearnPress::instance()->template( 'course' )->func( 'item_lesson_material' ),
373 + 10
374 +);
375 +add_action(
376 + 'learn-press/after-content-item-summary/lp_lesson',
427 377 LearnPress::instance()->template( 'course' )->func( 'item_lesson_complete_button' ),
428 - 10
378 + 11
429 379 );
430 380 add_action(
431 381 'learn-press/after-content-item-summary/lp_lesson',
432 - LearnPress::instance()->template( 'course' )->func( 'course_finish_button' ),
382 + function () {
383 + $userCourseModel = UserCourseModel::find( get_current_user_id(), get_the_ID(), true );
384 + $userCourseTemplate = UserCourseTemplate::instance();
385 +
386 + if ( $userCourseModel instanceof UserCourseModel ) {
387 + echo $userCourseTemplate->html_btn_finish( $userCourseModel );
388 + }
389 + },
433 390 15
434 391 );
435 392 /** END: Popup lesson */
436 393
@@ -450,18 +407,25 @@
450 407
451 408 add_action( 'learn-press/user-profile', LearnPress::instance()->template( 'profile' )->func( 'sidebar' ), 10 );
452 409 add_action( 'learn-press/user-profile', LearnPress::instance()->template( 'profile' )->func( 'content' ), 20 );
453 410
411 +add_action( 'learn-press/user-profile/private', LearnPress::instance()->template( 'profile' )->func( 'sidebar' ), 10 );
412 +
454 413 add_action( 'learn-press/user-profile-account', LearnPress::instance()->template( 'profile' )->text( ' <div class="lp-profile-left">', 'user-profile-account-left-open' ), 5 );
455 414 add_action( 'learn-press/user-profile-account', LearnPress::instance()->template( 'profile' )->func( 'avatar' ), 10 );
456 -add_action( 'learn-press/user-profile-account', LearnPress::instance()->template( 'profile' )->func( 'socials' ), 10 );
415 +//add_action( 'learn-press/user-profile-account', LearnPress::instance()->template( 'profile' )->func( 'socials' ), 10 );
457 416 add_action( 'learn-press/user-profile-account', LearnPress::instance()->template( 'profile' )->text( ' </div>', 'user-profile-account-left-close' ), 15 );
458 417 add_action( 'learn-press/user-profile-account', LearnPress::instance()->template( 'profile' )->func( 'header' ), 20 );
459 418
460 419 add_action( 'learn-press/user-profile-tabs', LearnPress::instance()->template( 'profile' )->func( 'tabs' ), 10 );
461 420
462 -
421 +/**
422 + * @deprecated 4.2.6.2
423 + */
463 424 add_action( 'learn-press/profile/orders', LearnPress::instance()->template( 'profile' )->callback( 'profile/tabs/orders/list.php' ), 10 );
425 +/**
426 + * @deprecated 4.2.6.2
427 + */
464 428 add_action(
465 429 'learn-press/profile/orders',
466 430 LearnPress::instance()->template( 'profile' )->callback( 'profile/tabs/orders/recover-order.php' ),
467 431 20
@@ -466,16 +430,12 @@
466 430 LearnPress::instance()->template( 'profile' )->callback( 'profile/tabs/orders/recover-order.php' ),
467 431 20
468 432 );
469 433
470 -/**
471 - * @see LP_Template_Profile::order_details()
472 - * @see LP_Template_Profile::order_recover()
473 - * @see LP_Template_Profile::order_message()
474 - */
475 -add_action( 'learn-press/profile/order-details', LearnPress::instance()->template( 'profile' )->func( 'order_details' ), 5 );
476 -add_action( 'learn-press/profile/order-details', LearnPress::instance()->template( 'profile' )->func( 'order_recover' ), 10 );
477 -add_action( 'learn-press/profile/order-details', LearnPress::instance()->template( 'profile' )->func( 'order_message' ), 15 );
434 +// Comment from v4.3.2.6, hook not using from v4.2.6.4
435 +//add_action( 'learn-press/profile/order-details', LearnPress::instance()->template( 'profile' )->func( 'order_details' ), 5 );
436 +//add_action( 'learn-press/profile/order-details', LearnPress::instance()->template( 'profile' )->func( 'order_recover' ), 10 );
437 +//add_action( 'learn-press/profile/order-details', LearnPress::instance()->template( 'profile' )->func( 'order_message' ), 15 );
478 438
479 439 /**
480 440 * @see LP_Template_Profile::dashboard_logged_in()
481 441 * @deprecated 4.1.6
@@ -480,18 +440,18 @@
480 440 * @see LP_Template_Profile::dashboard_logged_in()
481 441 * @deprecated 4.1.6
482 442 */
483 443 // add_action( 'learn-press/profile/before-dashboard', LearnPress::instance()->template( 'profile' )->func( 'dashboard_statistic' ), 10 );
484 -add_action(
444 +/*add_action(
485 445 'learn-press/profile/dashboard-summary',
486 446 LearnPress::instance()->template( 'profile' )->func( 'dashboard_featured_courses' ),
487 447 20
488 -);
489 -add_action(
448 +);*/
449 +/*add_action(
490 450 'learn-press/profile/dashboard-summary',
491 451 LearnPress::instance()->template( 'profile' )->func( 'dashboard_latest_courses' ),
492 452 30
493 -);
453 +);*/
494 454
495 455 /**
496 456 * @see LP_Template_Profile::dashboard_not_logged_in()
497 457 * @see LP_Template_Profile::login_form()
@@ -515,9 +475,9 @@
515 475 add_action( 'learn-press/after-checkout-form', LearnPress::instance()->template( 'checkout' )->func( 'terms' ), 80 );
516 476
517 477 // ******************************************************************************************************************* //
518 478
519 -add_action( 'learn-press/content-item-summary-class', 'learn_press_content_item_summary_classes', 15 );
479 +//add_action( 'learn-press/content-item-summary-class', 'learn_press_content_item_summary_classes', 15 );
520 480 add_action(
521 481 'learn-press/before-content-item-summary/lp_quiz',
522 482 LearnPress::instance()->template( 'course' )->callback( 'content-quiz/title.php' ),
523 483 5
@@ -534,10 +494,8 @@
534 494 'learn-press/before-checkout-order-review',
535 495 LearnPress::instance()->template( 'course' )->callback( 'checkout/form-logged-in.php' ),
536 496 10
537 497 );
538 -add_filter( 'comments_template_query_args', 'learn_press_comments_template_query_args' );
539 -add_filter( 'get_comments_number', 'learn_press_filter_get_comments_number' );
540 498
541 499 add_filter( 'excerpt_length', 'learn_press_custom_excerpt_length', 999 );
542 500 // add_filter( 'learn_press_get_template', LearnPress::instance()->template( 'general' )->func( 'filter_block_content_template' ), 10, 5 );
543 501
@@ -543,11 +501,11 @@
543 501
544 502 /**
545 503 * Filter to hide the section if there is no item.
546 504 *
547 - * @param bool $visible
505 + * @param bool $visible
548 506 * @param LP_Course_Section $section
549 - * @param LP_Course $course
507 + * @param LP_Course $course
550 508 *
551 509 * @return bool
552 510 * @since 4.0.0
553 511 */