Я не могу изолировать ловушку, чтобы заставить день с частичным бронированием изменить день на день с полным заказом, как только клиент разместит заказ на этот день ... Я хочу разрешить только одно бронирование в день, но должна быть возможность выбрать любой часдня для start_time (между 8 утра и 9 вечера).
Я пробовал несколько настроек доступности в редакторе продукта, и даже при использовании приоритетов для нескольких вариантов выбора часового блока или буфера нет возможности создать вывод средства выбора даты fully_booked
после того, как клиент выберетчас они хотят забронировать.(Мы доставляем товар и можем доставить только один раз в день ... но должно быть время, чтобы выбрать время доставки, чтобы мы не могли сделать блок доступности продукта весь день "выбираемым".)
Что я пробовал:
$booking_form_params = array('ajax_url' => WC()->ajax_url(),
'i18n_date_partially_booked' => __('This date is unavailable',
'woocommerce-bookings'),
@uses add_filter( 'booking_form_params' .... );
(это отлично работает на внешнем интерфейсе, но средство выбора даты по-прежнему позволяет щелкать событие, если осталось время) Так что, конечно, я пытался:
$htm .= '.single.single-product td.partial_booked[data-event="click"] *{
pointer-events: unset; cursor:not-allowed !important;
background: #c96259!important;}';
wp_register_style( 'codeoctober-entry-set', false );
wp_enqueue_style( 'codeoctober-entry-set' );
wp_add_inline_style( 'codeoctober-entry-set', $htm );
}
@using add_action( 'wp_footer', .... ); and add_action('wp_enqueue_scripts'....);
wp_enqueue_scripts
прекрасно работает и заставляет все поле дня (td> div) календаря окрашиваться в приятный ярко-красный цвет ... Но у меня все еще есть этот противный щелчок.
Далее я попробовал: Какой-то встроенный javascript примерно с дюжиной различных мод, и каждый раз я пытался .removeClass
, .addClass()
или даже .replace(regex)
в надежде, что якорь td будетвыполни мою просьбу удалить класс bookable
.Результаты: нада!
Если бы я мог удалить забронированный класс, тогда мне пора.Мы просто не хотим, чтобы кто-либо выбирал день, если другой клиент забронировал какой-либо отрезок времени (минимальные блоки - четыре часа).
Хотелось бы, чтобы это было так просто:
add_filter( 'wc_bookings_date_picker_args', 'function-name');
function-name
{ $booked =
$wc_bookings_date_picker_args->booking_form->product->get_id() );
return array(
'partially_booked_days' => $booked['fully_booked_days'],
);
}