PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 2.7.3
Tutor LMS – eLearning and online course solution v2.7.3
3.9.14 3.9.13 3.9.12 3.9.11 trunk 1.0.0 1.0.0-alpha 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.2.0 1.2.1 1.2.11 1.2.12 1.2.13 1.2.20 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8.0 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.15 1.9.16 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.1.10 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.0 2.4.0 2.5.0 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.1.0 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.7.0 3.7.1 3.7.2 3.7.3 3.7.4 3.8.0 3.8.1 3.8.2 3.8.3 3.9.0 3.9.1 3.9.10 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9
tutor / templates / single / course / enrolled / question_and_answer.php
tutor / templates / single / course / enrolled Last commit date
announcements.php 2 years ago nav.php 3 years ago question_and_answer.php 3 years ago
question_and_answer.php
153 lines
1 <?php
2 /**
3 * Question and answer in single course details tab
4 *
5 * @package Tutor\Templates
6 * @subpackage Single\Course\Enrolled
7 * @author Themeum <support@themeum.com>
8 * @link https://themeum.com
9 * @since 1.0.0
10 */
11
12 use TUTOR\Input;
13
14 global $post;
15 if ( null === $post && Input::has( 'course_id' ) ) {
16 $post = get_post( Input::post( 'course_id' ) );
17 }
18
19 $disable_qa_for_this_course = get_post_meta( $post->ID, '_tutor_enable_qa', true ) != 'yes';
20 $enable_q_and_a_on_course = tutor_utils()->get_option( 'enable_q_and_a_on_course' );
21
22 if ( ! $enable_q_and_a_on_course || $disable_qa_for_this_course ) {
23 tutor_load_template( 'single.course.q_and_a_turned_off' );
24 return;
25 }
26
27 /**
28 * Load more support added
29 *
30 * @since 2.0.6
31 */
32 $per_page = tutor_utils()->get_option( 'pagination_per_page', 10 );
33 $current_page = max( 1, Input::post( 'current_page', 1, Input::TYPE_INT ) );
34 $offset = (int) ( $per_page * $current_page ) - $per_page;
35 $is_load_more = 'tutor_q_and_a_load_more' === Input::post( 'action' );
36
37 // Previous qna list.
38 $questions = tutor_utils()->get_qa_questions(
39 $offset,
40 $per_page,
41 $search_term = '',
42 $question_id = null,
43 $meta_query = null,
44 $asker_id = null,
45 $question_status = null,
46 $count_only = false,
47 $args = array( 'course_id' => $post->ID )
48 );
49
50 $total_questions = tutor_utils()->get_qa_questions(
51 0,
52 0,
53 $search_term = '',
54 $question_id = null,
55 $meta_query = null,
56 $asker_id = null,
57 $question_status = null,
58 $count_only = true,
59 $args = array( 'course_id' => $post->ID )
60 );
61
62 $load_more_btn = '';
63 $max_page = (int) ceil( $total_questions / $per_page );
64 $data = array(
65 'layout' => array(
66 'type' => 'load_more',
67 'load_more_text' => __( 'Load More', 'tutor' ),
68 'class' => 'tutor-qna-load-more',
69 ),
70 'ajax' => array(
71 'action' => 'tutor_q_and_a_load_more',
72 'current_page_num' => $current_page,
73 'course_id' => $post->ID,
74 ),
75 );
76
77 $template = tutor()->path . 'templates/dashboard/elements/load-more.php';
78 if ( file_exists( $template ) && $max_page > $current_page ) {
79 ob_start();
80 tutor_load_template_from_custom_path( $template, $data );
81 $load_more_btn = apply_filters( 'tutor_q_and_a_load_more_button', ob_get_clean() );
82 }
83
84 // Add identifier when load more button should remove.
85 if ( $current_page >= $max_page ) {
86 echo '<input type="hidden" id="tutor-hide-comment-load-more-btn">';
87 }
88
89 do_action( 'tutor_course/question_and_answer/before' );
90 if ( $is_load_more ) {
91 $loaded_ids = '';
92
93 if ( is_array( $questions ) && count( $questions ) ) {
94 $loaded_ids_arr = array_column( $questions, 'comment_ID' );
95 $loaded_ids = implode( ',', $loaded_ids_arr );
96 }
97
98 echo "<input type='hidden' class='tutor-load-more-qna-ids' value='" . esc_attr( $loaded_ids ) . "'>";
99 foreach ( $questions as $question ) {
100 tutor_load_template_from_custom_path(
101 tutor()->path . '/views/qna/qna-single.php',
102 array(
103 'question_id' => $question->comment_ID,
104 'context' => 'course-single-qna-single',
105 'is_qna_load_more' => true,
106 ),
107 false
108 );
109 }
110 return;
111 }
112 ?>
113 <h3 class="tutor-fs-5 tutor-fw-bold tutor-color-black tutor-mb-20">
114 <?php esc_html_e( 'Question & Answer', 'tutor' ); ?>
115 </h3>
116
117 <?php
118 // Load new question textarea.
119 tutor_load_template_from_custom_path(
120 tutor()->path . '/views/qna/qna-new.php',
121 array(
122 'course_id' => get_the_ID(),
123 'context' => 'course-single-qna-single',
124 ),
125 false
126 );
127 ?>
128
129 <div class="tutor-pagination-wrapper-replaceable">
130 <div class="tutor-pagination-content-appendable">
131 <?php
132 foreach ( $questions as $question ) {
133 tutor_load_template_from_custom_path(
134 tutor()->path . '/views/qna/qna-single.php',
135 array(
136 'question_id' => $question->comment_ID,
137 'context' => 'course-single-qna-single',
138 'is_qna_load_more' => $is_load_more,
139 ),
140 false
141 );
142 }
143 ?>
144 </div>
145 <div class="tutor-button-wrapper tutor-mt-12 tutor-mb-24 tutor-d-flex tutor-justify-end">
146 <?php
147 echo $load_more_btn; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
148 ?>
149 </div>
150 </div>
151
152 <?php do_action( 'tutor_course/question_and_answer/after' ); ?>
153