2012-08-14 18:05:45 +00:00
< ? php
/**
2015-11-03 13:53:50 +00:00
* Display single product reviews ( comments )
2012-08-14 18:05:45 +00:00
*
2015-11-03 13:31:20 +00:00
* This template can be overridden by copying it to yourtheme / woocommerce / single - product - reviews . php .
*
2016-02-12 11:28:41 +00:00
* 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 .
2015-10-01 14:07:20 +00:00
*
2018-11-14 19:20:19 +00:00
* @ see https :// docs . woocommerce . com / document / template - structure /
* @ package WooCommerce / Templates
2019-01-22 13:18:15 +00:00
* @ version 3.6 . 0
2012-08-14 18:05:45 +00:00
*/
2018-11-14 19:20:19 +00:00
2019-04-23 16:04:11 +00:00
defined ( 'ABSPATH' ) || exit ;
2012-10-15 10:57:58 +00:00
2016-07-09 02:57:45 +00:00
global $product ;
2014-09-22 16:31:03 +00:00
if ( ! comments_open () ) {
2013-10-31 17:37:36 +00:00
return ;
2014-09-22 16:31:03 +00:00
}
2012-08-14 18:05:45 +00:00
?>
2016-04-05 20:41:13 +00:00
< div id = " reviews " class = " woocommerce-Reviews " >
2013-10-31 17:37:36 +00:00
< div id = " comments " >
2018-11-14 19:20:19 +00:00
< h2 class = " woocommerce-Reviews-title " >
2018-12-13 18:14:01 +00:00
< ? php
$count = $product -> get_review_count ();
2019-01-17 06:04:57 +00:00
if ( $count && wc_review_ratings_enabled () ) {
2018-12-13 18:14:01 +00:00
/* translators: 1: reviews count 2: product name */
$reviews_title = sprintf ( esc_html ( _n ( '%1$s review for %2$s' , '%1$s reviews for %2$s' , $count , 'woocommerce' ) ), 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' , 'woocommerce' );
}
?>
2018-11-14 19:20:19 +00:00
</ h2 >
2018-12-13 18:14:01 +00:00
< ? 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.' , 'woocommerce' ); ?> </p>
< ? php endif ; ?>
2013-10-31 17:37:36 +00:00
</ div >
2018-12-13 18:14:01 +00:00
< ? 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
2019-03-25 11:37:01 +00:00
$commenter = wp_get_current_commenter ();
2018-12-13 18:14:01 +00:00
$comment_form = array (
/* translators: %s is product title */
2019-04-23 15:15:05 +00:00
'title_reply' => have_comments () ? esc_html__ ( 'Add a review' , 'woocommerce' ) : sprintf ( esc_html__ ( 'Be the first to review “%s”' , 'woocommerce' ), get_the_title () ),
2018-12-13 18:14:01 +00:00
/* translators: %s is product title */
2019-04-23 15:15:05 +00:00
'title_reply_to' => esc_html__ ( 'Leave a Reply to %s' , 'woocommerce' ),
2018-12-13 18:14:01 +00:00
'title_reply_before' => '<span id="reply-title" class="comment-reply-title">' ,
'title_reply_after' => '</span>' ,
'comment_notes_after' => '' ,
2019-04-23 15:15:05 +00:00
'label_submit' => esc_html__ ( 'Submit' , 'woocommerce' ),
2018-12-13 18:14:01 +00:00
'logged_in_as' => '' ,
'comment_field' => '' ,
);
2019-03-25 11:37:01 +00:00
$name_email_required = ( bool ) get_option ( 'require_name_email' , 1 );
$fields = array (
'author' => array (
'label' => __ ( 'Name' , 'woocommerce' ),
'type' => 'text' ,
'value' => $commenter [ 'comment_author' ],
'required' => $name_email_required ,
),
2019-12-20 16:51:26 +00:00
'email' => array (
2019-03-25 11:37:01 +00:00
'label' => __ ( 'Email' , 'woocommerce' ),
'type' => 'email' ,
'value' => $commenter [ 'comment_author_email' ],
'required' => $name_email_required ,
),
);
$comment_form [ 'fields' ] = array ();
foreach ( $fields as $key => $field ) {
$field_html = '<p class="comment-form-' . esc_attr ( $key ) . '">' ;
2019-05-28 03:03:08 +00:00
$field_html .= '<label for="' . esc_attr ( $key ) . '">' . esc_html ( $field [ 'label' ] );
2019-03-25 11:37:01 +00:00
if ( $field [ 'required' ] ) {
$field_html .= ' <span class="required">*</span>' ;
}
$field_html .= '</label><input id="' . esc_attr ( $key ) . '" name="' . esc_attr ( $key ) . '" type="' . esc_attr ( $field [ 'type' ] ) . '" value="' . esc_attr ( $field [ 'value' ] ) . '" size="30" ' . ( $field [ 'required' ] ? 'required' : '' ) . ' /></p>' ;
$comment_form [ 'fields' ][ $key ] = $field_html ;
}
2018-12-13 18:14:01 +00:00
$account_page_url = wc_get_page_permalink ( 'myaccount' );
if ( $account_page_url ) {
/* translators: %s opening and closing link tags respectively */
2019-04-23 08:51:04 +00:00
$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.' , 'woocommerce' ), '<a href="' . esc_url ( $account_page_url ) . '">' , '</a>' ) . '</p>' ;
2018-12-13 18:14:01 +00:00
}
2019-01-17 06:04:57 +00:00
if ( wc_review_ratings_enabled () ) {
2018-12-13 18:14:01 +00:00
$comment_form [ 'comment_field' ] = '<div class="comment-form-rating"><label for="rating">' . esc_html__ ( 'Your rating' , 'woocommerce' ) . ' </ label >< select name = " rating " id = " rating " required >
< option value = " " > ' . esc_html__( ' Rate & hellip ; ', ' woocommerce ' ) . ' </ option >
< option value = " 5 " > ' . esc_html__( ' Perfect ', ' woocommerce ' ) . ' </ option >
< option value = " 4 " > ' . esc_html__( ' Good ', ' woocommerce ' ) . ' </ option >
< option value = " 3 " > ' . esc_html__( ' Average ', ' woocommerce ' ) . ' </ option >
< option value = " 2 " > ' . esc_html__( ' Not that bad ', ' woocommerce ' ) . ' </ option >
< option value = " 1 " > ' . esc_html__( ' Very poor ', ' woocommerce ' ) . ' </ option >
</ select ></ div > ' ;
}
$comment_form [ 'comment_field' ] .= '<p class="comment-form-comment"><label for="comment">' . esc_html__ ( 'Your review' , 'woocommerce' ) . ' <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 >
2013-10-31 17:37:36 +00:00
</ div >
2018-12-13 18:14:01 +00:00
< ? php else : ?>
< p class = " woocommerce-verification-required " >< ? php esc_html_e ( 'Only logged in customers who have purchased this product may leave a review.' , 'woocommerce' ); ?> </p>
< ? php endif ; ?>
2012-08-14 18:05:45 +00:00
2013-10-31 17:37:36 +00:00
< div class = " clear " ></ div >
2014-09-22 16:31:03 +00:00
</ div >