GhostManSec
Server: Apache
System: Linux webm019.cluster130.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
User: exhehbu (1008962)
PHP: 8.0.30
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/exhehbu/wp/wp-content/plugins/eventer/eventers/sections/event-wootickets.php
<?php
$selected_date = date_i18n( 'Y-m-d', $params['event_cdate'] );

$registration_switch = get_post_meta($event_id, 'eventer_event_registration_swtich', true);
if ($registration_switch != "1") return;
$original_event = eventer_wpml_original_post_id($event_id);
$tickets = get_post_meta($original_event, 'wceventer_tickets', true);
$eventer_formatted_date = date_i18n('Y-m-d', $event_cdate);
$event_start_time_str = $start_str;
$event_end_time_str = $end_str;
$multi_state = (date_i18n('Y-m-d', $event_start_time_str) != date_i18n('Y-m-d', $event_end_time_str)) ? $event_start_time_str . '-' . $event_end_time_str : '';
$eventer_st_time = date_i18n("H:i", $event_start_time_str);
$booking_url = (function_exists('wc_get_cart_url')) ? wc_get_cart_url() : '';
$booking_url_target = get_post_meta($event_id, 'eventer_event_registration_target', true);
$commonBooking = get_post_meta($event_id, 'eventer_common_ticket_count', true);
$aviable_tickets = get_post_meta($event_id , 'eventer_event_available_tickets', true);
$registration_url = get_post_meta($event_id, 'eventer_event_custom_registration_url', true);
$time_slot = (date_i18n('H:i:s', strtotime($time_slot)) != '00:00:00') ? $time_slot : date_i18n('H:i:00', $event_start_time_str);
if (filter_var($registration_url, FILTER_VALIDATE_URL)) {
  $booking_url = $registration_url;
}
$new_updated_bookings = $all_tickets_name = array();
$eventer_maximum_tickets_count = eventer_get_settings('eventer_tickets_quantity_set');
$eventer_maximum_tickets_count = ($eventer_maximum_tickets_count) ? $eventer_maximum_tickets_count : 10;
$booking_calendar = eventer_get_settings('eventer_booking_calendar');
$booking_calendar_type = eventer_get_settings('eventer_booking_calendar_type');

$ticket_enabled_date = $bookingClsoed = '';
$booking_closes = get_post_meta($event_id, 'eventer_disable_booking_before', true);
if ($booking_closes != '') {
  $close_date = date('Y-m-d', strtotime($eventer_formatted_date . ' - ' . $booking_closes . ' days'));
  $difference = eventer_dateDiff(date_i18n('Y-m-d'), $close_date);
  if ($difference <= 4 && $difference > 0) {
    $ticket_enabled_date = '<i class="eventer-ticket-remaining eventer-ticket-full">' . $difference . esc_html__(' days left for booking', 'eventer') . '</i>';
  } elseif ($difference <= 0) {
    $bookingClsoed = 1;
    $ticket_enabled_date = '<i class="eventer-ticket-remaining eventer-ticket-full">' . esc_html__('Booking closed', 'eventer') . '</i>';
  }
}
?>

<?php 
ob_start();
if ( $booking_calendar_type == 'on' && count($all_dates) > 1 
	&& $days_diff <= 0 && get_post_type($event_id) == 'eventer'
	&& $booking_calendar == 'on' ) :
?>
	<select id="eventer-future-bookings" name="eventer-future-bookings" data-eventer="<?php echo esc_attr($event_id); ?>">
		<option value="" selected><?php esc_html_e('Select', 'eventer'); ?></option>
		<?php
		$all_dates = array_filter($all_dates, function ($date) {
			$start = date_i18n('Y-m-d G:i', strtotime(date_i18n("Y-m-d", time()) . " - 730 day"));
			$end = date_i18n('Y-m-d G:i', strtotime(date_i18n("Y-m-d", time()) . " + 730 day"));
			return (strtotime($date) >= strtotime($start) and strtotime($date) <= strtotime($end));
		});
		usort( $all_dates, 'eventer_compare_dates');
		foreach ($all_dates as $date) {
			$date = date_i18n('Y-m-d', strtotime( $date ) );
			$date_show = date_i18n(get_option('date_format'), strtotime( $date ) );

			if (strtotime($date) >= strtotime(date('Y-m-d'))) {
		        echo '<option value="' . esc_attr($date) . '" ' . ($selected_date == $date && $params['ajax'] == 1 ? 'selected="selected"' : '') . '>' . esc_attr($date_show) . '</option>';
		    }
		}
		?>
	</select>
<?php 
endif;
$select_date_html = ob_get_clean();
?>

