Files
wrapartamenty.pl/wp-content/plugins/elementor-addon/widgets/apartment-search-results.php
Roman Pyrih d6241cfa7a first commit
2024-12-19 15:27:13 +01:00

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
}
}