<?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://woocommerce.com/document/template-structure/
 * @package WooCommerce\Templates
 * @version 9.7.0
 */

defined( 'ABSPATH' ) || exit;

global $product;

if ( ! comments_open() ) {
	return;
}

if ( dina_opt( 'product_comments_ajax_load' ) ) { 
?>
	<div id="reviews" class="woocommerce-Reviews">
		<div id="comments">
			<span class="woocommerce-Reviews-title">
				<?php esc_html_e( 'Reviews', 'dina-kala' ); ?>
			</span>

			<?php if ( have_comments() ) : ?>
				<ol class="commentlist" id="dina-comment-list">
					<?php
					$raw_value = dina_opt( 'product_comments_per_page' );
					$comments_per_page = ( is_numeric( $raw_value ) && (int) $raw_value > 0 ) ? (int) $raw_value : 6;

					$total_parent_comments = get_comments( array(
						'post_id' => get_the_ID(),
						'status'  => 'approve',
						'parent'  => 0,
						'count'   => true,
					) );

					if ( get_option( 'comment_order' ) === 'desc' ) {
						$page = ceil( $total_parent_comments / $comments_per_page );
					} else {
						$page = 1;
					}

					wp_list_comments( apply_filters( 'woocommerce_product_review_list_args', array(
						'callback'    => 'woocommerce_comments',
						'per_page'    => $comments_per_page,
						'page'        => $page,
						'avatar_size' => 50,
						'style'       => 'ol',
						'short_ping'  => true,
						'reply_text'  => __( 'Reply', 'dina-kala' ),
					) ) );
					?>
				</ol>

				<?php if ( $total_parent_comments > $comments_per_page ) : ?>
					<div class="dina-load-more-comments-wrapper">
						<button id="dina-load-more-comments"
							class="dina-load-more-comments btn btn-outline-dina"
							data-page="2"
							data-post="<?php echo esc_attr( get_the_ID() ); ?>"
							data-perpage="<?php echo esc_attr( $comments_per_page ); ?>"
							data-total="<?php echo esc_attr( $total_parent_comments ); ?>">
							<i class="fal fa-comments"></i>
							<?php esc_html_e( 'Load More Reviews', 'dina-kala' ); ?>
						</button>
					</div>
				<?php endif; ?>

			<?php else : ?>
				<p class="woocommerce-noreviews"><?php esc_html_e( 'There are no reviews yet.', 'dina-kala' ); ?></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'         => esc_html__( 'Add a review', 'dina-kala' ),
						/* translators: %s is product title */
						'title_reply_to'      => esc_html__( 'Leave a Reply to %s', 'dina-kala' ),
						'title_reply_before'  => '<span id="reply-title" class="comment-reply-title" role="heading" aria-level="3">',
						'title_reply_after'   => '</span>',
						'comment_notes_after' => '',
						'label_submit'        => esc_html__( 'Submit', 'dina-kala' ),
						'logged_in_as'        => '',
						'comment_field'       => '',
					);

					$name_email_required = (bool) get_option( 'require_name_email', 1 );
					$fields              = array(
						'author' => array(
							'label'        => __( 'Name', 'dina-kala' ),
							'type'         => 'text',
							'value'        => $commenter['comment_author'],
							'required'     => $name_email_required,
							'autocomplete' => 'name',
						),
						'email'  => array(
							'label'        => __( 'Email', 'dina-kala' ),
							'type'         => 'email',
							'value'        => $commenter['comment_author_email'],
							'required'     => $name_email_required,
							'autocomplete' => 'email',
						),
					);

					$comment_form['fields'] = array();

					foreach ( $fields as $key => $field ) {
						$field_html  = '<p class="comment-form-' . esc_attr( $key ) . '">';
						$field_html .= '<label for="' . esc_attr( $key ) . '">' . esc_html( $field['label'] );

						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'] ) . '" autocomplete="' . esc_attr( $field['autocomplete'] ) . '" value="' . esc_attr( $field['value'] ) . '" size="30" ' . ( $field['required'] ? 'required' : '' ) . ' /></p>';

						$comment_form['fields'][ $key ] = $field_html;
					}

					$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.', 'dina-kala' ), '<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" id="comment-form-rating-label">' . esc_html__( 'Your rating', 'dina-kala' ) . ( wc_review_ratings_required() ? ' <span class="required">*</span>' : '' ) . '</label><select name="rating" id="rating" required>
							<option value="">' . esc_html__( 'Rate&hellip;', 'dina-kala' ) . '</option>
							<option value="5">' . esc_html__( 'Perfect', 'dina-kala' ) . '</option>
							<option value="4">' . esc_html__( 'Good', 'dina-kala' ) . '</option>
							<option value="3">' . esc_html__( 'Average', 'dina-kala' ) . '</option>
							<option value="2">' . esc_html__( 'Not that bad', 'dina-kala' ) . '</option>
							<option value="1">' . esc_html__( 'Very poor', 'dina-kala' ) . '</option>
						</select></div>';
					}

					$comment_form['comment_field'] .= '<p class="comment-form-comment"><label for="comment">' . esc_html__( 'Your review', 'dina-kala' ) . ' <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.', 'dina-kala' ); ?></p>
		<?php endif; ?>

		<div class="clear"></div>
	</div>