<div class="eventer eventer-event-single">
  <div class="eventer-ticket-details-wrap">
    <?php
    $ticket_remaining_modal = $remaining_for_reg = $check_duplicate = '';
    $show_tickets_info = $tickets;
    $mandatory_time_slots = eventer_get_settings('eventer_time_slots_mandatory');
    if (!empty($show_tickets_info)) {
      echo '<div class="eventer-ticket-details" data-common="' . $commonBooking . '" data-date="' . esc_attr(date_i18n('Y-m-d', $event_cdate)) . '" data-time="' . esc_attr($time_slot) . '" data-slottitle="' . $time_slot_title . '">
										<h3>' . esc_html__('Tickets details', 'eventer') . '</h3>';

			if ( $booking_calendar_type == 'on' ) {
				if ( count($all_dates) > 1 && $days_diff <= 0 && get_post_type($event_id) == 'eventer' && $booking_calendar == 'on' ) {
					echo '<label>' . esc_html__('Select Booking Date', 'eventer') . '</label>';
					echo $select_date_html;
				}

				// echo (count($all_dates) > 1 && $days_diff <= 0 && get_post_type($event_id) == 'eventer' && $booking_calendar == 'on') ? 
				// '<label>' . esc_html__('Select Booking Date', 'eventer') . '</label><input type="input" id="eventer-future-bookings" data-time="asdasdf" class="datepicker" style="display:none;"/>' : '';
			} else {
				echo ( $days_diff <= 0 && get_post_type($event_id) == 'eventer' && $booking_calendar == 'on') ? '<label>' . esc_html__('Select Booking Date', 'eventer') . '</label><input type="input" id="eventer-future-bookings" data-time="asdasdf" class="datepicker" style="display:none;"/>' : '';
			}

      // echo ($days_diff <= 0 && get_post_type($event_id) == 'eventer' && $booking_calendar == 'on') ? '<input type="input" id="eventer-future-bookings" data-time="asdasdf" class="datepicker" style="display:none;" />' : '';
      if($time_slot_values){	
       	echo '<label>'.esc_html__('Select Booking Slot', 'eventer').'</label>';
      	echo $time_slot_values;	
	  }
      echo '<ul class="eventer-tickets-info">';
      foreach ($show_tickets_info as $ticket) {
        $remaining_for_reg = $remaining_booked = '';
        $wceventer_ticket_id = (isset($ticket['wceventer_ticket_id'])) ? $ticket['wceventer_ticket_id'] : '';
        if (get_post_type($wceventer_ticket_id) != 'product' || get_post_status($wceventer_ticket_id) != 'publish') continue;
        $ticket_name = get_the_title($wceventer_ticket_id);
        $sold_individually = get_post_meta($wceventer_ticket_id, '_sold_individually', true);
        $eventer_maximum_tickets_count = ($sold_individually == 'yes') ? 1 : $eventer_maximum_tickets_count;
        $product = wc_get_product($wceventer_ticket_id);
        $woocommerce_currency = get_woocommerce_currency_symbol();
        $raw_price = number_format($product->get_price(), 2);
        $ticket_regular_price = $product->get_regular_price();
        $show_old_price = ($currency_position != 'postfix') ? $woocommerce_currency . $ticket_regular_price : $ticket_regular_price . $woocommerce_currency;
        $old_price = ($raw_price != $ticket_regular_price) ? '<del class="eventer-price-currency">' . $show_old_price . '</del> ' : '';
        $new_booked_tickets_key = eventer_search_ticket($ticket_name, $booked_tickets, 0, $wceventer_ticket_id);
        $exact_ticket_find = (isset($booked_tickets[$new_booked_tickets_key])) ? $booked_tickets[$new_booked_tickets_key] : array();
        if (!empty($exact_ticket_find)) {
          $pid = (isset($exact_ticket_find['pid'])) ? $exact_ticket_find['pid'] : '';
          if ($pid == $wceventer_ticket_id || $exact_ticket_find['name'] == $ticket_name) {
            $ticket_name = esc_attr($exact_ticket_find['name']);
            $remaining_booked = esc_attr($exact_ticket_find['tickets']);
            $raw_price = ($exact_ticket_find['price'] != '') ? number_format($exact_ticket_find['price'], 2) : number_format($raw_price, 2);
          }
        }
        if (in_array($ticket_name, $all_tickets_name)) {
          $check_duplicate = "1";
          continue;
        }
        $all_tickets_name[] = $ticket_name;
        $ticket_number = (isset($ticket['wceventer_ticket_number']) && $remaining_booked == '') ? $ticket['wceventer_ticket_number'] : $remaining_booked;

        $ticket_price = ($currency_position != 'postfix') ? $old_price . $woocommerce_currency . $raw_price : $old_price . $raw_price . $woocommerce_currency;
        $remaining_tickets = ($ticket_number <= 0) ? '<i class="eventer-ticket-remaining eventer-ticket-full">' . esc_html__('All Booked', 'eventer') . '</i>' : '<i class="eventer-ticket-remaining" data-tickets="' . $ticket_number . '">' . $ticket_number . ' ' . esc_html__('remaining', 'eventer') . '</i>';
        if ($ticket_number > 0) {
          $remaining_for_reg = 1;
        }
        $remain_for_booking = ($ticket_number > $eventer_maximum_tickets_count) ? $eventer_maximum_tickets_count : $ticket_number;
        $btn_txt = esc_html__('Add to cart', 'eventer');
        $added_cart = esc_html__('Added to cart', 'eventer');
        if ($bookingClsoed != 1) {
          echo '<li data-btntxt="' . esc_attr($btn_txt) . '" data-addedcart="' . esc_attr($added_cart) . '" data-currency="' . $woocommerce_currency . '" data-price="' . esc_attr($raw_price) . '" data-product="' . esc_attr($wceventer_ticket_id) . '" data-eventer="' . $event_id . '" data-multi="' . esc_attr($multi_state) . '"  data-edate="' . $event_cdate . '" data-eventerurl="' . esc_url(eventer_generate_endpoint_url('edate', $eventer_formatted_date, get_permalink($event_id))) . '" data-etime="' . date_i18n(get_option('time_format'), strtotime($time_slot)) . '" data-allday="' . esc_attr($allday) . '">';
        }

        if ( $aviable_tickets === 'yes' ) {
          $remaining_tickets = '';
        }
        
        if (date_i18n('Y-m-d') <= $eventer_formatted_date) {
          echo '<div class="eventer-wc-ticket-table"><div>
								<div class="eventer-wc-ticket-col"><span class="eventer-ticket-type-name">' . $ticket_name . ' ' . $remaining_tickets . '</span></div>
								<div class="eventer-wc-ticket-col"><span class="eventer-wc-ticket-price eventer-ticket-type-price">' . $ticket_price . '</span></div>';

          if ($remaining_for_reg == 1 && $bookingClsoed != 1) {
            echo '<div class="eventer-wc-ticket-col"><select class="eventer-wc-ticket-quantity">';
            for ($start = 1; $start <= $remain_for_booking; $start++) {
              echo '<option value="' . $start . '">' . $start . '</option>';
            }
            echo '</select></div>';
            echo '<div class="eventer-wc-ticket-col">
								<div class="eventer-wc-addtocart"><input type="button" class="eventer-btn add-ticket-wc" value="' . esc_attr($btn_txt) . '">
											<!-- <span class="eventer-wc-ticket-total"></span> -->
											<span class="eventer-wc-ticket-added"></span></div></div>';
          }

          echo '</div></div>';
        } else {
          esc_html_e('Sorry, Event passed', 'eventer');
        }
        echo '</li>';
      }
      echo '</ul><div style="padding-top: 10px;">' . $ticket_enabled_date . '</div></div>';
    }
    if (get_post_type($event_id) == 'eventer') {
      ?>
      <a href="<?php echo esc_url($booking_url); ?>" target="<?php echo esc_attr($booking_url_target); ?>" class="eventer-btn eventer-btn-primary"><?php esc_html_e('View cart', 'eventer'); ?></a>
    <?php } ?>
  </div>
