PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 2.1.9
Tutor LMS – eLearning and online course solution v2.1.9
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 / reviews.php
tutor / templates / single / course Last commit date
enrolled 3 years ago add-to-cart-edd.php 3 years ago add-to-cart-woocommerce.php 3 years ago continue-lesson.php 3 years ago course-benefits.php 3 years ago course-content.php 3 years ago course-entry-box.php 3 years ago course-requirements.php 3 years ago course-target-audience.php 3 years ago course-topics.php 3 years ago instructors.php 3 years ago lead-info.php 3 years ago material-includes.php 3 years ago q_and_a_turned_off.php 3 years ago reviews-loop.php 3 years ago reviews.php 3 years ago social_share.php 3 years ago tags.php 3 years ago wc-price-html.php 3 years ago
reviews.php
191 lines
1 <?php
2 /**
3 * Template for displaying course reviews
4 *
5 * @package Tutor\Templates
6 * @subpackage Single\Course
7 * @author Themeum <support@themeum.com>
8 * @link https://themeum.com
9 * @since 1.0.0
10 */
11
12 use TUTOR\Input;
13
14 $disable = ! get_tutor_option( 'enable_course_review' );
15 if ( $disable ) {
16 return;
17 }
18
19 global $is_enrolled, $course_rating;
20
21 $per_page = tutor_utils()->get_option( 'pagination_per_page', 10 );
22 $current_page = max( 1, Input::post( 'current_page', 0, Input::TYPE_INT ) );
23 $offset = ( $current_page - 1 ) * $per_page;
24
25 $current_user_id = get_current_user_id();
26 $course_id = Input::post( 'course_id', get_the_ID(), Input::TYPE_INT );
27 $reviews = tutor_utils()->get_course_reviews( $course_id, $offset, $per_page, false, array( 'approved' ), $current_user_id );
28 $reviews_total = tutor_utils()->get_course_reviews( $course_id, null, null, true, array( 'approved' ), $current_user_id );
29 $my_rating = tutor_utils()->get_reviews_by_user( 0, 0, 150, false, $course_id, array( 'approved', 'hold' ) );
30
31 if ( Input::has( 'course_id' ) ) {
32 // It's load more.
33 tutor_load_template( 'single.course.reviews-loop', array( 'reviews' => $reviews ) );
34 return;
35 }
36
37 /**
38 * Global $is_enrolled, $course_rating get null for third party
39 * who only include this file without single-course.php file.
40 *
41 * @since 2.1.9
42 */
43 if ( is_null( $is_enrolled ) ) {
44 $is_enrolled = tutor_utils()->is_enrolled( $course_id, $current_user_id );
45 }
46
47 if ( is_null( $course_rating ) ) {
48 $course_rating = tutor_utils()->get_course_rating( $course_id );
49 }
50
51 do_action( 'tutor_course/single/enrolled/before/reviews' );
52 ?>
53
54 <div class="tutor-pagination-wrapper-replaceable">
55 <h3 class="tutor-fs-5 tutor-fw-bold tutor-color-black tutor-mb-24">
56 <?php
57 $review_title = apply_filters( 'tutor_course_reviews_section_title', __( 'Student Ratings & Reviews', 'tutor' ) );
58 echo esc_html( $review_title, 'tutor' );
59 ?>
60 </h3>
61
62 <?php if ( ! is_array( $reviews ) || ! count( $reviews ) ) : ?>
63 <?php tutor_utils()->tutor_empty_state( __( 'No Review Yet', 'tutor' ) ); ?>
64 <?php else : ?>
65 <div class="tutor-card tutor-review-card">
66 <div class="tutor-review-summary tutor-p-24 tutor-p-lg-40">
67 <div class="tutor-row tutor-gx-xl-5 tutor-align-center">
68 <div class="tutor-col-lg-auto tutor-text-center tutor-mb-16 tutor-mb-lg-0">
69 <div class="tutor-review-summary-average-rating tutor-mb-20">
70 <?php echo number_format( $course_rating->rating_avg, 1 ); ?>
71 </div>
72
73 <div>
74 <div class="tutor-d-inline-block">
75 <?php tutor_utils()->star_rating_generator_v2( $course_rating->rating_avg, null, false, '', 'lg' ); ?>
76 </div>
77 </div>
78
79 <div class="tutor-fs-6 tutor-color-secondary tutor-mt-12 tutor-total-rating-count">
80 <?php esc_html_e( 'Total ', 'tutor' ); ?>
81 <?php echo esc_html( $reviews_total ); ?>
82 <?php echo esc_html( _n( ' Rating', ' Ratings', count( $reviews ), 'tutor' ) ); ?>
83 </div>
84 </div>
85
86 <div class="tutor-col-lg">
87 <div class="tutor-review-summary-ratings">
88 <?php foreach ( $course_rating->count_by_value as $key => $value ) : ?>
89 <?php $rating_count_percent = ( $value > 0 ) ? ( $value * 100 ) / $course_rating->rating_count : 0; ?>
90 <div class="tutor-row tutor-align-center tutor-review-summary-rating">
91 <div class="tutor-col-auto">
92 <div class="tutor-ratings">
93 <div class="tutor-ratings-stars">
94 <span class="tutor-icon-star-line" area-hidden="true"></span>
95 </div>
96 <div class="tutor-ratings-average">
97 <?php echo esc_html( $key ); ?>
98 </div>
99 </div>
100 </div>
101
102 <div class="tutor-col">
103 <div class="tutor-progress-bar tutor-ratings-progress-bar" style="--tutor-progress-value: <?php echo esc_attr( $rating_count_percent ); ?>%">
104 <span class="tutor-progress-value" area-hidden="true"></span>
105 </div>
106 </div>
107
108 <div class="tutor-col-4 tutor-col-lg-3">
109 <span class="tutor-fs-6 tutor-color-secondary tutor-individual-star-rating"><?php printf( esc_html( _n( '%s Rating', '%s Ratings', 0 == $value ? 1 : $value, 'tutor' ) ), number_format_i18n( $value ) ); ?></span>
110 </div>
111 </div>
112 <?php endforeach; ?>
113 </div>
114 </div>
115 </div>
116 </div>
117
118 <div class="tutor-hr" area-hidden="true"></div>
119
120 <div class="tutor-reviews tutor-card-list tutor-pagination-content-appendable">
121 <?php tutor_load_template( 'single.course.reviews-loop', array( 'reviews' => $reviews ) ); ?>
122 </div>
123 </div>
124 <?php endif; ?>
125
126 <div class="tutor-row tutor-mt-40 tutor-mb-20">
127 <div class="tutor-col">
128 <?php if ( $is_enrolled ) : ?>
129 <button class="tutor-btn tutor-btn-primary write-course-review-link-btn">
130 <i class="tutor-icon-star-line tutor-mr-8"></i>
131 <?php
132 $is_new = ! $my_rating || empty( $my_rating->rating ) || empty( $my_rating->comment_content );
133 $is_new ? esc_html_e( 'Write a review', 'tutor' ) : esc_html_e( 'Edit review', 'tutor' );
134 ?>
135 </button>
136 <?php endif; ?>
137 </div>
138
139 <div class="tutor-col-auto">
140 <?php
141 $pagination_data = array(
142 'total_items' => $reviews_total,
143 'per_page' => $per_page,
144 'paged' => $current_page,
145 'layout' => array(
146 'type' => 'load_more',
147 'load_more_text' => __( 'Load More', 'tutor' ),
148 ),
149 'ajax' => array(
150 'action' => 'tutor_single_course_reviews_load_more',
151 'course_id' => $course_id,
152 ),
153 );
154 $pagination_template_frontend = tutor()->path . 'templates/dashboard/elements/pagination.php';
155 tutor_load_template_from_custom_path( $pagination_template_frontend, $pagination_data );
156 ?>
157 </div>
158 </div>
159 </div>
160
161 <?php if ( $is_enrolled ) : ?>
162 <div class="tutor-course-enrolled-review-wrap tutor-pt-16">
163 <div class="tutor-write-review-form" style="display: none;">
164 <form method="post">
165 <div class="tutor-star-rating-container">
166 <input type="hidden" name="course_id" value="<?php echo esc_attr( $course_id ); ?>"/>
167 <input type="hidden" name="review_id" value="<?php echo esc_attr( $my_rating ? $my_rating->comment_ID : '' ); ?>"/>
168 <input type="hidden" name="action" value="tutor_place_rating"/>
169 <div class="tutor-form-group">
170 <div class="tutor-ratings tutor-ratings-lg tutor-ratings-selectable" tutor-ratings-selectable>
171 <?php
172 tutor_utils()->star_rating_generator( tutor_utils()->get_rating_value( $my_rating ? $my_rating->rating : 0 ) );
173 ?>
174 </div>
175 </div>
176 <div class="tutor-form-group">
177 <textarea name="review" placeholder="<?php esc_html_e( 'write a review', 'tutor' ); ?>"><?php echo stripslashes( $my_rating ? $my_rating->comment_content : '' ); //phpcs:ignore ?></textarea>
178 </div>
179 <div class="tutor-form-group">
180 <button type="submit" class="tutor_submit_review_btn tutor-btn tutor-btn-primary">
181 <?php esc_html_e( 'Submit Review', 'tutor' ); ?>
182 </button>
183 </div>
184 </div>
185 </form>
186 </div>
187 </div>
188 <?php endif; ?>
189
190 <?php do_action( 'tutor_course/single/enrolled/after/reviews' ); ?>
191