首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将自定义用户字段传递给WooCommerce订单元数据

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

Stack Overflow用户
提问于 2020-06-30 19:03:31
回答 1查看 670关注 0票数 1

我正在建立一个Woo网站,将与Sage X3 ERP系统集成。我们将把新的订单传递给Sage。现在,我希望为每个客户添加一个自定义ID字段,并且我能够通过ACF插件实现这一点。现在,我只需要找到一种将ID推入订单元数据的方法,以便Sage能够正确地识别客户。

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

编辑:

我感觉自己越来越接近了,因为我看到了基于以下代码的元序中的'sagecustomerid‘:

代码语言:javascript
复制
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 ); 
} 

如何从db表posts 2746中获得值?

我好像没办法让它起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-02 23:17:07

您不需要函数中的meta ID,所以在您的函数代码中有:

代码语言:javascript
复制
$order->update_meta_data( 'sagecustomer', $some_value );  

但是你需要从某个地方得到$some_value

这是关于post元数据的,而不是post数据,因此相关的数据库表是wp_postmeta for orders…。

如果您需要的数据来自用户元数据,则代码将有所不同,例如:

代码语言:javascript
复制
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‘的元值:

使用:$value = $order->get_meta('sagecustomer');

  • The order ID ($order_id)使用:$value = get_post_meta($order_id, 'sagecustomer', true);

WC_Order对象

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62664472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档