我正在使用 Woothemes Woocommerce 预订。我希望用户能够在产品预订日期选择器中输入日期,并让系统在该日期前三周进行预订。例如,客户使用日期选择器选择 28/04/2018(2018 年 4 月 28 日),但预订日期为 07/04/2018(2018 年 4 月 7 日)。
所有预订均以 5 周(35 天)为单位进行,但他们输入的日期会导致其预订在该日期之前 3 周(21 天)和之后 2 周(14 天)。客户只选择一个日期,没有开始和结束日期供他们选择。
我正在使用 Woothemes Woocommerce 预订。我希望用户能够在产品预订日期选择器中输入日期,并让系统在该日期前三周进行预订。例如,客户使用日期选择器选择 28/04/2018(2018 年 4 月 28 日),但预订日期为 07/04/2018(2018 年 4 月 7 日)。
所有预订均以 5 周(35 天)为单位进行,但他们输入的日期会导致其预订在该日期之前 3 周(21 天)和之后 2 周(14 天)。客户只选择一个日期,没有开始和结束日期供他们选择。
该文档引用了一个称为钩子的钩子woocommerce_new_booking
,您可以使用该钩子在预订日期保存到数据库之前对其进行修改。此代码会将预订开始和结束日期修改为他们选择的日期前 3 周。将此代码添加到您的functions.php文件中。
add_action( 'woocommerce_new_booking', 'modify_woocommerce_booking_date');
function modify_woocommerce_booking_date( $booking_id ) {
$booking = new WC_Booking( $booking_id );
$booking_start = $booking->get_start();
$booking_end = $booking->get_end();
$new_booking_start = strtotime ( '-3 week' , $booking_start ) ;
$new_booking_end = strtotime ( '-3 week' , $booking_end ) ;
$booking->set_start( $new_booking_start );
$booking->set_end($new_booking_end);
$booking->save();
}