我使用WooCommerce Bookings和AJAX请求构建了一个网站,该网站处理付款、创建和订购,最后使用订单ID创建预订。然而,当我通过WooCommerce Bookings创建方法发送新创建的订单ID时,订单不会出现在预订中,我必须手动连接它们。
$order = wc_create_order();
$product = wc_get_product($productId);
$price = $product->get_price();
$order->add_product( $product, 1 );
$order->set_total( $price );
update_post_meta($order->id, \'_customer_user\', get_current_user_id() );
$order->update_status( \'completed\' );
$new_booking_data = array(
\'product_id\' => $productId,
\'start_date\' => strtotime($startStr),
\'end_date\' => strtotime($endStr),
\'user_id\' => $user_ID,
\'order_item_id\' => $order->id, // Seems to be an issue here.
\'persons\' => $amountOfPeople,
\'cost\' => $orderTotal,
\'all_day\' => false,
);
$returnVal = create_wc_booking( $productId, $new_booking_data, \'pending-confirmation\', true );
我知道$order->id是有效的,因为我可以使用它来设置客户id。
预订插件参考:(https://docs.woothemes.com/document/creating-bookings-programatically/)
最合适的回答,由SO网友:Gerben Van Dijk 整理而成
一个小的更新(我今天遇到了这个问题):
上述解决方案不再有效。现在唯一需要做的就是设置post\\u父项:
wp_update_post(array(
\'ID\' => $booking->id,
\'post_parent\' => $order->id
));