</div>

<?php
if (get_metadata('post', $event_id, 'eventer_time_slots_mandatory', true)):
	$mandatory_timeslot = get_post_meta($event_id, 'eventer_time_slots_mandatory', true);

	if ($mandatory_timeslot == 'on'):
?>
	<script type="text/javascript">
		jQuery(document).ready(function( $ ){
			function checkTimeSlot(event) {
				var $time = $("select.eventer-time-slot");
				if ( ! $time.length ) {
					return false;
				}

				var url = window.location.href;

				if ($time.val() === "00:00:00" && url.indexOf('checkout_show') === -1) {
					var url = $(event.currentTarget).attr("href");
					event.currentTarget.href = "#";
					event.stopPropagation();
					event.preventDefault();
					$time.addClass("eventer-required-field");
				}
			}

			$('.eventer.eventer-event-single .eventer-ticket-details-wrap a.eventer-btn.eventer-btn-primary, .eventer-btn.add-ticket-wc').on('click', function( e ) {
				checkTimeSlot(e);
			});
		});
	</script>
<?php
	else: ?>

	<?php
	endif;
else: ?>
	<script type="text/javascript">
		jQuery(document).ready(function( $ ){
			function checkTimeSlot(event) {
				var $time = $("select.eventer-time-slot");
				if ( ! $time.length ) {
					return false;
				}

				var url = window.location.href;

				if ($time.val() === "00:00:00" && single.mandatory_timeslot === "on" && url.indexOf('checkout_show') === -1) {
					var url = $(event.currentTarget).attr("href");
					event.currentTarget.href = "#";
					event.stopPropagation();
					event.preventDefault();
					$time.addClass("eventer-required-field");
				}
			}

			$('.eventer.eventer-event-single .eventer-ticket-details-wrap a.eventer-btn.eventer-btn-primary, .eventer-btn.add-ticket-wc').on('click', function( e ) {
				checkTimeSlot(e);
			});
		});
	</script>
<?php
endif; ?>