You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建订单时通过代码添加自定义订单项元数据遇阻

通过自定义钩子创建带订单项元数据的WooCommerce后台订单

我试过多种代码方案都没奏效,最终通过自定义事件调用自定义钩子及函数,实现了创建包含已有产品且带有自定义订单项元数据的订单,相关代码如下:

function create_order($product_id, $customer_phone, $customer_email, $customer_name, $extra_service_id, $extra_service_name) {
    $args = array(
        'Service ID' => $extra_service_id,
        'Service Name' => $extra_service_name
    );
    $quantity = 1;
    $product = wc_get_product($product_id);
    $order = wc_create_order();
    $order->add_product( $product, $quantity, $args);
    
    $address = array(
        'first_name' => $customer_name,
        'email'      => $customer_email,
        'phone'      => $customer_phone
    );
    $order->set_address( $address, 'billing' );
    $order->set_status( 'wc-on-hold', 'Made in back-end' );
    $order->calculate_totals();
    $order->save();
}
add_action('create_order_hook', 'create_order', 10, 6);

关键说明

  • 自定义钩子create_order_hook是触发订单创建的入口,调用时必须传入6个对应参数
  • $args数组中的内容会作为订单项的自定义元数据绑定到对应产品条目上
  • 订单默认设置为「待处理(wc-on-hold)」状态,备注标记为后台创建
  • 调用calculate_totals()会自动计算订单的税费、运费等总额,确保订单数据完整

内容的提问来源于stack exchange,提问作者Pablo Savigne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 01:20:38