Ошибка добавления новой позиции заказа в существующий заказ Woocommerce - PullRequest
0 голосов
/ 16 октября 2019

При использовании кода, показанного здесь, я ожидаю, что будет создан только один новый элемент заказа, который называется «Поздняя оплата». Тем не менее, когда я запускаю код 2, в заказ добавляются новые идентичные записи позиции заказа. Я не знаю, почему это происходит, и не смог понять, почему. Вы можете помочь?

Я добавил эхо в конце кода, чтобы отобразить order_item_id при запуске кода. Так как создаются 2 записи, я ожидал, что эхо выдаст 2 строки вывода с каждым новым идентификатором записи. Тем не менее, после запуска кода была отображена только одна строка, и она показала идентификатор 2-й записи. Идентификатор первой записи не был отражен.

// set variables for code simplification
$product_id = '1579';  // late fee product
$product_name = 'Late Fee';
$price = 5;
$quantity = 1;
$total = $price * $quantity;
$order_id = '1550';

// add an order item linked to a product
$order_item_id = wc_add_order_item( $order_id, array(
    'order_item_name' => $product_name,
    'order_item_type' => 'line_item', // indicates product
));
wc_add_order_item_meta( $order_item_id, '_qty', $quantity, true ); // quantity
wc_add_order_item_meta( $order_item_id, '_product_id', $product_id, true ); // ID of the product
// add "_variation_id" meta
wc_add_order_item_meta( $order_item_id, '_line_subtotal', $price, true ); // price per item
wc_add_order_item_meta( $order_item_id, '_line_total', $total, true ); // total price
// recalcuate order totals 
$order = new WC_Order( $order_id );
$order->calculate_totals();

echo 'Done: ' . $order_item_id . '<br>';  // echo order_item_id for debugging

Ниже приведены результаты запроса таблицы "wp_woocommerce_order_items", в которых показаны 2 записи. Вывод моей команды "echo" показывает только "568". Поэтому я понятия не имею, как и почему создаются 2 записи.

order_item_id order_item_name order_item_type order_id

568 Поздний сбор line_item 1550 567 Поздний сбор line_item 1550

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