WooCommerce预订:以编程方式创建预订单

问题描述 投票:2回答:2

我现在已经尝试了几个小时了,我可以找到不同的代码并阅读预订中的每个文档 - 但我似乎无法弄清楚我是如何做到的。

我最大的灵感来自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的订单相关联。 - 但我不确定如何。

我做错了什么?

谢谢。

php wordpress woocommerce orders woocommerce-bookings
2个回答
3
投票

在您的代码中,您首先定义此数组(在数组末尾缺少;)。

然后,不是简单地在函数$new_booking_data中使用create_wc_booking()定义的变量,而是为它分配一个空数组,使上面的代码为NULL。所以你必须像这样设置它:

// 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 );

这应该更好地工作......我希望。


-1
投票

我有同样的问题,我正在尝试将order_item_id添加到$new_booking_data但它不起作用。

解决方案在这里:https://wordpress.stackexchange.com/questions/222799/woocommerce-bookings-plugin-not-saving-order-id

Gerben Van Dijk是此解决方案的作者。

© www.soinside.com 2019 - 2024. All rights reserved.