';
}
// Получаем текущую цену
var priceElement = container.find('.total_price span');
if (priceElement.length) {
var priceText = priceElement.text();
var price = parseFloat(priceText.replace(/[^0-9.]/g, ''));
var currency = priceText.replace(price, '');
// Рассчитываем исходную цену и экономию
var originalPrice = price * 100 / (100 - percent);
originalPrice = Math.round(originalPrice * 100) / 100;
var savings = originalPrice - price;
savings = Math.round(savings * 100) / 100;
discountInfoHtml += '
Вы экономите: ' + savings + currency + '
';
// Обновляем отображение цены
priceElement.html('' + originalPrice + currency + '' + price + currency + '');
}
discountInfoHtml += '';
// Находим блок для вывода информации о скидке
var discountBlock = $('.tm-booking-price-discount');
if (discountBlock.length) {
// Выводим информацию о скидке в специальный блок
discountBlock.html(discountInfoHtml);
} else {
// Если блок не найден, выводим перед итоговой ценой
var totalPriceLabel = container.find('.total_price_label');
if (totalPriceLabel.length) {
// Удаляем существующий блок с информацией о скидке, если он есть
container.find('.discount-info-block').remove();
// Вставляем новый блок
totalPriceLabel.before(discountInfoHtml);
}
}
} else {
// Если скидки нет, очищаем блок
$('.tm-booking-price-discount').empty();
}
}
// Обработчик события изменения дат
$(document).on('change', '.tm_booking_date', function() {
var container = $(this).closest('form');
var postId = container.data('id');
// Ждем, пока обновится цена
setTimeout(function() {
// Получаем количество дней
var days = parseInt(container.find('.diff' + postId).val()) || 0;
// Получаем информацию о скидках через AJAX
$.ajax({
url: tm_booking_ajax.url,
type: 'POST',
data: {
action: 'get_discount_info',
post_id: postId,
days: days
},
success: function(response) {
if (response.success && response.data) {
displayDiscountInfo(
container.find('.tm_price_total'),
days,
response.data.percent,
response.data.description
);
}
}
});
}, 1000); // Ждем 1 секунду, чтобы дать время для обновления цены
});
// Также обрабатываем событие обновления цены
$(document).ajaxComplete(function(event, xhr, settings) {
if (settings.url.indexOf('tmbooking_change_total') > -1) {
var data = settings.data;
var match = data.match(/id=(\d+)/);
if (match && match[1]) {
var postId = match[1];
var container = $('.booking_form' + postId);
// Получаем количество дней
var days = parseInt(container.find('.diff' + postId).val()) || 0;
// Получаем информацию о скидках через AJAX
$.ajax({
url: tm_booking_ajax.url,
type: 'POST',
data: {
action: 'get_discount_info',
post_id: postId,
days: days
},
success: function(response) {
if (response.success && response.data) {
displayDiscountInfo(
container.find('.tm_price_total'),
days,
response.data.percent,
response.data.description
);
}
}
});
}
}
});
});