Смена вида цены в зависимости от дня недели
JS Код позволяет менять вид цены в зависимости от выбранного дня недели в модуле (выбор учитывает только начало бронирования). Код размещается до вставки модуля на сайт.
function filterOptionsByDate(dateStr, selectSelector) {
const [dateData,dateTime] = dateStr.split(' ');
const [day, month, year] = dateData.split('.').map(Number);
const dayAndMonth = dateData.replace(/\.\d+$/, '');
const date = new Date(year, month - 1, day);
//Список праздничных дней
const datesPrazdniki = [
// "01.05",
];
const dayOfWeek = date.getDay();
//0 - ВС, 5 и 6 пятница и суббота соотвественно
const isWeekend = dayOfWeek === 0 || dayOfWeek === 5 || dayOfWeek === 6;
document.querySelectorAll(selectSelector).forEach(select => {
Array.from(select.options).forEach(option => {
const optionText = option.text.toLowerCase();
//Праздничный день
if (datesPrazdniki.includes(dayAndMonth)){
//текст который ищется в списке вариантов
if (optionText.includes('будни')){
option.remove();
}
return true;
}
//дополнительное условие совпадения
if (isWeekend && optionText.includes('пн')) {
option.remove();
} else if (!isWeekend && optionText.includes('пт')) {
option.remove();
}
});
});
}
//модификатор
function MB_mod(MB) {
MB.afterLoadPlace = function () {
let date = document.getElementById('time_from').value;
filterOptionsByDate(date, '.mb_priceVariantSelect');
// document.querySelector('.mb_priceVariantSelect option')?.remove();
};
}