我正在利用提供的代码以编程方式创建订单,如下所示:
$address = array (
'first_name' => get_user_meta( $userid, 'shipping_first_name', true ),
'last_name' => get_user_meta( $userid, 'shipping_last_name', true ),
'email' => get_user_meta( $userid, 'billing_email', true ),
'phone' => get_user_meta( $userid, 'billing_phone', true ),
'address_1' => get_user_meta( $userid, 'shipping_address_1', true ),
'city' => get_user_meta( $userid, 'shipping_city', true ),
'country' => get_user_meta( $userid, 'shipping_country', true )
);
$order = wc_create_order(array('customer_id'=>$userid));
update_post_meta( $order->id, '_customer_user', $userid );
$order->set_address( $address, 'billing' );
$product = new WC_Product($proid);
$order->add_product($product,1);
$order->save();
$order->calculate_totals();
$order->update_status("Completed", 'quick buy order', TRUE);
与此有关的三个主要问题。
1)产品对象被完美提取,但是当添加到$ order时,它在订单列表中显示为数量:0总计:0
2)更改订单状态没有任何影响,它仍会创建状态为“待付款”的订单
3)如果在订单列表中更改了订单状态,则产品将从订单中完全删除,总计显示为$ 0,订单明细中没有产品。