HEX
Server: nginx/1.24.0
System: Linux DGT-WORDPRESS-VM-SERVER 6.14.0-1014-azure #14~24.04.1-Ubuntu SMP Fri Oct 3 20:52:11 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 8.4.12
Disabled: NONE
Upload Files
File: /mnt/data/dreamsrent-wp-demo/wp-content/plugins/dreamsrent-booking/inc/plugin-funct.php
<?php


function add_bookings_calendar_menu() {
    add_menu_page(
        __('Bookings Calendar', 'bookingcore'),  // Title with translation support
        __('Bookings Calendar', 'bookingcore'),  // Menu title with translation support
         'manage_options',      
        'bookings_calendar',             
        'bookings_calendar_content',
		'dashicons-calendar-alt',
        28                 
    );
}
add_action('admin_menu', 'add_bookings_calendar_menu');
 function bookings_calendar_content() {  
 require_once( DSBRENT_PLUGIN_PATH.'/inc/bookings/calendar-bookings.php' );
 }

 
add_filter( 'comment_form_fields', 'comments_fields'); // add new fields

add_action( 'comment_form_logged_in_after', 'comments_logged_in_fields');

add_action( 'comment_post', 'save_comment_meta_data'); // save new fields

  function dreamsrent_get_reviews_criteria(){

	$criteria = array(

		'service' => array(
 				'label' => esc_html__('Your Ratings','bookingcore')		), 
 	);

 	return apply_filters('dreamsrent_reviews_criteria',$criteria);

}



function comments_fields($fields) {

    $type = get_post_type( get_the_ID() );

    

    $commenter = wp_get_current_commenter();

    $req = get_option( 'require_name_email' );

    $aria_req = ( $req ? " aria-required='true'" : '' );

    $consent  = empty( $commenter['comment_author_email'] ) ? '' : ' checked="checked"';

    

    unset($fields['author']);

    unset($fields['email']);

    unset($fields['url']);

    unset($fields['cookies']);

    $comment_field = $fields['comment'];



    unset( $fields['comment'] );

    if($type == 'rental') {

    

    

        $criteria_fields = dreamsrent_get_reviews_criteria();

        ob_start();

        ?>

        <!-- Subratings Container -->

                <div class="sub-ratings-container">

                    <?php foreach ($criteria_fields as $key => $value) { ?>

                        <!-- Subrating #1 -->

                        <div class="add-sub-rating">

                            <div class="sub-rating-title mb-2"><?php echo stripslashes(esc_html($value['label'])) ?></div>

                            <div class="sub-rating-stars">

                                <!-- Leave Rating -->

                                <div class="clearfix"></div>

                                <div class="leave-rating">

                                    <?php for ($i=5; $i > 0; $i--) { ?>

                                        <input type="radio"  name="<?php echo $key; ?>" id="rating-<?php echo $key.'-'.$i; ?>" value="<?php echo $i; ?>"/>

                                        <label for="rating-<?php echo $key.'-'.$i; ?>" class="fa fa-star"></label>

                                    <?php } ?>
                                </div>

                                <div class="clearfix"></div>

                            </div>

                        </div>



<?php }

         

        $rating_output = ob_get_clean();

        $fields['rating'] = $rating_output;

     }

    



    $fields['author'] = '

                <div class="row">

                    <div class="col-sm-6 col-12"><div class="form-group comment-form-author"><label class="col-form-label">'.  esc_html__("Name", "bookingcore").'*</label>' . ' ' .

                    '<input id="author" name="author" type="text"  ' . ( $req ? ' required' : '' ) . ' value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' placeholder="'.esc_html__("Enter Your Email", "bookingcore").'*" class="form-control"/>

                     </div></div>';		



    $fields['email'] = '

                    <div class="col-sm-6 col-12"><div class="form-group comment-form-email"><label class="col-form-label">'.  esc_html__("Email", "bookingcore").'*</label>' . '' .

         '<input id="email" name="email" type="email" ' . ( $req ? ' required' : '' ) . ' value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' placeholder="'.  esc_html__("Enter Your Email", "bookingcore").'*" class="form-control" />

         </div></div></div>

                    ';	

                 $fields['comment'] = '<div class="row"><div class="col-sm-12 col-12"><div class="formg-group comment-form-comment"><label class="col-form-label">'.  esc_html__("Message", "bookingcore").'*</label>' . '' .

                 '<textarea id="comment" name="comment" class="form-control" cols="45" rows="8" maxlength="65525" required="required" placeholder="'.  esc_html__("Enter Your Message", "bookingcore").' ..."></textarea>

                 </div>

                             </div>

                             </div>';				

    

    if(get_option('dreamsrent_recaptcha_reviews')) :



        $recaptcha_status = get_option('dreamsrent_recaptcha');

        $recaptcha_version = get_option('dreamsrent_recaptcha_version');



        if($recaptcha_status && $recaptcha_version == 'v2'){ 

            $fields['recaptcha'] = 

                    '<div class="row">

                        <div class="form-row col-md-12 captcha_wrapper">

                            <div class="g-recaptcha" data-sitekey="'. get_option('dreamsrent_recaptcha_sitekey').'"></div>

                        </div>

                    </div>';

        }



        if($recaptcha_status && $recaptcha_version == 'v3'){ 

               $fields['recaptcha'] =  '

                       <input type="hidden" id="rc_action" name="rc_action" value="ws_review">

                    <input type="hidden" id="token" name="token">';

        }



    endif;

    $fields['cookies'] = '<p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes"' . $consent . ' />' .

                 '<label for="wp-comment-cookies-consent">' . __( 'Save my name, email, and website in this browser for the next time I comment.','bookingcore' ) . '</label></p>';		

    return $fields;

}





