woocommerce - WC_CREATE 未设置帐单或送货地址
问题描述
我正在尝试创建一个新订单,我的代码如下
{
$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.我需要自定义字段,例如(首选取货日期),如何将该字段作为元数据添加到该订单
3.如何获取新创建的order_id 即成功或错误
- 如何将优惠券附加到该总数
解决方案
1、您需要使用$order->save();
来保存您对订单所做的更新。
2、使用$order->update_meta_data( 'meta_field', $data );
不要忘记$order->save();
$order
3,你从via获取id$order->get_id();
4,没有尝试优惠券,但我相信你会解决的。
推荐阅读
- excel - 目标工作表在布局视图中时 VBA 慢
- azure - 使用 nuget restore 最新版本在 devops 管道中构建问题
- typescript - 如何仅从接口联合中的一种类型继承属性
- json - 胶水爬虫读取 Json 数组
- c# - 没有这样的主机是已知的 - 公共交通 - Azure 服务总线
- angular - 订阅时出现错误您在预期流的位置提供了“未定义”。您可以提供 Observable、Promise、Array 或 Iterable
- javascript - 每 x 秒播放一次声音(循环)
- javascript - 视图更改时反应导航和状态栏颜色闪烁
- flask - 如何在不使用表单的情况下向 Flask 中的数据库添加值?
- c# - CultureInfo.InstalledUICulture vs Thread.CurrentThread.CurrentUICulture vs regional settings