WC_CREATE не устанавливает адрес выставления счета или доставки - PullRequest
0 голосов
/ 03 июня 2018

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

{
        $products = $_POST['products'];
        $shipping_address = $_POST['shipping_address'];
        $billing_address = $_POST['billing_address'];
        global $woocommerce;
        $args = array(
            'customer_id' => get_current_user_id(),
        );
        $order = wc_create_order($args);
        foreach ($products as $product) {
            $order->add_product(get_product($product['id']), $product['quantity']);
        }
        $order->set_address($shipping_address, 'shipping');
        $order->set_address($billing_address, 'billing');
        $order->calculate_totals();
        wp_send_json(array("success" => true, "order" => $order));
    }

Вопросы

1. Адрес доставки и адрес для выставления счета не обновляются.(См. Изображение).Я передаю поля как https://docs.woocommerce.com/document/tutorial-customising-checkout-fields-using-actions-and-filters/, показанные в биллинге и доставке.

2. Мне нужно иметь настраиваемое поле, например (предпочтительная дата получения), как добавить это поле как meta_data в этот заказ

3.Как получить вновь созданный order_id, т. Е. Успешно или с ошибкой

Как прикрепить купон к этой сумме

enter image description here

1 Ответ

0 голосов
/ 04 июня 2018

1, Вам нужно использовать $order->save(); для сохранения обновлений, которые вы делаете в заказе.

2, используйте $order->update_meta_data( 'meta_field', $data ); и не забудьте $order->save();

3,Вы получаете идентификатор от $order через $order->get_id();

4, не пробовали купон, но я уверен, что вы с этим справитесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...