Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress Woocommerce:如何在订单中保存产品SKU_Wordpress_Woocommerce - Fatal编程技术网

Wordpress Woocommerce:如何在订单中保存产品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_

现在,产品SKU与产品相关,因此在订购且产品未被删除时,可以显示该SKU,但一旦产品被删除,SKU将不再可用。查看订单无法再显示SKU。

测试代码

使用
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 );

        }

}