一旦客户下了订单,我就无法将一天的部分预订日期更改为完全预订...我想每天只允许一个预订,但必须有选择任何小时的选项起始时间(上午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定位符能够满足我删除{{1} }类。结果:娜达!
如果我可以取消可预订的课程,那我很好。如果另一位客户预订了任何时间段(最小时间段为四个小时),我们只是不希望任何人选择一天。
希望如此简单:
bookable
答案 0 :(得分:0)
这是解决方法。
/**
* Use inline style to show booked whole day
* woocommerce_booking_form_get_posted_data
* top:87vh;width:502%;z-index:9;box-shadow: 0 15px 20px rgba(0,0,0,.25);
* @param string $end_date
* @return array
*/
add_action( 'wp_enqueue_scripts', 'codeoctober_inline_public_script' );
function codeoctober_inline_public_script()
{
$day_booked = true; //codeoctober_booking_day_booked_meta();
if( $day_booked == true ) {
$htm = '';
$htm .= '.single.single-product td.partial_booked[data-event="click"] *, .single.single-product td.partial_booked{-webkit-touch-callout: none;-webkit-user-select: none;-khtml-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none; pointer-events: none; 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 );
}
}
然后为事件定制消息:
/**
* Woo booking form notices
* booking_formparams
*
* @param string $ajax inclusion
* @return array
*/
add_filter( 'booking_form_params', 'codeoctober_change_partbooking_form_params' );
function codeoctober_change_partbooking_form_params( $booking_form_params ) {
$booking_form_params = array('ajax_url' => WC()->ajax_url(),
'i18n_date_partially_booked' => __('This date is unavailable', 'woocommerce-bookings'),
'i18n_start_date' => __('Choose a Start Date', 'woocommerce-bookings'),
'i18n_end_date' => __('Choose an End Date', 'woocommerce-bookings'),
'i18n_dates' => __('Dates', 'woocommerce-bookings'),
'i18n_choose_options' => __('Please select the options for your booking above first', 'woocommerce-bookings'));
/*wp_localize_script('wc-bookings-booking-form', 'booking_form_params',
apply_filters('booking_form_params', $booking_form_params));
*/
return $booking_form_params;
}