WooCommerce特定用户角色创建订单添加客户备注位置异常咨询
WooCommerce特定用户角色订单自动添加客户备注解决方案
问题原因
你之前的代码未达预期有两个核心问题:
add_order_note()是用于添加后台订单操作备注的方法,即便设置第二个参数为true,也只是标记该备注对客户可见,依旧不属于结算页对应的「客户附言/备注」字段,不会显示在收货地址下方add_order_note()的第二个参数是布尔值,你传入字符串'is_customer_note'属于参数格式错误,本身就无法生效
解决代码
直接修改为写入WooCommerce原生客户备注字段即可,完整优化后的代码如下:
add_action( 'woocommerce_new_order', 'add_customer_note_user_role', 10, 1 ); function add_customer_note_user_role( $order_id ) { $user_id = get_current_user_id(); // 未登录用户直接跳过 if ( !$user_id ) return; $user_info = get_userdata( $user_id ); // 优化角色判断逻辑:兼容多角色用户,避免只取第一个角色导致的判断失效 if ( in_array( 'administrator', $user_info->roles ) ) { $order = wc_get_order( $order_id ); if ( !$order ) return; // 自定义备注内容 $note = 'This is the message'; // 直接设置订单的客户备注字段 $order->set_customer_note( $note ); // 保存数据 $order->save(); } }
效果说明
修改后设置的内容会直接写入WooCommerce原生客户备注字段,默认展示在订单详情页收货地址下方,对接ERP的API抓取customer_note字段即可正常获取该值完成同步。
内容的提问来源于stack exchange,提问作者Robbert Vos
相关产品推荐
相关产品推荐

