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

实现这一目标的最佳方法是什么?该字段的名称为"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 );
} 如何从db表posts 2746中获得值?
我好像没办法让它起作用。
发布于 2020-07-02 23:17:07
您不需要函数中的meta ID,所以在您的函数代码中有:
$order->update_meta_data( 'sagecustomer', $some_value ); 但是你需要从某个地方得到
$some_value…
这是关于post元数据的,而不是post数据,因此相关的数据库表是wp_postmeta for orders…。
如果您需要的数据来自用户元数据,则代码将有所不同,例如:
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');
$value = get_post_meta($order_id, 'sagecustomer', true);
的WC_Order对象
https://stackoverflow.com/questions/62664472
复制相似问题