function comments_logged_in_fields(){

    $type = get_post_type( get_the_ID() );

    if($type != 'rental') {

        return;

    }

    $criteria_fields = dreamsrent_get_reviews_criteria();

?>

    <!-- Subratings Container -->

            <div class="sub-ratings-container">

                <?php foreach ($criteria_fields as $key => $value) { ?>

                    <!-- Subrating #1 -->

                    <div class="add-sub-rating">

                        <div class="sub-rating-title mb-2"><?php echo stripslashes(esc_html($value['label'])) ?></div>

                        <div class="sub-rating-stars">

                            <!-- Leave Rating -->

                            <div class="clearfix"></div>

                            <div class="leave-rating">

                                <?php for ($i=5; $i > 0; $i--) { ?>

                                    <input type="radio"  name="<?php echo $key; ?>" id="rating-<?php echo $key.'-'.$i; ?>" value="<?php echo $i; ?>"/>

                                    <label for="rating-<?php echo $key.'-'.$i; ?>" class="fa fa-star"></label>

                                <?php } ?>

                                

                            </div>

                            <div class="clearfix"></div>

                        </div>

                    </div>

                <?php } 
                
                if(!get_option('dreamsrent_review_photos_disable')) { ?>

                <!-- Uplaod Photos -->

                

                <!-- Uplaod Photos / End -->

                <?php } ?>



            </div>

            <!-- Subratings Container / End -->



    <?php

}

function save_comment_meta_data($comment_id){

    $criteria_fields = dreamsrent_get_reviews_criteria();

    $count_criteria = 0;

    $total_criteria = 0;

    foreach ($criteria_fields as $key => $value) {



        if ( ( isset( $_POST[$key] ) ) && ( $_POST[$key] != '') ) {

            $count_criteria++;

              $rating = wp_filter_nohtml_kses( $_POST[$key] );

              $total_criteria = $total_criteria + (int) $rating;

              /// add_comment_meta( $comment_id, $key, $rating );

           }

    }

    if($total_criteria>0){

        $dreamsrent_rating = (float) $total_criteria/$count_criteria;

        add_comment_meta( $comment_id, 'dreamsrent-rating', $dreamsrent_rating );

    }

      

}

 if ( !function_exists( 'dreams_pagination_theme' ) ) :

