Wordpress Woocommerce:如何在订单中保存产品SKU
现在,产品SKU与产品相关,因此在订购且产品未被删除时,可以显示该SKU,但一旦产品被删除,SKU将不再可用。查看订单无法再显示SKU。测试代码 使用Wordpress Woocommerce:如何在订单中保存产品SKU,wordpress,woocommerce,Wordpress,Woocommerce,现在,产品SKU与产品相关,因此在订购且产品未被删除时,可以显示该SKU,但一旦产品被删除,SKU将不再可用。查看订单无法再显示SKU。测试代码 使用woocommerce\u add\u order\u item\u metahook。我已经包括了两个版本。1只支持简单的产品。第二个版本也支持变体 add_action( 'woocommerce_add_order_item_meta', 'so_28193771', 10, 3 ); function so_28193771( $item_
woocommerce\u add\u order\u item\u meta
hook。我已经包括了两个版本。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 );
}
变异支持
从3.0.1开始,woocommerce\u add\u order\u item\u meta hook已经被弃用,新的hook是woocommerce\u new\u order\u item($item\u id,$item,$order\u id)这里的问题是,如果产品已经被删除,sku的用途是什么?这是历史记录、保修……我有疑问。我在购物车中的每个产品中都有很多元细节。我在$cart\u item\u数据中保存了元详细信息$woocommerce->购物车->将购物车添加到购物车(21,1,0,$item,$cart\u item\u数据)。。现在,我如何将此元详细信息保存到订单项。请检查这个问题
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 );
}
}