现在产品SKU与产品相关,因此在订购时并且产品未被删除时可以显示,但一旦产品被删除,SKU就不再可用。查看订单不再显示SKU。
答案 0 :(得分:3)
经过测试的代码
使用woocommerce_add_order_item_meta
挂钩。我已经包含了两个版本。 1只支持简单的产品。第二个版本也支持变体。
add_action( 'woocommerce_add_order_item_meta', 'so_28193771', 10, 3 );
function so_28193771( $item_id, $values, $cart_item_key ) {
$item_sku = get_post_meta( $values[ 'product_id' ], '_sku', true );
wc_add_order_item_meta( $item_id, 'sku', $item_sku , false );
}
add_action( 'woocommerce_add_order_item_meta', 'so_28193771', 10, 3 );
function so_28193771( $item_id, $values, $cart_item_key ) {
$item_sku = get_post_meta( $values[ 'product_id' ], '_sku', true );
$item_has_variation = ( ! empty( $values[ 'variation_id' ] ) ? true : false );
if( $item_has_variation ) {
wc_add_order_item_meta( $item_id, 'parent_sku', $item_sku, false );
$variation_sku = get_post_meta( $values[ 'variation_id' ], '_sku', true );
wc_add_order_item_meta( $item_id, 'variation_sku', $variation_sku, false );
}
else {
wc_add_order_item_meta( $item_id, 'sku', $item_sku , false );
}
}
答案 1 :(得分:0)
从 3.0.1 开始,woocommerce_add_order_item_meta 钩子已被弃用,新的钩子是 woocommerce_new_order_item($item_id, $item, $order_id)