PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 3.9.0
Tutor LMS – eLearning and online course solution v3.9.0
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 1 year ago add-to-cart-edd.php 1 year ago add-to-cart-tutor.php 11 months ago add-to-cart-woocommerce.php 1 year ago continue-lesson.php 3 years ago course-benefits.php 3 years ago course-content.php 3 years ago course-entry-box.php 1 year ago course-requirements.php 3 years ago course-target-audience.php 3 years ago course-topics.php 1 year ago instructors.php 3 years ago lead-info.php 9 months ago material-includes.php 3 years ago q_and_a_turned_off.php 3 years ago reviews-loop.php 1 year ago reviews.php 2 years ago social_share.php 3 years ago tags.php 3 years ago wc-price-html.php 3 years ago
reviews.php
196 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">
110 <?php
111 /* translators: %s: rating count */
112 printf( esc_html( _n( '%s Rating', '%s Ratings', 0 == $value ? 1 : $value, 'tutor' ) ), number_format_i18n( $value ) );
113 ?>
114 </span>
115 </div>
116 </div>
117 <?php endforeach; ?>
118 </div>
119 </div>
120 </div>
121 </div>
122
123 <div class="tutor-hr" area-hidden="true"></div>
124
125 <div class="tutor-reviews tutor-card-list tutor-pagination-content-appendable">
126 <?php tutor_load_template( 'single.course.reviews-loop', array( 'reviews' => $reviews ) ); ?>
127 </div>
128 </div>
129 <?php endif; ?>
130
131 <div class="tutor-row tutor-mt-40 tutor-mb-20">
132 <div class="tutor-col">
133 <?php if ( $is_enrolled ) : ?>
134 <button class="tutor-btn tutor-btn-primary write-course-review-link-btn">
135 <i class="tutor-icon-star-line tutor-mr-8"></i>
136 <?php
137 $is_new = ! $my_rating || empty( $my_rating->rating ) || empty( $my_rating->comment_content );
138 $is_new ? esc_html_e( 'Write a review', 'tutor' ) : esc_html_e( 'Edit review', 'tutor' );
139 ?>
140 </button>
141 <?php endif; ?>
142 </div>
143
144 <div class="tutor-col-auto">
145 <?php
146 $pagination_data = array(
147 'total_items' => $reviews_total,
148 'per_page' => $per_page,
149 'paged' => $current_page,
150 'layout' => array(
151 'type' => 'load_more',
152 'load_more_text' => __( 'Load More', 'tutor' ),
153 ),
154 'ajax' => array(
155 'action' => 'tutor_single_course_reviews_load_more',
156 'course_id' => $course_id,
157 ),
158 );
159 $pagination_template_frontend = tutor()->path . 'templates/dashboard/elements/pagination.php';
160 tutor_load_template_from_custom_path( $pagination_template_frontend, $pagination_data );
161 ?>
162 </div>
163 </div>
164 </div>
165
166 <?php if ( $is_enrolled ) : ?>
167 <div class="tutor-course-enrolled-review-wrap tutor-pt-16">
168 <div class="tutor-write-review-form" style="display: none;">
169 <form method="post">
170 <div class="tutor-star-rating-container">
171 <input type="hidden" name="course_id" value="<?php echo esc_attr( $course_id ); ?>"/>
172 <input type="hidden" name="review_id" value="<?php echo esc_attr( $my_rating ? $my_rating->comment_ID : '' ); ?>"/>
173 <input type="hidden" name="action" value="tutor_place_rating"/>
174 <div class="tutor-form-group">
175 <div class="tutor-ratings tutor-ratings-lg tutor-ratings-selectable" tutor-ratings-selectable>
176 <?php
177 tutor_utils()->star_rating_generator( tutor_utils()->get_rating_value( $my_rating ? $my_rating->rating : 0 ) );
178 ?>
179 </div>
180 </div>
181 <div class="tutor-form-group">
182 <textarea name="review" placeholder="<?php esc_html_e( 'write a review', 'tutor' ); ?>"><?php echo stripslashes( $my_rating ? $my_rating->comment_content : '' ); //phpcs:ignore ?></textarea>
183 </div>
184 <div class="tutor-form-group">
185 <button type="submit" class="tutor_submit_review_btn tutor-btn tutor-btn-primary">
186 <?php esc_html_e( 'Submit Review', 'tutor' ); ?>
187 </button>
188 </div>
189 </div>
190 </form>
191 </div>
192 </div>
193 <?php endif; ?>
194
195 <?php do_action( 'tutor_course/single/enrolled/after/reviews' ); ?>
196