将自定义用户字段传递给 WooCommerce 订单元数据

我正在建立一个 Woo 网站,该网站将与 Sage X3 ERP 系统集成。我们将把新订单推送给 Sage。现在,我希望为每个客户添加自定义 ID 字段,并且我能够使用 ACF 插件来完成此任务。现在我只需要找到一种方法将该 ID 推送到订单元数据,以便 Sage 可以正确识别客户。

http://img3.mukewang.com/64a914a10001870604160200.jpg

实现这一目标的最佳方法是什么?该字段的名称是“Sage X3 Customer ID”,键是“sagecustomerid”。任何帮助,将不胜感激。


编辑:


我觉得我已经接近了,因为我现在基于以下代码在订单元中看到“sagecustomerid”:


add_action( 'woocommerce_checkout_create_order', 'before_checkout_create_order', 10, 2 ); 

function before_checkout_create_order( $order, $data ) { 

    $order->update_meta_data( 'sagecustomerid', '$value', $meta_id = 2746 ); 

如何从数据库表 posts ID 2746 获取值?


我似乎无法让它发挥作用。


达令说
浏览 91回答 1
1回答

绝地无双

meta ID您的函数中不需要,因此在您的函数代码中您将拥有:$order->update_meta_data( 'sagecustomer', $some_value );但你需要$some_value从某个地方出发……这是关于帖子元数据,但不是帖子数据,所以相关的数据库表是wp_postmeta针对订单的......如果您需要的数据来自用户元数据,则代码会有点不同,例如:add_action( 'woocommerce_checkout_create_order', 'before_checkout_create_order', 10, 2 ); function before_checkout_create_order( $order, $data ) {     if ( $value = get_user_meta( $order->get_user_id(), 'sagecustomerid', true ) ) {        $order->update_meta_data( 'sagecustomer', $value );     } } 完成后,您将能够从以下位置获取“sagecustomer”元值:对象WC_Order使用:$value = $order->get_meta('sagecustomer');订单 ID ($order_id) 使用:$value = get_post_meta($order_id, 'sagecustomer', true);
打开App,查看更多内容
随时随地看视频慕课网APP