File "review-rating.php"

Full Path: /home/peaktdwu/aaronacebhutan.com/wp-content/themes/astrip/template-parts/tour/review-rating.php
File size: 14.95 KB
MIME-type: text/plain
Charset: utf-8

<div class="tour-review-area">
    <!-- review-progress-box -->
    <div class="review-progress-box">
        <div class="row g-4 align-items-center">
            <div class="col-md-7">
                <?php 
                $reivew_based_on_criteria = [];
                if( count((array) $review_rating_criteria ) > 0 ) : ?>
                    <?php 
                        $total_rating = 0;
                        $flag = false;
                    ?>
                    <?php foreach( (array) $review_rating_criteria as $criteria ) : ?>
                        <?php
                            if( isset( $criteria['criteria_item'] ) ) {
                                $args = array(
                                    'post_type'         => 'review-rating',
                                    'posts_per_page'    => -1,
                                    'meta_query' => array(
                                        'relation'      => 'AND',
                                        array(
                                            'key'       => 'tour_astrip_review_rating',
                                            'value'     => $criteria['criteria_item'],
                                            'compare'   => 'LIKE' 
                                        ),
                                        array(
                                            'key'       => 'tour_astrip_review_rating',
                                            'value'     => $tour_title,
                                            'compare'   => 'LIKE' 
                                        ),
                                        array(
                                            'key'       => 'tour_astrip_review_rating',
                                            'value'     => esc_html('approve'),
                                            'compare'   => 'LIKE' 
                                        ),
    
                                    )
                                );
                                $total_rating_based_on_criteria = 0;
                                $reivew_based_on_criteria = get_posts( $args );
                                $all_rating_in_single_criteria = count( $reivew_based_on_criteria );
                                if( count( $reivew_based_on_criteria ) > 0 ) {
                                    foreach( $reivew_based_on_criteria as $rating ) {
                                        $rating_meta_value = Egns_Helpers::egns_post_meta_box_value_by_id( $rating->ID,'tour_astrip_review_rating','review_rating' );
        
                                        $filtered = array_filter($rating_meta_value, function($item) use ( $criteria ) {
                                            return $item["reivew_criteria"] == $criteria['criteria_item'];
                                        });
                                        $total = array_reduce(
                                            $filtered,
                                            function ($prev, $item) {
                                                return $prev +  $item['reivew_criteria_rating'];
                                            }
                                        );
                                        $total_rating_based_on_criteria += $total;
        
                                    }
                                    $max_rating = count( $reivew_based_on_criteria ) * 5;
                                    $calculate_percent = round( ( $total_rating_based_on_criteria / $max_rating ) * 100 );
                                    $total_rating += $total_rating_based_on_criteria;
                                }else{
                                    $flag = true;
                                }
                            }
                        ?>
                        <?php if( isset( $criteria['criteria_item'] ) && isset( $calculate_percent ) ) : ?>
                            <div class="progress-singl">
                                <span><?php echo esc_html( $criteria['criteria_item'] ) ?></span>
                                <i class="progress-bar" style="--progress: <?php echo esc_html( $calculate_percent ). '%' ?>"><?php echo esc_html( $calculate_percent ) .'%' ?></i>
                            </div>
                        <?php endif ?>
                        
                    <?php endforeach ?>
                    <?php
                        if( $flag == true ) {
                            echo wp_kses_post('<h3>Rating not Found</h3>');
                        }
                    ?>
                <?php endif ?>
            </div>
            <?php if( count( $reivew_based_on_criteria ) > 0 ) : ?>
            <div class="col-md-5">
                <div class="tour-review-number">
                    <?php 
                        $avg_rating_point = round( ( $total_rating / ( count( $reivew_based_on_criteria ) * count( $review_rating_criteria ) * 5 ) ) * 100 );
                        $rating_status = Egns_Helpers::egns_get_avg_rating_status_by_tour_id( $avg_rating_point );
                    ?>
                    <span>
                        <?php echo number_format($avg_rating_point/10, 2); ?>
                    </span>
                    <h2><?php echo sprintf( esc_html__('%s','astrip'),$rating_status  ); ?></h2>
                </div>
            </div>
            <?php endif ?>
        </div>
    </div>

    <!-- review-comment-area -->
    <div class="review-commetn-area">
        <ul class="review-comment-list">
            <?php
                
                $all_rating = Egns_Helpers::egns_get_all_rating_by_tour_id( $tour_title );
            ?>
            <?php foreach( (array)$all_rating as $rating )  :  ?>
                <li>
                    <div class="comment-item">
                        <div class="image">
                            <?php
                                $image = '';
                                if( !empty( get_current_user_id() ) ) {
                                    $get_avatar_url = get_user_meta(get_current_user_id(), 'image', $attachment_id);
                                    if( isset( $get_avatar_url[0] ) ) {
                                        $image = wp_get_attachment_image($get_avatar_url[0], 'thumbnail');
                                    }
                                }
                            ?>
                            <?php echo wp_kses_post( $image ) ?>
                        </div>
                        <div class="content">
                            <div class="comment-meta">
                                <h5> <?php echo Egns_Helpers::egns_post_meta_box_value_by_id( $rating->ID,'tour_astrip_review_rating','customer_name') ?>-</h5><span><?php echo esc_html( $rating->post_date ) ?? '' ?></span>
                            </div>
                            <h3 class="comment-title"><?php echo Egns_Helpers::egns_post_meta_box_value_by_id( $rating->ID,'tour_astrip_review_rating','review_title') ?></h3>
                            <p><?php echo Egns_Helpers::egns_post_meta_box_value_by_id( $rating->ID,'tour_astrip_review_rating','review_message') ?></p>
                            <?php 
                                $rating_meta = Egns_Helpers::egns_post_meta_box_value_by_id( $rating->ID,'tour_astrip_review_rating','review_rating' );
                            ?>
                            
                            <ul class="review-item-list">
                                <?php foreach( $rating_meta as $rating_nested ) : ?>
                                <li>
                                    <span><?php echo esc_html( $rating_nested['reivew_criteria'] ) ?></span>
                                    <ul class="star-list">
                                        <?php 
                                            for ($x = 1; $x <= 5; $x++) {
                                                if( $rating_nested['reivew_criteria_rating'] >= $x ) {
                                                    echo wp_kses_post( '<li><i class="bi bi-star-fill"></i></li>' );
                                                }else{
                                                    echo wp_kses_post( '<li><i class="bi bi-star"></i></li>' );
                                                }
                                            }
                                        
                                        ?>
                                    </ul>
                                </li>
                                <?php endforeach ?>
                            </ul>
                        </div>
                    </div>
                </li>
            <?php endforeach ?>
            <?php wp_reset_postdata() ?>
        </ul>
    </div>

    <!-- review-comment-form -->
    <?php
        $current_user = wp_get_current_user();
        $url  = get_permalink();
    ?>
    <div class="review-form-area">
        <h3 class="tour-details-subtitle"><?php echo esc_html__('Write a review:','astrip') ?></h3>
        <div class="contact-from-wrapper">
            <form action="<?php echo esc_url( $url ) ?>" method="post" id="review_rating" name="review_rating">
                <input type="hidden" value="1" name="customer_id">
                <div class="row">
                    <div class="col-lg-6">
                        <div class="form-inner">
                            <input type="text" name="customer_name" value="<?php echo esc_html( $current_user->display_name ) ?>" placeholder="<?php echo esc_attr__( 'Your Name:','astrip' ) ?>">
                        </div>
                    </div>
                    <div class="col-lg-6">
                        <div class="form-inner">
                            <input type="text" name="customer_email" value="<?php echo esc_html( $current_user->user_email ) ?>" placeholder="<?php echo esc_attr__('Your Email Address:','astrip') ?>">
                        </div>
                    </div>
                    <div class="col-lg-12">
                        <div class="form-inner">
                            <input type="text" name="review_title" placeholder="<?php echo esc_attr__('Reivew Title:','astrip') ?>">
                        </div>
                    </div>
                    <div class="col-lg-12">
                        <div class="form-inner">
                            <textarea name="review_message" rows="5" placeholder="<?php echo esc_attr__('Review Message','astrip') ?>"></textarea>
                        </div>
                    </div>
                    <div class="col-lg-12">
                        <div class="star-rating-wrapper">
                            <!-- <ul class="star-rating-list">
                            </ul> -->
                            <ul class="review-item-list">
                                <?php foreach( (array) $review_rating_criteria as $key => $criteria ) : ?>
                                    <?php if( isset( $criteria['criteria_item'] ) ) : ?>
                                        <li>
                                            <span><?php echo esc_html( $criteria['criteria_item'] ) ?></span>
                                            <ul class="star-list">
                                                <fieldset class="rating">
                                                    <input type="radio" class="rating_last" id="<?php echo esc_attr( strtolower( trim( preg_replace('/[^A-Za-z0-9-]+/', '_',  $criteria['criteria_item']) ).'rating' ) ) ?>star5" name="<?php echo esc_attr( strtolower( trim( preg_replace('/[^A-Za-z0-9-]+/', '_',  $criteria['criteria_item']) ).'rating' ) ) ?>" value="5" />
                                                    <label for="<?php echo esc_attr( strtolower( trim( preg_replace('/[^A-Za-z0-9-]+/', '_',  $criteria['criteria_item']) ).'rating' ) ) ?>star5" title="5 stars"></label>
                                                    <input type="radio" id="<?php echo esc_attr( strtolower( trim( preg_replace('/[^A-Za-z0-9-]+/', '_',  $criteria['criteria_item']) ).'rating' ) ) ?>star4" name="<?php echo esc_attr( strtolower( trim( preg_replace('/[^A-Za-z0-9-]+/', '_',  $criteria['criteria_item']) ).'rating' ) ) ?>" value="4" />
                                                    <label for="<?php echo esc_attr( strtolower( trim( preg_replace('/[^A-Za-z0-9-]+/', '_',  $criteria['criteria_item']) ).'rating' ) ) ?>star4" title="4 stars"></label>
                                                    <input type="radio" id="<?php echo esc_attr( strtolower( trim( preg_replace('/[^A-Za-z0-9-]+/', '_',  $criteria['criteria_item']) ).'rating' ) ) ?>star3" name="<?php echo esc_attr( strtolower( trim( preg_replace('/[^A-Za-z0-9-]+/', '_',  $criteria['criteria_item']) ).'rating' ) ) ?>" value="3"/>
                                                    <label for="<?php echo esc_attr( strtolower( trim( preg_replace('/[^A-Za-z0-9-]+/', '_',  $criteria['criteria_item']) ).'rating' ) ) ?>star3" title="3 stars"></label>
                                                    <input type="radio" id="<?php echo esc_attr( strtolower( trim( preg_replace('/[^A-Za-z0-9-]+/', '_',  $criteria['criteria_item']) ).'rating' ) ) ?>star2" name="<?php echo esc_attr( strtolower( trim( preg_replace('/[^A-Za-z0-9-]+/', '_',  $criteria['criteria_item']) ).'rating' ) ) ?>" value="2" />
                                                    <label for="<?php echo esc_attr( strtolower( trim( preg_replace('/[^A-Za-z0-9-]+/', '_',  $criteria['criteria_item']) ).'rating' ) ) ?>star2" title="2 stars"></label>
                                                    <input type="radio" id="<?php echo esc_attr( strtolower( trim( preg_replace('/[^A-Za-z0-9-]+/', '_',  $criteria['criteria_item']) ).'rating' ) ) ?>star1" name="<?php echo esc_attr( strtolower( trim( preg_replace('/[^A-Za-z0-9-]+/', '_',  $criteria['criteria_item']) ).'rating' ) ) ?>rating" value="1" />
                                                    <label for="<?php echo esc_attr( strtolower( trim( preg_replace('/[^A-Za-z0-9-]+/', '_',  $criteria['criteria_item']) ).'rating' ) ) ?>star1" title="1 star"></label>
                                                </fieldset>
                                            </ul>
                                        </li>
                                    <?php endif ?>
                                <?php endforeach ?>
                            </ul>
                        </div>
                    </div>
                    <div class="col-lg-12">
                        <span class="rating_all_fields_error d-none text-start text-danger"><?php echo esc_html('Please fill up all the Fields') ?></span>
                    </div>
                    <div class="col-lg-12">
                        <?php wp_nonce_field( 'rating_nonce', 'custom_rating_nonce' ); ?>
                        <button type="submit" id="ratingFormSubmit" value="ratingFormSubmit" class="eg-btn btn--primary btn--lg submit-btn"><?php echo esc_html__('Submit Now','astrip') ?></button>
                    </div>
                </div>
            </form>
        </div>
    </div>

</div>