как создать заказ программно - PullRequest
0 голосов
/ 27 октября 2019

wc_create_order выполнить более одного, записать несколько строк по порядку, я вызываю функцию удара перед обновлением сообщения

функция custom_wc_create_order _ ($ id, $ user_id) {

global $woocommerce;

$address = array(
    'first_name' => 'Remi',
    'last_name'  => 'Corson',
    'company'    => 'Automattic',
    'email'      => 'no@spam.com',
    'phone'      => '123-123-123',
    'address_1'  => '123 Main Woo st.',
    'address_2'  => '100',
    'city'       => 'San Francisco',
    'state'      => 'Ca',
    'postcode'   => '92121',
    'country'    => 'US'
);

// Now we create the order
$order = wc_create_order(array('_customer_user'=>$user_id));

// The add_product() function below is located in /plugins/woocommerce/includes/abstracts/abstract_wc_order.php
$order->add_product( get_product( $id ), 1); // Use the product IDs to add

// Set addresses
$order->set_address( $address, 'billing' );
$order->set_address( $address, 'shipping' );

// Set payment gateway
$payment_gateways = WC()->payment_gateways->payment_gateways();
$order->set_payment_method( $payment_gateways['bacs'] );

// Calculate totals
$order->calculate_totals();
$order->update_status( 'wc-completed', 'Order created dynamically - ', TRUE);

}

1 Ответ

0 голосов
/ 30 октября 2019

когда после поиска wc_create_order в исходном коде woocomerce посмотрите этот код
и при использовании этой функции у меня нормально работает

$order = new WC_Order(  );

$order->set_status( 'wc-completed' );
// Update other order props set automatically.
$order->set_customer_id( is_numeric( $user_id ) ? absint( $user_id ) : 0 );
$order->add_product( get_product( $id ), 1 );
$order->save();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...