<?php } else { ?>
	<div id="reviews" class="woocommerce-Reviews">
		<div id="comments">
			<span class="woocommerce-Reviews-title">
				<?php
				esc_html_e( 'Reviews', 'dina-kala' );
				?>
			</span>

			<?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' => is_rtl() ? '&rarr;' : '&larr;',
								'next_text' => is_rtl() ? '&larr;' : '&rarr;',
								'type'      => 'list',
							)
						)
					);
					echo '</nav>';
				endif;
				?>
			<?php else : ?>
				<p class="woocommerce-noreviews"><?php esc_html_e( 'There are no reviews yet.', 'dina-kala' ); ?></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'         => esc_html__( 'Add a review', 'dina-kala' ),
						/* translators: %s is product title */
						'title_reply_to'      => esc_html__( 'Leave a Reply to %s', 'dina-kala' ),
						'title_reply_before'  => '<span id="reply-title" class="comment-reply-title" role="heading" aria-level="3">',
						'title_reply_after'   => '</span>',
						'comment_notes_after' => '',
						'label_submit'        => esc_html__( 'Submit', 'dina-kala' ),
						'logged_in_as'        => '',
						'comment_field'       => '',
					);

					$name_email_required = (bool) get_option( 'require_name_email', 1 );
					$fields              = array(
						'author' => array(
							'label'        => __( 'Name', 'dina-kala' ),
							'type'         => 'text',
							'value'        => $commenter['comment_author'],
							'required'     => $name_email_required,
							'autocomplete' => 'name',
						),
						'email'  => array(
							'label'        => __( 'Email', 'dina-kala' ),
							'type'         => 'email',
							'value'        => $commenter['comment_author_email'],
							'required'     => $name_email_required,
							'autocomplete' => 'email',
						),
					);

					$comment_form['fields'] = array();

					foreach ( $fields as $key => $field ) {
						$field_html  = '<p class="comment-form-' . esc_attr( $key ) . '">';
						$field_html .= '<label for="' . esc_attr( $key ) . '">' . esc_html( $field['label'] );

						if ( $field['required'] ) {
							$field_html .= '&nbsp;<span class="required">*</span>';
						}

						$field_html .= '</label><input id="' . esc_attr( $key ) . '" name="' . esc_attr( $key ) . '" type="' . esc_attr( $field['type'] ) . '" autocomplete="' . esc_attr( $field['autocomplete'] ) . '" value="' . esc_attr( $field['value'] ) . '" size="30" ' . ( $field['required'] ? 'required' : '' ) . ' /></p>';

						$comment_form['fields'][ $key ] = $field_html;
					}

					$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.', 'dina-kala' ), '<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" id="comment-form-rating-label">' . esc_html__( 'Your rating', 'dina-kala' ) . ( wc_review_ratings_required() ? '&nbsp;<span class="required">*</span>' : '' ) . '</label><select name="rating" id="rating" required>
							<option value="">' . esc_html__( 'Rate&hellip;', 'dina-kala' ) . '</option>
							<option value="5">' . esc_html__( 'Perfect', 'dina-kala' ) . '</option>
							<option value="4">' . esc_html__( 'Good', 'dina-kala' ) . '</option>
							<option value="3">' . esc_html__( 'Average', 'dina-kala' ) . '</option>
							<option value="2">' . esc_html__( 'Not that bad', 'dina-kala' ) . '</option>
							<option value="1">' . esc_html__( 'Very poor', 'dina-kala' ) . '</option>
						</select></div>';
					}

					$comment_form['comment_field'] .= '<p class="comment-form-comment"><label for="comment">' . esc_html__( 'Your review', 'dina-kala' ) . '&nbsp;<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.', 'dina-kala' ); ?></p>
		<?php endif; ?>

		<div class="clear"></div>
	</div>
<?php } ?>