Смена вида цены в зависимости от дня недели
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(); }; }