Я использую предоставленный код для программного создания заказа, который выглядит следующим образом:
$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 долл. США без продуктов в деталях заказа.