Viewing File: /home/maglabs/riadlooma2/wp-content/themes/homey/framework/functions/review.php
<?php
add_action( 'wp_ajax_nopriv_homey_add_review', 'homey_add_review' );
add_action( 'wp_ajax_homey_add_review', 'homey_add_review' );
if( !function_exists('homey_add_review') ) {
function homey_add_review() {
global $current_user;
$current_user = wp_get_current_user();
$userID = $current_user->ID;
$local = homey_get_localization();
$allowded_html = array();
$review_reservation_id = intval($_POST['review_reservation_id']);
$rating = intval($_POST['rating']);
$review_content = $_POST['review_content'];
$review_action = $_POST['review_action'];
if(empty($review_reservation_id)) {
echo json_encode(
array(
'success' => false,
'message' => $local['something_went_wrong']
)
);
wp_die();
}
$review_owner_id = $userID;
$review_listing_id = get_post_meta($review_reservation_id, 'reservation_listing_id', true);
$review_listing_owner_id = get_post_meta($review_reservation_id, 'listing_owner', true);
$update_review_id = get_post_meta($review_reservation_id, 'review_id', true);
$title = esc_html__('Review', 'homey');
//check security
$nonce = $_REQUEST['security'];
if ( ! wp_verify_nonce( $nonce, 'review-security-nonce' ) ) {
echo json_encode(
array(
'success' => false,
'message' => $local['security_check_text']
)
);
wp_die();
}
if(empty($review_content)) {
echo json_encode(
array(
'success' => false,
'message' => $local['review_content_required']
)
);
wp_die();
}
if( $review_action == 'add_review' ) {
$review = array(
'post_title' => $title,
'post_status' => 'publish',
'post_type' => 'homey_review',
'post_author' => $userID
);
$review_id = wp_insert_post($review);
$review_update = array(
'ID' => $review_id,
'post_title' => $title.' '.$review_id,
'post_content' => $review_content,
);
wp_update_post( $review_update );
} else if( $review_action == 'update_review' ) {
$update_review['ID'] = intval( $update_review_id );
$update_review['post_content'] = $review_content;
$review_id = wp_update_post( $update_review );
}
update_post_meta($review_id, 'reservation_listing_id', $review_listing_id);
update_post_meta($review_id, 'listing_owner_id', $review_listing_owner_id);
update_post_meta($review_id, 'reviewer_id', $review_owner_id);
update_post_meta($review_reservation_id, 'review_id', $review_id);
update_post_meta($review_id, 'review_reservation_id', $review_reservation_id);
update_post_meta($review_id, 'homey_rating', $rating);
//if user is not listing owner then ratting should be added - zk
if($userID != $review_listing_owner_id ){
homey_add_listing_rating($review_listing_id);
}
//if user is not listing owner then ratting should be added - zk
homey_send_review_email($review_listing_id, $review_id, $rating, $review_content, $review_listing_owner_id, $review_reservation_id);
echo json_encode(
array(
'success' => true,
'message' => ''
)
);
wp_die();
}
}
add_action( 'wp_ajax_nopriv_homey_add_guest_review', 'homey_add_guest_review' );
add_action( 'wp_ajax_homey_add_guest_review', 'homey_add_guest_review' );
if( !function_exists('homey_add_guest_review') ) {
function homey_add_guest_review() {
global $current_user;
$current_user = wp_get_current_user();
$userID = $current_user->ID;
$local = homey_get_localization();
$allowded_html = array();
$review_guest_reservation_id = intval($_POST['review_guest_reservation_id']);
$rating = intval($_POST['rating']);
$review_content = $_POST['review_content'];
$review_action = $_POST['review_action'];
if(empty($review_guest_reservation_id)) {
echo json_encode(
array(
'success' => false,
'message' => $local['something_went_wrong']
)
);
wp_die();
}
$review_owner_id = $userID;
$review_listing_id = get_post_meta($review_guest_reservation_id, 'reservation_listing_id_for_guest', true);
$review_guest_id = get_post_meta($review_guest_reservation_id, 'listing_renter', true);
$update_review_id = get_post_meta($review_guest_reservation_id, 'guest_review_id', true);
$title = esc_html__('Review', 'homey');
//check security
$nonce = $_REQUEST['security'];
if ( ! wp_verify_nonce( $nonce, 'review-security-nonce' ) ) {
echo json_encode(
array(
'success' => false,
'message' => $local['security_check_text']
)
);
wp_die();
}
if(empty($review_content)) {
echo json_encode(
array(
'success' => false,
'message' => $local['review_content_required']
)
);
wp_die();
}
if( $review_action == 'add_guest_review' ) {
$review = array(
'post_title' => $title,
'post_status' => 'publish',
'post_type' => 'homey_review',
'post_author' => $userID
);
$review_id = wp_insert_post($review);
$review_update = array(
'ID' => $review_id,
'post_title' => $title.' '.$review_id,
'post_content' => $review_content,
);
wp_update_post( $review_update );
} else if( $review_action == 'update_guest_review' ) {
$update_review['ID'] = intval( $update_review_id );
$update_review['post_content'] = $review_content;
$review_id = wp_update_post( $update_review );
}
update_post_meta($review_id, 'reservation_listing_id_for_guest', $review_listing_id);
update_post_meta($review_id, 'review_guest_id', $review_guest_id);
update_post_meta($review_id, 'reviewer_id', $review_owner_id);
update_post_meta($review_guest_reservation_id, 'guest_review_id', $review_id);
update_post_meta($review_id, 'review_guest_reservation_id', $review_guest_reservation_id);
update_post_meta($review_id, 'homey_guest_rating', $rating);
homey_send_review_email($review_listing_id, $review_id, $rating, $review_content, $review_guest_id, $review_guest_reservation_id);
echo json_encode(
array(
'success' => true,
'message' => ''
)
);
wp_die();
}
}
if(!function_exists('homey_send_review_email')) {
function homey_send_review_email($review_listing_id, $review_id, $rating, $review_content, $send_to_user_id, $review_reservation_id) {
$is_guest = $is_host = false;
$role = homey_user_role_by_user_id($send_to_user_id);
if($role == 'homey_renter') {
$is_guest = true;
} else {
$is_host = true;
}
$review_link = get_permalink($review_listing_id);
$review_link .= '#review-'.$review_id;
$guest_review_link = get_author_posts_url( $send_to_user_id );
$guest_review_link .= '#review-'.$review_id;
$reservation_page_link = homey_get_template_link('template/dashboard-reservations.php');
$write_review_link = add_query_arg(
array(
'reservation_detail' => $review_reservation_id,
'write_review' => 1,
),$reservation_page_link
);
$email_subject = sprintf( esc_html__('A new rating has been received for reservation %s', 'homey'), $review_reservation_id );
$email_body = esc_html__("Rating: ", 'homey') . $rating . " <br/>";
$email_body .= esc_html__("Comment:", 'homey').' '.( $review_content ) . " <br/>";
$email_body .= '----------------------------------------- <br/>';
if($is_host) {
$email_body .= esc_html__('You can view this at', 'homey').' '.'<a href="'.esc_url($review_link).'">'.$review_link.'</a><br/>';
}
if($is_guest) {
$email_body .= esc_html__('You can view this at', 'homey').' '.'<a href="'.esc_url($guest_review_link).'">'.$guest_review_link.'</a><br/>';
}
$email_body .= esc_html__('You can write your review at', 'homey').' '.'<a href="'.esc_url($write_review_link).'">'.$write_review_link.'</a><br/>';
$headers = 'From: No Reply <noreply@'.isset( $_SERVER['HTTP_HOST'] ) ? str_replace( 'www.', '', sanitize_text_field( wp_unslash( $_SERVER['HTTP_HOST'] ) ) ) : 'noreply.com'.'>' . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
$target_email = get_the_author_meta( 'email', $send_to_user_id );
$email = wp_mail( $target_email, $email_subject, $email_body, $headers);
}
}
if(!function_exists('homey_add_listing_rating')) {
function homey_add_listing_rating($listing_id) {
$args = array(
'posts_per_page' => -1,
'post_type' => 'homey_review',
'meta_key' => 'reservation_listing_id',
'meta_value' => $listing_id,
'post_status' => 'publish',
);
$listing_rating = '';
$total_stars = $total_review = 0;
$review_query = new WP_Query($args);
if($review_query->have_posts()) {
$total_review = $review_query->found_posts;
while($review_query->have_posts()): $review_query->the_post();
$homey_rating = get_post_meta(get_the_ID(), 'homey_rating', true);
$total_stars = $total_stars + $homey_rating;
endwhile;
wp_reset_postdata();
$rating = $total_stars/$total_review;
$rating = $rating > 4.5 ? 5 : $rating;
update_post_meta($listing_id, 'listing_total_rating', $rating);
update_post_meta($listing_id, 'listing_total_number_of_reviews', $total_review);
return true;
}
return true;
}
}
if(!function_exists('homey_adjust_listing_rating_on_delete')) {
function homey_adjust_listing_rating_on_delete($listing_id, $review_id) {
$args = array(
'post_type' => 'homey_review',
'meta_key' => 'reservation_listing_id',
'meta_value' => $listing_id,
'post_status' => 'publish'
);
$listing_rating = '';
$total_stars = $total_review = 0;
$review_query = new WP_Query($args);
if($review_query->have_posts()) {
$total_review = $review_query->found_posts;
while($review_query->have_posts()): $review_query->the_post();
$homey_rating = get_post_meta(get_the_ID(), 'homey_rating', true);
$total_stars = $total_stars + $homey_rating;
endwhile;
wp_reset_postdata();
}
if($total_review == 0) {
$rating = '';
} else {
$rating = $total_stars/$total_review;
}
update_post_meta($listing_id, 'listing_total_rating', $rating);
update_post_meta($listing_id, 'listing_total_number_of_reviews', $total_review);
return true;
}
}
add_action( 'wp_ajax_nopriv_homey_ajax_review', 'homey_ajax_review' );
add_action( 'wp_ajax_homey_ajax_review', 'homey_ajax_review' );
if( !function_exists('homey_ajax_review') ) {
function homey_ajax_review() {
global $homey_local;
$homey_local = homey_get_localization();
$allowded_html = array();
$meta_query = array();
$num_of_review = homey_option('num_of_review');
$listing_id = intval($_POST['listing_id']);
$sort_by = $_POST['sortby'];
$paged = $_POST['paged'];
$args = array(
'post_type' => 'homey_review',
'posts_per_page' => $num_of_review,
'post_status' => 'publish'
);
$meta_query[] = array(
'key' => 'reservation_listing_id',
'value' => $listing_id,
'type' => 'NUMERIC',
'compare' => '=',
);
if ( $sort_by == 'a_rating' ) {
$args['orderby'] = 'meta_value_num';
$args['meta_key'] = 'homey_rating';
$args['order'] = 'ASC';
} else if ( $sort_by == 'd_rating' ) {
$args['orderby'] = 'meta_value_num';
$args['meta_key'] = 'homey_rating';
$args['order'] = 'DESC';
} else if ( $sort_by == 'a_date' ) {
$args['orderby'] = 'date';
$args['order'] = 'ASC';
} else if ( $sort_by == 'd_date' ) {
$args['orderby'] = 'date';
$args['order'] = 'DESC';
}
$meta_count = count($meta_query);
if( $meta_count > 1 ) {
$meta_query['relation'] = 'AND';
}
if ($meta_count > 0) {
$args['meta_query'] = $meta_query;
}
if (!empty($paged) && $paged > 1) {
$args['paged'] = $paged;
} else {
$args['paged'] = 1;
}
$review_query = new WP_Query($args);
echo '<input type="hidden" name="page_sort" id="page_sort" value="'.$sort_by.'">';
if($review_query->have_posts()) {
while($review_query->have_posts()): $review_query->the_post();
$review_author = homey_get_author('70', '70', 'img-circle');
$homey_rating = get_post_meta(get_the_ID(), 'homey_rating', true); ?>
<li id="review-<?php the_ID();?>" class="review-block">
<div class="media">
<div class="media-left">
<a class="media-object">
<?php echo ''.$review_author['photo']; ?>
</a>
</div>
<div class="media-body media-middle">
<div class="msg-user-info">
<div class="msg-user-left">
<div>
<strong><?php echo esc_attr($review_author['name']); ?></strong>
<span class="rating">
<?php echo homey_get_review_stars($homey_rating, true, true, false); ?>
</span>
</div>
<div class="message-date">
<?php
$human_time_diff = sprintf(esc_html__('%s ago', 'homey'), human_time_diff(get_the_time('U'), current_time('timestamp')));
$dateTimeOfReview = esc_attr( get_the_time( get_option( 'date_format' ) )).' '.esc_attr( get_the_time( get_option( 'time_format' ) )); ?>
<time datetime="<?php echo $dateTimeOfReview; ?>"><i class="homey-icon homey-icon-calendar-3"></i> <?php echo $human_time_diff; ?> </time>
</div>
</div>
</div>
<?php the_content(); ?>
</div>
</div>
</li>
<?php
endwhile;
wp_reset_postdata();
}
wp_die();
}
}
if(!function_exists('homey_get_review_stars')) {
function homey_get_review_stars($stars, $is_span = false, $is_label = true, $is_label_as_text = true ) {
$local = homey_get_localization();
$output = '';
if($is_label_as_text) {
$label_class = 'star-text-right';
} else {
$label_class = 'label label-success';
}
if($is_span) {
$html_attr = 'span';
$html_attr2 = '';
$html_attr2_end = '';
} else {
$html_attr = 'li';
$html_attr2 = '<li>';
$html_attr2_end = '</li>';
}
$html_attr = 'i';
if($stars >= 1 && $stars < 1.5) {
$output = '
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star"></'.$html_attr.'>';
if($is_label) {
$output .= $html_attr2.'<span class="'.$label_class.'">'.$local['rating_poor'].'</span>'.$html_attr2_end;
}
} elseif($stars >= 1.5 && $stars < 2) {
$output = '
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full-half"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star"></'.$html_attr.'>';
if($is_label) {
$output .= $html_attr2.'<span class="'.$label_class.'">'.$local['rating_fair'].'</span>'.$html_attr2_end;
}
} elseif($stars >= 2 & $stars < 2.5) {
$output = '
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star"></'.$html_attr.'>';
if($is_label) {
$output .= $html_attr2.'<span class="'.$label_class.'">'.$local['rating_fair'].'</span>'.$html_attr2_end;
}
} elseif($stars >= 2.5 & $stars < 3) {
$output = '
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full-half"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star"></'.$html_attr.'>';
if($is_label) {
$output .= $html_attr2.'<span class="'.$label_class.'">'.$local['rating_average'].'</span>'.$html_attr2_end;
}
} elseif($stars >= 3 && $stars < 3.5 ) {
$output = '
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star"></'.$html_attr.'>';
if($is_label) {
$output .= $html_attr2.'<span class="'.$label_class.'">'.$local['rating_average'].'</span>'.$html_attr2_end;
}
} elseif($stars >= 3.5 && $stars < 4 ) {
$output = '
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full-half"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star"></'.$html_attr.'>';
if($is_label) {
$output .= $html_attr2.'<span class="'.$label_class.'">'.$local['rating_good'].'</span>'.$html_attr2_end;
}
} elseif($stars >= 4 && $stars < 4.5) {
$output = '
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star"></'.$html_attr.'>';
if($is_label) {
$output .= $html_attr2.'<span class="'.$label_class.'">'.$local['rating_good'].'</span>'.$html_attr2_end;
}
} elseif($stars >= 4.5 && $stars < 5) {
$output = '
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full-half"></'.$html_attr.'>';
if($is_label) {
$output .= $html_attr2.'<span class="'.$label_class.'">'.$local['rating_excellent'].'</span>'.$html_attr2_end;
}
} elseif($stars >= 5) {
$output = '
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>
<'.$html_attr.' class="homey-icon homey-icon-rating-star-full"></'.$html_attr.'>';
if($is_label) {
$output .= $html_attr2.'<span class="'.$label_class.'">'.$local['rating_excellent'].'</span>'.$html_attr2_end;
}
}
return $output;
}
}
if(!function_exists('homey_get_review_stars_v2')) {
function homey_get_review_stars_v2($stars = 0, $total_review='', $link_url = 'javascript:void(0);' ) {
$output = '<i class="homey-icon homey-icon-rating-star"></i><span class="star-text-right">';
if($total_review > 0){
$output .= round($stars, 2);
$output .= ' - <a href="'.$link_url.'"> '.$total_review.' '.esc_html__('Reviews', 'homey').'</a></span>';
}else{
$output .= ' 0 '. esc_html__('Reviews', 'homey').'</span>';
}
return $output;
}
}
if(!function_exists('homey_get_review_v2')) {
function homey_get_review_v2( $stars, $post_id=0, $link_url='javascript:void(0);', $type = 'listing' ) {
$listing_total_number_of_reviews = homey_total_number_review( $post_id, $type );
$output = '<i class="homey-icon homey-icon-rating-star"></i><span class="star-text-right">';
$output .= round($stars, 2);
$output .= ' - <a href="'.$link_url.'">'.$listing_total_number_of_reviews.' '.esc_html__('Reviews', 'homey').'</a></span>';
return $output;
}
}
if(!function_exists('homey_total_number_review')) {
function homey_total_number_review($post_id = 0, $type = 'listing' ) {
$args = array(
'post_type' => 'homey_review',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'reservation_'.$type.'_id',
'value' => $post_id,
'compare' => '=',
),
array(
'key' => 'homey_where_to_display',
'value' => $type.'_detail_page',
'compare' => '=',
),
),
'post_status' => 'publish'
);
$review_query = new WP_Query($args);
$total_review = isset($review_query->found_posts) ? $review_query->found_posts : 0;
return $total_review;
}
}
if(!function_exists('homey_get_listing_rating')) {
function homey_get_listing_rating($listing_id, $is_span = false, $is_label = true) {
$args = array(
'post_type' => 'homey_review',
'meta_key' => 'reservation_listing_id',
'meta_value' => $listing_id,
'post_status' => 'publish',
);
$listing_rating = '';
$total_stars = $total_review = 0;
$review_query = new WP_Query($args);
if($review_query->have_posts()) {
$total_review = $review_query->found_posts;
while($review_query->have_posts()): $review_query->the_post();
$homey_rating = get_post_meta(get_the_ID(), 'homey_rating', true);
$total_stars = $total_stars + $homey_rating;
endwhile;
wp_reset_postdata();
$rating = $total_stars/$total_review;
$listing_rating = homey_get_review_stars($rating, $is_span, $is_label);
//update_post_meta($listing_id, 'listing_total_rating', $rating);
return $listing_rating;
}
return $listing_rating;
}
}
if(!function_exists('homey_get_host_reviews')) {
function homey_get_host_reviews($author_id) {
$homey_local = homey_get_localization();
$is_host_have_reviews = false;
$all_reviews = '';
$host_rating = '';
$return_reviews = array();
$review_args = array(
'post_type' => 'homey_review',
// added two meta
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'listing_owner_id',
'value' => $author_id,
'compare' => '=',
),
array(
'key' => 'homey_where_to_display',
'value' => 'host_profile',
'compare' => '=',
),
),
'post_status' => 'publish'
);
$review_query = new WP_Query($review_args);
if($review_query->have_posts()) {
//$total_review = $review_query->found_posts;
$total_review =0;
$is_host_have_reviews = true;
$total_stars = 0;
if($total_review > 1) {
$review_label = $homey_local['rating_reviews_label'];
} else {
$review_label = $homey_local['rating_review_label'];
}
while($review_query->have_posts()): $review_query->the_post();
$reviewer_id = get_post_meta(get_the_ID(), 'reviewer_id', true);
if($author_id != $reviewer_id){
$total_review++;
$review_author = homey_get_author('70', '70', 'img-circle');
$homey_rating = get_post_meta(get_the_ID(), 'homey_rating', true);
// print_r(get_post_meta(get_the_ID()));
$listing_id = get_post_meta(get_the_ID(), 'reservation_listing_id', true);
$total_stars = $total_stars + $homey_rating;
$all_reviews .= '
<li class="review-block">
<div class="media">
<div class="media-left">
<a href="'.$review_author['link'].'" target="_blank" class="media-object">
'.$review_author['photo'].'
</a>
</div>
<div class="media-body media-middle">
<div class="msg-user-info">
<div class="msg-user-left">
<strong>'.esc_attr($review_author['name']).'</strong>
<div>'.esc_html__('on', 'homey').' <a href="'.get_permalink($listing_id).'">'.get_the_title($listing_id).'</a>
<span class="rating">
'.homey_get_review_stars($homey_rating, true, true, false).'
</span>
</div>
<div class="message-date">';
$dateTimeOfReview = esc_attr( get_the_time( get_option( 'date_format' ) )).' '.esc_attr( get_the_time( get_option( 'time_format' ) ));
$human_time_diff = sprintf(esc_html__('%s ago', 'homey'), human_time_diff(get_the_time('U'), current_time('timestamp')));
$all_reviews .='<time datetime="'.$dateTimeOfReview.'>"><i class="homey-icon homey-icon-calendar-3"></i>'. $human_time_diff.'</time>
</div>
</div>
</div>
<p>
'.get_the_content().'
</p>
</div>
</div>
</li>';
}
endwhile;
$rating = $total_stars/$total_review;
$rating = $rating > 4.5 ? 5 : $rating;
$host_rating = homey_get_review_stars($rating, true, $is_label = true, $is_label_as_text = true);
wp_reset_postdata();
}
$return_reviews['reviews_data'] = $all_reviews;
$return_reviews['host_rating'] = $host_rating;
$return_reviews['is_host_have_reviews'] = $is_host_have_reviews;
return $return_reviews;
}
}
if(!function_exists('homey_get_host_reviews_v2')) {
function homey_get_host_reviews_v2($author_id) {
$homey_local = homey_get_localization();
$is_host_have_reviews = false;
$all_reviews = '';
$host_rating = '';
$return_reviews = array();
$review_args = array(
'post_type' => 'homey_review',
// added two meta
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'listing_owner_id',
'value' => $author_id,
'compare' => '=',
),
array(
'key' => 'homey_where_to_display',
'value' => 'host_profile',
'compare' => '=',
),
),
'post_status' => 'publish'
);
$review_query = new WP_Query($review_args);
if($review_query->have_posts()) {
//$total_review = $review_query->found_posts;
$total_review =0;
$is_host_have_reviews = true;
$total_stars = 0;
if($total_review > 1) {
$review_label = $homey_local['rating_reviews_label'];
} else {
$review_label = $homey_local['rating_review_label'];
}
while($review_query->have_posts()): $review_query->the_post();
$reviewer_id = get_post_meta(get_the_ID(), 'reviewer_id', true);
if($author_id != $reviewer_id){
$total_review++;
$review_author = homey_get_author('70', '70', 'img-circle');
$homey_rating = get_post_meta(get_the_ID(), 'homey_rating', true);
// print_r(get_post_meta(get_the_ID()));
$listing_id = get_post_meta(get_the_ID(), 'reservation_listing_id', true);
$total_stars = $total_stars + $homey_rating;
$all_reviews .= '
<li class="review-block ffff">
<div class="media">
<div class="media-left">
<a href="'.$review_author['link'].'" target="_blank" class="media-object">
'.$review_author['photo'].'
</a>
</div>
<div class="media-body media-middle">
<div class="msg-user-info">
<div class="msg-user-left">
<strong>'.esc_attr($review_author['name']).'</strong>
<div>'.esc_html__('on', 'homey').' <a href="'.get_permalink($listing_id).'">'.get_the_title($listing_id).'</a>
<span class="rating">
'.homey_get_review_stars_v2($homey_rating, true,$review_author['link']."#reviews").'
</span>
</div>
<div class="message-date">';
$dateTimeOfReview = esc_attr( get_the_time( get_option( 'date_format' ) )).' '.esc_attr( get_the_time( get_option( 'time_format' ) ));
$human_time_diff = sprintf(esc_html__('%s ago', 'homey'), human_time_diff(get_the_time('U'), current_time('timestamp')));
$all_reviews .='<time datetime="'.$dateTimeOfReview.'>"><i class="homey-icon homey-icon-calendar-3"></i>'. $human_time_diff.'</time>
</div>
</div>
</div>
<p>
'.get_the_content().'
</p>
</div>
</div>
</li>';
}
endwhile;
$rating = $total_stars/$total_review;
$rating = $rating > 4.5 ? 5 : $rating;
$host_rating = homey_get_review_stars_v2($rating, $total_review, $review_author['link']."#reviews");
wp_reset_postdata();
}
$return_reviews['reviews_data'] = $all_reviews;
$return_reviews['host_rating'] = $host_rating;
$return_reviews['is_host_have_reviews'] = $is_host_have_reviews;
return $return_reviews;
}
}
if(!function_exists('homey_get_guest_reviews')) {
function homey_get_guest_reviews($author_id) {
$homey_local = homey_get_localization();
$is_guest_have_reviews = false;
$all_reviews = '';
$host_rating = '';
$total_review = 0;
$return_reviews = array();
$review_args = array(
'post_type' => 'homey_review',
// added two meta
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'review_guest_id',
'value' => $author_id,
'compare' => '=',
),
array(
'key' => 'homey_where_to_display',
'value' => 'host_profile',
'compare' => '=',
),
),
'post_status' => 'publish'
);
$review_query = new WP_Query($review_args);
if($review_query->have_posts()) {
$total_review = $review_query->found_posts;
$is_guest_have_reviews = true;
$total_stars = 0;
if($total_review > 1) {
$review_label = $homey_local['rating_reviews_label'];
} else {
$review_label = $homey_local['rating_review_label'];
}
while($review_query->have_posts()): $review_query->the_post();
$review_author = homey_get_author('70', '70', 'img-circle');
$homey_rating = get_post_meta(get_the_ID(), 'homey_guest_rating', true);
$listing_id = get_post_meta(get_the_ID(), 'reservation_listing_id_for_guest', true);
$total_stars = $total_stars + $homey_rating;
$all_reviews .= '
<li id="review-'.get_the_ID().'" class="review-block">
<div class="media">
<div class="media-left">
<a href="'.$review_author['link'].'" target="_blank" class="media-object">
'.$review_author['photo'].'
</a>
</div>
<div class="media-body media-middle">
<div class="msg-user-info">
<div class="msg-user-left">
<strong>'.esc_attr($review_author['name']).'</strong>
<span class="rating">
'.homey_get_review_stars($homey_rating, true, true, false).'
</span>
<div>
</div>
<div class="message-date">';
$dateTimeOfReview = esc_attr( get_the_time( get_option( 'date_format' ) )).' '.esc_attr( get_the_time( get_option( 'time_format' ) ));
$human_time_diff = sprintf(esc_html__('%s ago', 'homey'), human_time_diff(get_the_time('U'), current_time('timestamp')));
$all_reviews .='<time datetime="'.$dateTimeOfReview.'>"><i class="homey-icon homey-icon-calendar-3"></i>'. $human_time_diff.'</time>
</div>
</div>
</div>
<p>'.get_the_content().'</p>
</div>
</div>
</li>';
endwhile;
$rating = $total_stars/$total_review;
$host_rating = homey_get_review_stars($rating, true, $is_label = true, $is_label_as_text = true);
wp_reset_postdata();
}
$return_reviews['reviews_data'] = $all_reviews;
$return_reviews['guest_rating'] = $host_rating;
$return_reviews['total_reviews'] = $total_review;
$return_reviews['is_guest_have_reviews'] = $is_guest_have_reviews;
return $return_reviews;
}
}
if(!function_exists('homey_update_listing_ratings')) {
function homey_update_listing_ratings($listing_id = -1)
{
if(is_array($listing_id)){
foreach ($listing_id as $id) {
homey_add_listing_rating( $id );
}
}else if ( $listing_id > 0){
homey_add_listing_rating( $listing_id );
}
}
}
if(isset($_GET['reset_reviews'])){
$ids = get_posts(array(
'fields' => 'ids', // Only get post IDs
'posts_per_page' => -1,
'post_type' => 'listing'
));
homey_update_listing_ratings($ids);
}
Back to Directory
File Manager