답변

0

최근에 동일한 문제가 발생했지만 해결책을 발견했습니다.

// woocommerce-bookings/includes/class-wc-booking-cart-manager.php : ln 256 
$booking_form      = new WC_Booking_Form($product); 
$cart_item_meta['booking']   = $booking_form->get_posted_data($_POST); 
$cart_item_meta['booking']['_cost'] = $booking_form->calculate_booking_cost($_POST); 

// Create the new booking 
$new_booking = $this->create_booking_from_cart_data($cart_item_meta, $product_id); 
: WooCommerce 예약하면 플러그인의 소스에서 볼 수있는 데이터가 POST 방법을 통해 전송 될 것으로 예상하고 있기 때문에

그것은 단지 URL의 끝에 올바른 변수를 추가하여 예약 가능한 제품을 추가 할 수 없습니다

과 대신이의

// woocommerce-bookings/includes/class-wc-booking-cart-manager.php : ln 276 
private function create_booking_from_cart_data($cart_item_meta, $product_id, $status = 'in-cart') { 
    // Create the new booking 
    $new_booking_data = array(
     'product_id' => $product_id, // Booking ID 
     'cost'   => $cart_item_meta['booking']['_cost'], // Cost of this booking 
     'start_date' => $cart_item_meta['booking']['_start_date'], 
     'end_date'  => $cart_item_meta['booking']['_end_date'], 
     'all_day'  => $cart_item_meta['booking']['_all_day'], 
    ); 

:

<a href="/?add-to-cart=product_id">Add to cart</a> 
,

'장바구니에 추가'버튼/링크를 제출 버튼과 함께 여러 숨겨진 필드가있는 양식을 만들어야합니다. 이 같은

뭔가 :

<form method="post" action="/"> 
    <input type="hidden" name="add-to-cart" value="product_id"> 
    <input type="hidden" name="wc_bookings_field_start_date_year" value="booking_start_date_year"> 
    <input type="hidden" name="wc_bookings_field_start_date_month" value="booking_start_date_month"> 
    <input type="hidden" name="wc_bookings_field_start_date_day" value="booking_start_date_day"> 
    <button type="submit">Add to cart</button> 
</form> 
관련 문제