-
Notifications
You must be signed in to change notification settings - Fork 0
/
single-product-reviews.php
executable file
·136 lines (123 loc) · 6.28 KB
/
single-product-reviews.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<?php
/**
* Display single product reviews (comments)
*
* This template can be overridden by copying it to yourtheme/woocommerce/single-product-reviews.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce/Templates
* @version 3.6.0
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
global $product;
if ( ! comments_open() ) {
return;
}
?>
<div id="reviews" class="woocommerce-Reviews">
<div id="comments">
<div class="block-comment-header">
<h2 class="woocommerce-Reviews-title">
<?php
$count = $product->get_review_count();
if ( $count && wc_review_ratings_enabled() ) {
/* translators: 1: reviews count 2: product name */
$reviews_title = sprintf( esc_html( _n( '%1$s review', '%1$s reviews', $count, 'storefront' ) ), esc_html( $count ), '<span>' . get_the_title() . '</span>' );
echo apply_filters( 'woocommerce_reviews_title', $reviews_title, $count, $product ); // WPCS: XSS ok.
} else {
esc_html_e( 'Reviews', 'storefront' );
}
?>
</h2>
<div class="block-view-all">
<?= esc_html__('View all', 'storefront') ?>
</div>
<div class="block-write-comment">
<i class="fas fa-edit"></i>
<a href="javascript:void(0)" class="js-block-write-comment">
<?= esc_html__('Write a review', 'storefront') ?>
</a>
</div>
</div>
<?php if ( have_comments() ) : ?>
<ol class="commentlist">
<?php wp_list_comments( apply_filters( 'woocommerce_product_review_list_args', array( 'callback' => 'woocommerce_comments' ) ) ); ?>
</ol>
<?php
if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) :
echo '<nav class="woocommerce-pagination">';
paginate_comments_links(
apply_filters(
'woocommerce_comment_pagination_args',
array(
'prev_text' => '←',
'next_text' => '→',
'type' => 'list',
)
)
);
echo '</nav>';
endif;
?>
<?php else : ?>
<p class="woocommerce-noreviews"><?php esc_html_e( 'There are no reviews yet.', 'storefront' ); ?></p>
<?php endif; ?>
</div>
<?php if ( get_option( 'woocommerce_review_rating_verification_required' ) === 'no' || wc_customer_bought_product( '', get_current_user_id(), $product->get_id() ) ) : ?>
<div id="review_form_wrapper">
<div id="review_form">
<?php
$commenter = wp_get_current_commenter();
$comment_form = array(
/* translators: %s is product title */
'title_reply' => have_comments() ? __( 'Add a review', 'storefront' ) : sprintf( __( 'Be the first to review “%s”', 'storefront' ), get_the_title() ),
/* translators: %s is product title */
'title_reply_to' => __( 'Leave a Reply to %s', 'storefront' ),
'title_reply_before' => '<span id="reply-title" class="comment-reply-title">',
'title_reply_after' => '</span>',
'comment_notes_after' => '',
'fields' => array(
'author' => '<p class="comment-form-author"><label for="author">' . esc_html__( 'Name', 'storefront' ) . ' <span class="required">*</span></label> ' .
'<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30" required /></p>',
'email' => '<p class="comment-form-email"><label for="email">' . esc_html__( 'Email', 'storefront' ) . ' <span class="required">*</span></label> ' .
'<input id="email" name="email" type="email" value="' . esc_attr( $commenter['comment_author_email'] ) . '" size="30" required /></p>',
),
'label_submit' => __( 'Submit', 'storefront' ),
'logged_in_as' => '',
'comment_field' => '',
'title_field' => ''
);
$account_page_url = wc_get_page_permalink( 'myaccount' );
if ( $account_page_url ) {
/* translators: %s opening and closing link tags respectively */
$comment_form['must_log_in'] = '<p class="must-log-in">' . sprintf( esc_html__( 'You must be %1$slogged in%2$s to post a review.', 'storefront' ), '<a href="' . esc_url( $account_page_url ) . '">', '</a>' ) . '</p>';
}
if ( wc_review_ratings_enabled() ) {
$comment_form['comment_field'] = '<div class="comment-form-rating"><label for="rating">' . esc_html__( 'Your rating', 'storefront' ) . '</label><select name="rating" id="rating" required>
<option value="">' . esc_html__( 'Rate…', 'storefront' ) . '</option>
<option value="5">' . esc_html__( 'Perfect', 'storefront' ) . '</option>
<option value="4">' . esc_html__( 'Good', 'storefront' ) . '</option>
<option value="3">' . esc_html__( 'Average', 'storefront' ) . '</option>
<option value="2">' . esc_html__( 'Not that bad', 'storefront' ) . '</option>
<option value="1">' . esc_html__( 'Very poor', 'storefront' ) . '</option>
</select></div>';
}
$comment_form['comment_field'] .= '<p class="comment-form-title"><label for="title">' . esc_html__( 'Your title', 'storefront' ) . ' <span class="required">*</span></label><input type="text" name="title" id="title"/></p>';
$comment_form['comment_field'] .= '<p class="comment-form-comment"><label for="comment">' . esc_html__( 'Your review', 'storefront' ) . ' <span class="required">*</span></label><textarea id="comment" name="comment" cols="45" rows="8" required></textarea></p>';
comment_form( apply_filters( 'woocommerce_product_review_comment_form_args', $comment_form ) );
?>
</div>
</div>
<?php else : ?>
<p class="woocommerce-verification-required"><?php esc_html_e( 'Only logged in customers who have purchased this product may leave a review.', 'storefront' ); ?></p>
<?php endif; ?>
<div class="clear"></div>
</div>