在 WooCommerce 中,我想添加一个新的自定义字段来订单详细信息。现在我可以使用下面的代码创建一个新的自定义字段“referenceNumber”并在其中添加“ordercreated”值:
update_post_meta($order_id, 'referenceNumber', 'ordercreated']);
我想要的是在下订单后通过结帐来进行。
但它不起作用,它不会向订单详细信息页面添加新的自定义字段,也不会添加值“ordercreated”,正如您在此屏幕截图中看到的:
那么问题是在 WooCommerce 下订单时如何添加自定义字段?
要将自定义字段添加到订单中,您可以使用:
-
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()
method (来自订单对象或订单 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
Where referenceNumber
is the meta key and ordercreated
is the 元值。两者都有效。
现在向订单添加自定义字段当客户下订单时, 您可以使用:
-
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)
}
Or:
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 文件中。经过测试并有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)