2017-02-15 112 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. 在这里,我坚持,我有什么,现在怎么办?我想我必须将预订ID与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

你好,感谢你的评论,我想你有点误解我 - 我的问题是如何连接WooCommerce订单和Woocommerce预订。 另外一个问题是,如果您还添加了WooCommerce产品附加组件,那么我如何将它添加到预订产品中? – Mac