Php 在WooCommerce 3+;

Php 在WooCommerce 3+;,php,wordpress,woocommerce,custom-fields,orders,Php,Wordpress,Woocommerce,Custom Fields,Orders,在WooCommerce中,我想在订单详细信息中添加一个新的自定义字段。现在,我可以使用下面的代码创建新的自定义字段“referenceNumber”,并在其中添加“ordercreated”值: 我想做的是通过结帐,一旦下了订单 但它不起作用它不会向订单详细信息页面添加新的自定义字段,也不会添加“ordercreated”值,正如您在本屏幕截图中看到的: 所以问题是,当在WooCommerce下订单时,如何添加自定义字段?嗨,几天前我有一个类似的要求,因为我需要在结帐时添加新字段。下面的文章

在WooCommerce中,我想在订单详细信息中添加一个新的自定义字段。现在,我可以使用下面的代码创建新的自定义字段“referenceNumber”,并在其中添加“ordercreated”值:

我想做的是通过结帐,一旦下了订单

但它不起作用它不会向订单详细信息页面添加新的自定义字段,也不会添加“ordercreated”值,正如您在本屏幕截图中看到的:


所以问题是,当在WooCommerce下订单时,如何添加自定义字段?

嗨,几天前我有一个类似的要求,因为我需要在结帐时添加新字段。下面的文章帮助了我。你也可以检查一下。这里是链接。基本上,您将拥有一个write a函数,该函数将使用woo commerce hook“woo commerce\u default\u address\u fields”

要在订单中添加自定义字段,您可以使用:

  • WordPress
    update\u post\u meta()
    函数(来自订单id):

  • WooCommerce
    WC\u Data
    update\u meta\u Data()
    方法(从订单对象或订单id):

其中
referenceNumber
元键
ordercreated
元值。两者都有效


现在,要在客户下订单时向订单添加自定义字段,可以使用:

  • woocommerce\u checkout\u create\u order
    操作挂钩(保存订单数据之前-用于在保存订单数据之前调整订单数据):

  • woocommerce\u checkout\u update\u order\u meta
    action hook(订单已存在-用于添加自定义元数据):

  • woocommerce\u checkout\u order\u已创建
    action hook(订单已存在-用于触发操作或添加自定义元数据):

    或:


代码进入活动子主题(或活动主题)的functions.php文件。已测试并正常工作。

非常感谢您,但我们与结帐无关,它与将支付网关的数据保存到订单详细信息有关
update_post_meta($order_id, 'referenceNumber', 'ordercreated']);
$order_id = $order->get_id(); // If needed

update_post_meta($order_id, 'referenceNumber', 'ordercreated'); // add and save the custom field
$order = wc_get_order( $order_id ); // If needed: Get the WC_Order object from the order Id

update_meta_data('referenceNumber', 'ordercreated'); // Add the custom field

$order->save(); // Save the data
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' );
}
add_action( 'woocommerce_checkout_create_order', '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_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');
}