在 WooCommerce 3+ 中向订单添加自定义字段
Add a custom field to an order in WooCommerce 3+
在 WooCommerce 中,我想为订单详细信息添加一个新的自定义字段。我现在可以使用下面的代码创建一个新的自定义字段 'referenceNumber' 并在其中添加“ordercreated”值:
update_post_meta($order_id, 'referenceNumber', 'ordercreated']);
我想要的是在下订单后通过结帐完成。
但它不起作用,它没有向订单详细信息页面添加新的自定义字段,也没有添加值 'ordercreated',如您在此屏幕截图中所见:
所以问题是如何在 WooCommerce 中下订单时添加自定义字段?
您好,几天前我也有类似的要求,因为我需要在结帐时添加新字段。以下文章对我有帮助。你也可以检查一下。这里是link。基本上你会写一个函数,它将使用 woo commerce hook "woocommerce_default_address_fields"
https://wisdmlabs.com/blog/add-custom-fields-woocommerce-checkout-page/
要向订单添加自定义字段,您可以使用:
WordPress update_post_meta()
函数 (来自订单 ID):
$order_id = $order->get_id(); // If needed
update_post_meta($order_id, 'referenceNumber', 'ordercreated'); // add and save the custom field
WooCommerce WC_Data
update_meta_data()
方法 (来自订单对象或订单 ID):
$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
其中 referenceNumber
是 元键 ,ordercreated
是 元值 。两者都有效。
现在要向订单添加自定义字段当客户下订单时,您可以使用:
woocommerce_checkout_create_order
action hook (订单数据保存前-用于调整订单数据保存前):
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_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' );
}
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 文件。已测试并有效。
在 WooCommerce 中,我想为订单详细信息添加一个新的自定义字段。我现在可以使用下面的代码创建一个新的自定义字段 'referenceNumber' 并在其中添加“ordercreated”值:
update_post_meta($order_id, 'referenceNumber', 'ordercreated']);
我想要的是在下订单后通过结帐完成。
但它不起作用,它没有向订单详细信息页面添加新的自定义字段,也没有添加值 'ordercreated',如您在此屏幕截图中所见:
所以问题是如何在 WooCommerce 中下订单时添加自定义字段?
您好,几天前我也有类似的要求,因为我需要在结帐时添加新字段。以下文章对我有帮助。你也可以检查一下。这里是link。基本上你会写一个函数,它将使用 woo commerce hook "woocommerce_default_address_fields" https://wisdmlabs.com/blog/add-custom-fields-woocommerce-checkout-page/
要向订单添加自定义字段,您可以使用:
WordPress
update_post_meta()
函数 (来自订单 ID):$order_id = $order->get_id(); // If needed update_post_meta($order_id, 'referenceNumber', 'ordercreated'); // add and save the custom field
WooCommerce
WC_Data
update_meta_data()
方法 (来自订单对象或订单 ID):$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
其中 referenceNumber
是 元键 ,ordercreated
是 元值 。两者都有效。
现在要向订单添加自定义字段当客户下订单时,您可以使用:
woocommerce_checkout_create_order
action hook (订单数据保存前-用于调整订单数据保存前):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_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' ); }
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 文件。已测试并有效。