PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 2.1.0
Tutor LMS – eLearning and online course solution v2.1.0
4.0.1 4.0.0 3.9.15 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 4 years ago nav.php 3 years ago question_and_answer.php 3 years ago
question_and_answer.php
145 lines
1 <?php
2 /**
3 * Question and answer in single course details tab
4 *
5 * @since v.1.0.0
6 * @author themeum
7 * @url https://themeum.com
8 *
9 * @package TutorLMS/Templates
10 * @version 1.4.3
11 */
12
13 global $post;
14 if ( null === $post && isset( $_POST['course_id'] ) ) {
15 $post = get_post( $_POST['course_id'] );
16 }
17 $disable_qa_for_this_course = get_post_meta( $post->ID, '_tutor_enable_qa', true ) != 'yes';
18 $enable_q_and_a_on_course = tutor_utils()->get_option( 'enable_q_and_a_on_course' );
19
20 if ( ! $enable_q_and_a_on_course || $disable_qa_for_this_course ) {
21 tutor_load_template( 'single.course.q_and_a_turned_off' );
22 return;
23 }
24 /**
25 * Load more support added
26 *
27 * @since v2.0.6
28 */
29 $per_page = tutor_utils()->get_option( 'pagination_per_page', 10 );
30 $current_page = max( 1, (int) tutor_utils()->avalue_dot( 'current_page', $_POST ) );
31 $offset = (int) ( $per_page * $current_page ) - $per_page;
32 $is_load_more = isset( $_POST['action'] ) && 'tutor_q_and_a_load_more' === $_POST['action'];
33 // Previous qna list.
34 $questions = tutor_utils()->get_qa_questions(
35 $offset,
36 $per_page,
37 $search_term = '',
38 $question_id = null,
39 $meta_query = null,
40 $asker_id = null,
41 $question_status = null,
42 $count_only = false,
43 $args = array( 'course_id' => $post->ID )
44 );
45
46 $total_questions = tutor_utils()->get_qa_questions(
47 0,
48 0,
49 $search_term = '',
50 $question_id = null,
51 $meta_query = null,
52 $asker_id = null,
53 $question_status = null,
54 $count_only = true,
55 $args = array( 'course_id' => $post->ID )
56 );
57 $load_more_btn = '';
58 $max_page = (int) ceil( $total_questions / $per_page );
59 $data = array(
60 'layout' => array(
61 'type' => 'load_more',
62 'load_more_text' => __( 'Load More', 'tutor' ),
63 'class' => 'tutor-qna-load-more',
64 ),
65 'ajax' => array(
66 'action' => 'tutor_q_and_a_load_more',
67 'current_page_num' => $current_page,
68 'course_id' => $post->ID,
69 ),
70 );
71 $template = tutor()->path . 'templates/dashboard/elements/load-more.php';
72 if ( file_exists( $template ) && $max_page > $current_page ) {
73 ob_start();
74 tutor_load_template_from_custom_path( $template, $data );
75 $load_more_btn = apply_filters( 'tutor_q_and_a_load_more_button', ob_get_clean() );
76 }
77
78 // Add identifier when load more button should remove.
79 if ( $current_page >= $max_page ) {
80 echo '<input type="hidden" id="tutor-hide-comment-load-more-btn">';
81 }
82
83 do_action( 'tutor_course/question_and_answer/before' );
84 if ( $is_load_more ) {
85 $loaded_ids = '';
86
87 if ( is_array( $questions ) && count( $questions ) ) {
88 $loaded_ids_arr = array_column( $questions, 'comment_ID' );
89 $loaded_ids = implode( ',', $loaded_ids_arr );
90 }
91
92 echo "<input type='hidden' class='tutor-load-more-qna-ids' value='" . esc_attr( $loaded_ids ) . "'>";
93 foreach ( $questions as $question ) {
94 tutor_load_template_from_custom_path(
95 tutor()->path . '/views/qna/qna-single.php',
96 array(
97 'question_id' => $question->comment_ID,
98 'context' => 'course-single-qna-single',
99 'is_qna_load_more' => true,
100 ),
101 false
102 );
103 }
104 return;
105 }
106 ?>
107 <h3 class="tutor-fs-5 tutor-fw-bold tutor-color-black tutor-mb-20">
108 <?php esc_html_e( 'Question & Answer', 'tutor' ); ?>
109 </h3>
110 <?php
111 // Load new question textarea.
112 tutor_load_template_from_custom_path(
113 tutor()->path . '/views/qna/qna-new.php',
114 array(
115 'course_id' => get_the_ID(),
116 'context' => 'course-single-qna-single',
117 ),
118 false
119 );
120 ?>
121 <div class="tutor-pagination-wrapper-replaceable">
122 <div class="tutor-pagination-content-appendable">
123 <?php
124 foreach ( $questions as $question ) {
125 tutor_load_template_from_custom_path(
126 tutor()->path . '/views/qna/qna-single.php',
127 array(
128 'question_id' => $question->comment_ID,
129 'context' => 'course-single-qna-single',
130 'is_qna_load_more' => $is_load_more,
131 ),
132 false
133 );
134 }
135 ?>
136 </div>
137 <div class="tutor-button-wrapper tutor-mt-12 tutor-mb-24 tutor-d-flex tutor-justify-end">
138 <?php
139 echo $load_more_btn; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
140 ?>
141 </div>
142 </div>
143
144 <?php do_action( 'tutor_course/question_and_answer/after' ); ?>
145