我正在建立一个与Sage X3 ERP系统集成的Woo网站。我们将向Sage推送新订单。现在,我希望为每个客户添加一个自定义ID字段,并且能够使用ACF插件来完成此操作。现在,我只需要找到一种方法即可将该ID推送到订单元数据中,以便Sage可以正确识别客户。
做到这一点的最佳方法是什么?该字段的名称为“ Sage X3客户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 );
}
如何从数据库表ID 2746中获取值?
我似乎无法正常工作。
您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');
$value = get_post_meta($order_id, 'sagecustomer', true);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句