亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 WooCommerce 3+ 中向訂單添加自定義字段

在 WooCommerce 3+ 中向訂單添加自定義字段

PHP
汪汪一只貓 2024-01-19 10:26:16
在 WooCommerce 中,我想添加一個新的自定義字段來訂單詳細信息?,F在我可以使用下面的代碼創建一個新的自定義字段“referenceNumber”并在其中添加“ordercreated”值:update_post_meta($order_id, 'referenceNumber', 'ordercreated']);我想要的是在下訂單后通過結帳來進行。但它不起作用,它不會向訂單詳細信息頁面添加新的自定義字段,也不會添加值“ordercreated”,正如您在此屏幕截圖中看到的:那么問題是在 WooCommerce 下訂單時如何添加自定義字段?
查看完整描述

2 回答

?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

要將自定義字段添加到訂單中,您可以使用:


WordPressupdate_post_meta()函數(來自訂單 ID):


$order_id = $order->get_id(); // If needed


update_post_meta($order_id, 'referenceNumber', 'ordercreated'); // add and save the custom field

WooCommerceWC_Data update_meta_data()方法(來自訂單對象或訂單 ID):


$order = wc_get_order( $order_id ); // If needed: Get the WC_Order object from the order Id


$order->update_meta_data('referenceNumber', 'ordercreated'); // Add the custom field


$order->save(); // Save the data

其中referenceNumber是元鍵,ordercreated是元值。兩者都有效。


現在,要在客戶下訂單時向訂單添加自定義字段,您可以使用:


woocommerce_checkout_create_order操作掛鉤(保存訂單數據之前 - 用于在保存訂單數據之前調整訂單數據):


add_action( 'woocommerce_checkout_create_order', 'add_custom_field_on_placed_order', 10, 2 );

function add_custom_field_on_placed_order( $order, $data ){

    $order->update_meta_data( 'referenceNumber', 'ordercreated' );

}

woocommerce_checkout_update_order_meta 操作掛鉤(訂單已存在 - 用于添加自定義元數據):


add_action( 'woocommerce_checkout_update_order_meta', 'add_custom_field_on_placed_order', 10, 2 );

function add_custom_field_on_placed_order( $order_id, $data ){

    update_post_meta($order_id, 'referenceNumber', 'ordercreated');

}

woocommerce_checkout_order_created 操作掛鉤(訂單已存在 - 觸發操作或添加自定義元數據):


add_action( 'woocommerce_checkout_order_created', 'add_custom_field_on_placed_order', 10, 2 );

function add_custom_field_on_placed_order( $order_id, $data ){

    $order->update_meta_data( 'referenceNumber', 'ordercreated' ); // Add the custom field

    $order->save(); // Save data (as order exist yet)

}

或者:


add_action( 'woocommerce_checkout_order_created', 'add_custom_field_on_placed_order' );

function add_custom_field_on_placed_order( $order ){

    update_post_meta($order->get_id(), 'referenceNumber', 'ordercreated');

}

代碼位于活動子主題(或活動主題)的functions.php 文件中。經過測試并有效。


查看完整回答
反對 回復 2024-01-19
?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

您好,幾天前我有類似的要求,因為我需要在結賬時添加新字段。以下文章對我有幫助。你也可以檢查一下。鏈接在這里?;旧?,您將編寫一個函數,該函數將使用 woocommerce 掛鉤“woocommerce_default_address_fields” https://wisdmlabs.com/blog/add-custom-fields-woocommerce-checkout-page/


查看完整回答
反對 回復 2024-01-19
  • 2 回答
  • 0 關注
  • 233 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號