function dreams_pagination_theme() {
    if ( is_singular() ) return;

    global $wp_query;

    if ( $wp_query->max_num_pages <= 1 ) return;

    $paged = get_query_var('paged') ? absint(get_query_var('paged')) : 1;
    $max   = intval($wp_query->max_num_pages);
    $links = [];

    if ( $paged >= 1 )
        $links[] = $paged;

    if ( $paged >= 3 ) {
        $links[] = $paged - 1;
        $links[] = $paged - 2;
    }

    if ( ( $paged + 2 ) <= $max ) {
        $links[] = $paged + 1;
        $links[] = $paged + 2;
    }

    echo '<div class="blog-pagination"><nav><ul class="pagination page-item justify-content-center">';

    // Previous
    if ( get_previous_posts_link() ) {
        printf(
            '<li class="previtem page-numbers">%s</li>',
            get_previous_posts_link('<i class="fas fa-regular fa-arrow-left me-2"></i> ' . esc_html__('Prev', 'bookingcore'))
        );
    }

    // First page
    if ( !in_array(1, $links) ) {
        $class = (1 == $paged) ? ' class="active"' : '';
        printf('<li%s><a class="page-item" href="%s">1</a></li>', $class, esc_url(get_pagenum_link(1)));

        if ( !in_array(2, $links) ) {
            echo '<li><a class="page-item">&#x2022;&#x2022;&#x2022;</a></li>';
        }
    }

    // Middle pages
    sort($links);
    foreach ( $links as $link ) {
        $class = ($paged == $link) ? ' class="active"' : '';
        printf('<li%s><a class="page-item" href="%s">%s</a></li>', $class, esc_url(get_pagenum_link($link)), $link);
    }

    // Last page
    if ( !in_array($max, $links) ) {
        if ( !in_array($max - 1, $links) ) {
            echo '<li><a class="page-item">&#x2022;&#x2022;&#x2022;</a></li>';
        }

        $class = ($paged == $max) ? ' class="active"' : '';
        printf('<li%s><a class="page-item" href="%s">%s</a></li>', $class, esc_url(get_pagenum_link($max)), $max);
    }

    // Next
    if ( get_next_posts_link() ) {
        printf(
            '<li class="nextlink page-numbers">%s</li>',
            get_next_posts_link(esc_html__('Next', 'bookingcore') . ' <i class="fas fa-regular fa-arrow-right ms-2"></i>')
        );
    }

    echo '</ul></nav></div>';
}

endif;



// In manufacturer

function dreams_getcategory($taxonomy = 'carcategory') {

    global $post;

    $term_list = '';

    $terms = get_the_terms($post->ID, $taxonomy);

    $n = '1';

    if ($terms) {

        foreach($terms as $term) {

            if ($n <= count($terms)) {

                $term_list .= $term->name . ', ';

            }  

			break;

            ++$n;

        }

    }



    $term_list = rtrim($term_list, ', ');



    return $term_list;

}







function dreams_display_location_rental($post_id) {

    $loaction_rental = unserialize(get_post_meta($post_id, '_rent_locations', true));

    if (is_array($loaction_rental) || is_object($loaction_rental)) {

        foreach ($loaction_rental as $loaction_rental_dis) {

            $term = get_term($loaction_rental_dis['plocation']);

            if ($term != null) {

                echo esc_html($term->name);

                break;

            }

        }

    }

}



function dreams_display_rental_price($post_id) {
    

       $location_price1 = get_post_meta($post_id, 'dreams_booking_meta_rdprice', true);
if($location_price1) {
    $location_price =  get_post_meta($post_id, 'dreams_booking_meta_rdprice', true);
} else {
    $location_price =  get_post_meta($post_id, 'dreams_booking_meta_rhprice', true);

}
?><?php echo $location_price; ?> 

 <?php

 }



 function dreams_display_rental_type($post_id) {

    $rental_type = get_post_meta($post_id, 'dreams_booking_meta_rental_type', true);
    
    $location_price = get_post_meta($post_id, 'dreams_booking_meta_rdprice', true);
    $rental_type_dis = '';
if($location_price) {
    $rental_type_dis = esc_html__('Day','bookingcore');
} else {
    $rental_type_dis = esc_html__('Hour','bookingcore');
}
echo $rental_type_dis;


}







// In manufacturer

