首页 > 解决方案 > wc_create_order 制作重复

问题描述

我正在编写一个批处理来从名为 tbl_bankimport 的 mysql 表中导入一些订单:

$bankrecs = $wpdb->get_results("Select * from tbl_bankimport");

foreach ($bankrecs as $bankrec) {
   $order = wc_create_order(array(['customer_id' => $bankrec->user_id]));
   echo "Order " . $order->id . "created </br>";
}

在我的测试文件中,我有 47 条记录,当我运行它时,我在屏幕上回显了 47 条订单。但我最终在 woocommerce 中获得了 94 条记录!

如果我清除订单替换这个:

$order = wc_create_order(array(['customer_id' => $bankrec->user_id]));

$order = wc_create_order(array(['customer_id' => 7072]));

然后重新运行,我输入了 47 条记录。

困惑和迷惑!

标签: woocommerce

解决方案


从数据数组中排除 customer_id 并像这样添加它:

update_post_meta($order->id, '_customer_user', bankrecs->user_id);

似乎是一个解决方案。


推荐阅读