在 WooCommerce 中添加订单号作为自定义订单项元数据
Add order number as custom order item meta data in WooCommerce
我正在尝试将已下订单的订单号添加到每个订单项中。
我们正在使用订单拆分插件(https://woocommerce.com/products/split-orders/)和订单组合插件。
因此,为了能够跟踪产品的原始来源,我想在创建订单时将订单号作为元数据添加到订单项中。
我之前尝试过一些东西,比如下面的代码,但是我在尝试下订单时遇到错误:
function action_woocommerce_new_order( $order_get_id ) {
$items = $order_get_id->get_items();
foreach ( $items as $item ) {
$item->update_meta_data( 'order_nummer', $order_get_id );
$item->save_meta_data();
}
}
add_action( 'woocommerce_new_order', 'action_woocommerce_new_order', 10, 1 );
任何人都可以在正确的方向上帮助我吗?
最佳,
您没有使用正确的钩子……请尝试以下方法:
add_action('woocommerce_checkout_create_order_line_item', 'action_checkout_create_order_line_item', 10, 4 );
function action_checkout_create_order_line_item( $item, $cart_item_key, $values, $order ) {
$item->update_meta_data( 'order_number', $order->get_order_number() );
}
代码进入活动子主题(或活动主题)的 functions.php 文件。它应该更好用。
注意:如果您希望此自定义订单项元数据仅在管理订单中可见,请使用元键 _order_number
而不是 order_number
.
最后我设法让它与下面的代码一起工作:
function print_order_line_item_meta( $items, $order ) {
$order_number = $order->get_order_number();
$items = $order->get_items();
foreach ( $items as $item ) {
$item->update_meta_data( '_org_ordernummer', $order_number );
$item->save_meta_data();
}
}
add_action( 'woocommerce_order_status_on-hold', 'print_order_line_item_meta', 10, 2 );
因为我所有的订单都以“暂停”状态开始,所以我在订单具有此状态时添加了订单项元数据,而不是在创建订单时添加它。这是返回订单号而不是 0。
我正在尝试将已下订单的订单号添加到每个订单项中。 我们正在使用订单拆分插件(https://woocommerce.com/products/split-orders/)和订单组合插件。
因此,为了能够跟踪产品的原始来源,我想在创建订单时将订单号作为元数据添加到订单项中。
我之前尝试过一些东西,比如下面的代码,但是我在尝试下订单时遇到错误:
function action_woocommerce_new_order( $order_get_id ) {
$items = $order_get_id->get_items();
foreach ( $items as $item ) {
$item->update_meta_data( 'order_nummer', $order_get_id );
$item->save_meta_data();
}
}
add_action( 'woocommerce_new_order', 'action_woocommerce_new_order', 10, 1 );
任何人都可以在正确的方向上帮助我吗?
最佳,
您没有使用正确的钩子……请尝试以下方法:
add_action('woocommerce_checkout_create_order_line_item', 'action_checkout_create_order_line_item', 10, 4 );
function action_checkout_create_order_line_item( $item, $cart_item_key, $values, $order ) {
$item->update_meta_data( 'order_number', $order->get_order_number() );
}
代码进入活动子主题(或活动主题)的 functions.php 文件。它应该更好用。
注意:如果您希望此自定义订单项元数据仅在管理订单中可见,请使用元键 _order_number
而不是 order_number
.
最后我设法让它与下面的代码一起工作:
function print_order_line_item_meta( $items, $order ) {
$order_number = $order->get_order_number();
$items = $order->get_items();
foreach ( $items as $item ) {
$item->update_meta_data( '_org_ordernummer', $order_number );
$item->save_meta_data();
}
}
add_action( 'woocommerce_order_status_on-hold', 'print_order_line_item_meta', 10, 2 );
因为我所有的订单都以“暂停”状态开始,所以我在订单具有此状态时添加了订单项元数据,而不是在创建订单时添加它。这是返回订单号而不是 0。