2017-02-15 3 views
2

Я пробовал это в течение нескольких часов, с другим кодом &, читающий каждый документ при бронировании, который я могу найти, - но я, похоже, не могу понять, как именно я это делаю ,Бронирование WooCommerce: Создать заявку на бронирование программно

Мое самое большое вдохновение исходит от WooCommerce Booking Doc, но это просто добавляет последующее бронирование в существующий заказ. Но как мне это сделать с нуля?

Я пробовал следующее, но не могу заставить его работать.

  1. сгенерировать новый порядок с:

    $address = array(
        'first_name' => 'TestFirst', 
        'last_name' => 'TestLast', 
        'company' => 'Overflow', 
        'email'  => '[email protected]', 
        'phone'  => '777-777-777-777', 
        'address_1' => '35 Main Street', 
        'address_2' => '', 
        'city'  => 'Net York', 
        'state'  => 'NY', 
        'postcode' => '2323', 
        'country' => 'US' 
    
    $order = wc_create_order(); 
    $order->set_address($address, 'billing'); 
    $order->set_address($address, 'shipping'); 
    
  2. создать бронирование по

    $new_booking_data = array(
         'start_date' => strtotime('+1 week', $prev_booking->start), // same time, 1 week on 
         'end_date' => strtotime('+1 week', $prev_booking->end), // same time, 1 week on 
         'resource_id' => $prev_booking->resource_id, // same resource 
         'parent_id' => $booking_id 
    ) 
    create_wc_booking($product_id, $new_booking_data = array(), $status =  'confirmed', $exact = false) 
    
  3. И здесь я застрял, что я должен делать? Я полагаю, что мне нужно связать идентификатор бронирования с заказом от 1. - но я не совсем уверен, как это сделать.

Что я делаю неправильно?

Спасибо.

ответ

3

В коде вы определяете этот массив первым (с отсутствующим ; в конце массива).

Тогда вместо того, чтобы использовать $new_booking_data определенных переменные просто в функции create_wc_booking(), вы назначаете ему пустой массив, который обнуляет код выше. Таким образом, вы должны установить его так же, как это:

// Defined array variable 
$new_booking_data = array(
     'start_date' => strtotime('+1 week', $prev_booking->start), // same time, 1 week on 
     'end_date' => strtotime('+1 week', $prev_booking->end), // same time, 1 week on 
     'resource_id' => $prev_booking->resource_id, // same resource 
     'parent_id' => $booking_id 
); // <= Missing ";" HERE 

// Define this variables outside your function 
$status = 'confirmed'; 
$exact = false; 

// Now you just put your variables simply like this 
create_wc_booking($product_id, $new_booking_data, $status, $exact); 

Или вы можете поместить значения тоже так:

create_wc_booking($product_id, $new_booking_data, 'confirmed', false); 

Это должно работать лучше сейчас ... Я надеюсь.

+0

Hallo спасибо за ваш комментарий, я думаю, что вы меня немного поняли - моя проблема заключалась в том, как подключить заказ WooCommerce и бронирование Woocommerce. И как дополнительный вопрос, если вы также добавляете дополнения к продуктам WooCommerce, как добавить это к продукту бронирования? – Mac

Смежные вопросы