function dreams_getlocation($taxonomy = 'manufacturer') {

    global $post;

    $term_list = '';

    $terms = get_the_terms($post->ID, $taxonomy);

    $n = '1';

    if ($terms) {

        foreach($terms as $term) {

            if ($n <= count($terms)) {

                $term_list .= $term->name . ', ';

            }  

			break;

            ++$n;

        }

    }



    $term_list = rtrim($term_list, ', ');



    return $term_list;

}


 

function display_specifications($specifications_array) {

    if (!empty($specifications_array)) {

                         $d = 0;

                          foreach ($specifications_array as $specification) { 

                            if($d % 3 === 0) {

                                echo "<ul>";

                            }
                            $feature_icon = '';

                            switch ($specification['dreams_booking_meta_sp_title']) {

                                case 'Gear Type':

                                    $feature_icon = get_template_directory_uri() . '/assets/images/car-parts-01.svg';

                                    break;

                                case 'Mileage':

                                    $feature_icon = get_template_directory_uri() . '/assets/images/car-parts-02.svg';

                                    break;

                                case 'Fuel':

                                    $feature_icon = get_template_directory_uri() . '/assets/images/car-parts-03.svg';

                                    break;

                                case 'Steering':

                                    $feature_icon = get_template_directory_uri() . '/assets/images/car-parts-04.svg';

                                    break;

                                case 'Model':

                                    $feature_icon = get_template_directory_uri() . '/assets/images/car-parts-05.svg';

                                    break;

                                case 'Capacity':

                                    $feature_icon = get_template_directory_uri() . '/assets/images/car-parts-06.svg';

                                    break;

                                    case 'Engine':

                                        $feature_icon = get_template_directory_uri() . '/assets/images/car-parts-07.svg';
    
                                        break;

                                default:

                                    $feature_icon = ''; // Default icon or no icon

                            }

                            ?>



<li><span><img src="<?php echo esc_html($feature_icon); ?>" alt="<?php echo esc_html($specification['dreams_booking_meta_sp_title']); ?>"></span>

 <?php if(!empty($specification['dreams_booking_meta_sp_description'])){ ?>

    <p><?php echo esc_html($specification['dreams_booking_meta_sp_description']); ?></p></li>

 <?php } 
 

if($d % 3 === 2) {

	echo "</ul>";

}  

$d++;

} 

    }

}


function display_specifications_list($specifications_array) {

    if (!empty($specifications_array)) {


                         $d = 0;

                          foreach ($specifications_array as $specification) { 

                            if($d % 2 === 0) {

                                echo "<ul>";

                            }

                            $feature_icon = '';

                            switch ($specification['dreams_booking_meta_sp_title']) {

                                case 'Gear Type':

                                    $feature_icon = get_template_directory_uri() . '/assets/images/car-parts-01.svg';

                                    break;

                                case 'Mileage':

                                    $feature_icon = get_template_directory_uri() . '/assets/images/car-parts-02.svg';

                                    break;

                                case 'Fuel':

                                    $feature_icon = get_template_directory_uri() . '/assets/images/car-parts-03.svg';

                                    break;

                                case 'Steering':

                                    $feature_icon = get_template_directory_uri() . '/assets/images/car-parts-04.svg';

                                    break;

                                case 'Model':

                                    $feature_icon = get_template_directory_uri() . '/assets/images/car-parts-05.svg';

                                    break;

                                case 'Capacity':

                                    $feature_icon = get_template_directory_uri() . '/assets/images/car-parts-06.svg';

                                    break;

                                    case 'Engine':

                                        $feature_icon = get_template_directory_uri() . '/assets/images/car-parts-07.svg';
    
                                        break;

                                default:

                                    $feature_icon = ''; // Default icon or no icon

                            }

                            ?>


<li><span><img src="<?php echo esc_html($feature_icon); ?>" alt="<?php echo esc_html($specification['dreams_booking_meta_sp_title']); ?>"></span>

 <?php if(!empty($specification['dreams_booking_meta_sp_description'])){ ?>

    <p><?php echo esc_html($specification['dreams_booking_meta_sp_description']); ?></p></li>

 <?php }

if($d % 2 === 1) {

	echo "</ul>";

}  

$d++;

}
    }

}