101 lines
3.8 KiB
PHP
101 lines
3.8 KiB
PHP
<?php
|
|
class Elementor_Apartment_Search_Results extends \Elementor\Widget_Base {
|
|
|
|
public function get_name() {
|
|
return 'Apartment search results';
|
|
}
|
|
|
|
public function get_title() {
|
|
return esc_html__( 'Apartment search results', 'elementor-addon' );
|
|
}
|
|
|
|
public function get_icon() {
|
|
return 'eicon-site-search';
|
|
}
|
|
|
|
public function get_categories() {
|
|
return [ 'basic' ];
|
|
}
|
|
|
|
public function get_keywords() {
|
|
return [ 'apartment', 'search results', 'results' ];
|
|
}
|
|
|
|
protected function render() {
|
|
|
|
$reservation_dates = $_GET['reservation_dates'];
|
|
$dates = explode(' do ', $reservation_dates);
|
|
$start_date = date( 'Y-m-d', strtotime( str_replace( 'Od ', '', $dates[0] ) ) );
|
|
$end_date = date( 'Y-m-d', strtotime( $dates[1] ) );
|
|
?>
|
|
|
|
<?php if ( $start_date and $end_date ):?>
|
|
<div class="e-con e-flex">
|
|
<div class="e-con-inner">
|
|
<div id="search-results">
|
|
<h1>Wyniki wyszukiwania</h1>
|
|
<div id="search-apartments-results">
|
|
<p>Pobieranie wyników...</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
jQuery(document).ready(function($) {
|
|
var startDate = '<?php echo $start_date; ?>';
|
|
var endDate = '<?php echo $end_date; ?>';
|
|
|
|
var reservedDays = [];
|
|
var startDateObj = new Date(startDate);
|
|
var endDateObj = new Date(endDate);
|
|
|
|
while (startDateObj <= endDateObj) {
|
|
reservedDays.push(startDateObj.getTime());
|
|
startDateObj.setDate(startDateObj.getDate() + 1);
|
|
}
|
|
|
|
$.ajax({
|
|
url: '<?php echo site_url("/custom-api.php"); ?>',
|
|
method: 'POST',
|
|
contentType: 'application/json',
|
|
data: JSON.stringify({
|
|
id: 0,
|
|
reserved_days: reservedDays
|
|
}),
|
|
success: function(data) {
|
|
var apartmentsContainer = $('#search-apartments-results');
|
|
apartmentsContainer.empty();
|
|
|
|
|
|
console.log(data);
|
|
|
|
try {
|
|
var apartments = JSON.parse(data);
|
|
|
|
if (Array.isArray(apartments) && apartments.length > 0) {
|
|
apartments.forEach(function(room) {
|
|
var roomHtml = '<div class="room">';
|
|
roomHtml += `<a href="${room.url}"><img src="${room.room_thumb}" /></a>`;
|
|
roomHtml += `<h3><a href="${room.url}">${room.name}</a></h3>`;
|
|
roomHtml += `<p>Cena: ${room.price} zł</p>`;
|
|
roomHtml += '</div>';
|
|
apartmentsContainer.append(roomHtml);
|
|
});
|
|
} else {
|
|
apartmentsContainer.html('<p>Brak dostępnych apartamentów w wybranym terminie.</p>');
|
|
}
|
|
} catch (e) {
|
|
apartmentsContainer.html('<p>Wystąpił błąd podczas przetwarzania danych.</p>');
|
|
}
|
|
},
|
|
error: function() {
|
|
$('#search-apartments-results').html('<p>Wystąpił błąd podczas przetwarzania żądania.</p>');
|
|
}
|
|
});
|
|
});
|
|
</script>
|
|
<? endif; ?>
|
|
<?php
|
|
}
|
|
}
|