我正在建立一個 Woo 網站,該網站將與 Sage X3 ERP 系統集成。我們將把新訂單推送給 Sage?,F在,我希望為每個客戶添加自定義 ID 字段,并且我能夠使用 ACF 插件來完成此任務?,F在我只需要找到一種方法將該 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 關注
- 113 瀏覽
添加回答
舉報
0/150
提交
取消