我正在建立一个 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 ); } 如何从数据库表 posts ID 2746 获取值?我似乎无法让它发挥作用。
1 回答
绝地无双
TA贡献1946条经验 获得超4个赞
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);
- 1 回答
- 0 关注
- 84 浏览
添加回答
举报
0/150
提交
取消