一旦客户在当天下订单,我就无法隔离钩子以使部分预订日将日期更改为完全预订...我只想每天允许一次预订,但必须可以选择一天中的任何时间对于 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'],
);
}