Я пытаюсь отключить определенные даты и включить только определенные дни недели в средстве выбора даты пользовательского интерфейса jQuery.
Это внутри темы Wordpress/Woocommerce, и я пытаюсь решить некоторые ошибки, но я здесь часами, пытаясь найти решение, и даже пробовал каждое решение, которое я нашел на StackOverflow и других веб-сайтах, но ничего не работает.
Моя цель - сделать доступными только выбранные дни недели, но когда дата выбрана и куплена, мне также нужно отключить ее. Я успешно отключил дни недели, которые мне нужно отключить, но я не могу сделать даже жестко запрограммированный прототип о купленных датах, которые должны быть отключены.
Код (с некоторым жестко запрограммированным образцом):
$(document).ready(function(){
var available_days = ["3"]; //it comes from the database
var today = new Date();
var tour_start_date = new Date( 1525132800000 ); //it comes from the database
var tour_end_date = new Date( 1546214400000 ); //it comes from the database
var available_first_date = tour_end_date;
var lang = 'en_UK';
lang = lang.replace( '_', '-' );
today.setHours(0, 0, 0, 0);
tour_start_date.setHours(0, 0, 0, 0);
tour_end_date.setHours(0, 0, 0, 0);
if ( today > tour_start_date ) {
tour_start_date = today;
}
function DisableDays(date) {
var day = date.getDay();
if ( available_days.length == 0 ) {
if ( available_first_date >= date && date >= tour_start_date) {
available_first_date = date;
}
return true;
}
if ( $.inArray( day.toString(), available_days ) >= 0 ) {
if ( available_first_date >= date && date >= tour_start_date) {
available_first_date = date;
}
return true;
} else {
return false;
}
}
if ( $('input.date-pick').length ) {
if ( lang.substring( 0, 2 ) != 'fa' ) {
$('input.date-pick').datepicker({
startDate: tour_start_date,
endDate: tour_end_date,
beforeShowDay: DisableDays,
language: lang
});
$('input[name="date"]').datepicker( 'setDate', available_first_date );
} else {
var date_format = $('input.date-pick').data('date-format');
$('input.date-pick').persianDatepicker({
observer: true,
format: date_format.toUpperCase(),
});
}
}
});