【问题标题】:woocommerce : Need to save cart item meta of the each product to orderswoocommerce :需要将每个产品的购物车项目元数据保存到订单中
【发布时间】:2016-10-05 11:49:29
【问题描述】:

目前我通过$woocommerce->cart->add_to_cart( 21, 1, 0, $item,$cart_item_data)将产品添加到购物车

现在 ID 为 21 的产品已添加到购物车。我在 $cart_item_data 中保存了许多详细信息。我想要的是当为这个购物车产品创建订单时 $cart_item_data 需要保存到数据库,在管理员的订单部分我可以看到每个产品的详细信息$cart_item_data

我知道如何保存订单项元数据。

add_action('woocommerce_add_order_item_meta',function($item_id, $values, $cart_item_key){

wc_add_order_item_meta( $item_id, 'Reference', 12345 , false ); 

        },10,2);

但我的问题是我需要从$cart_item_data 获取值并保存在woocommerece_order_itemmeta 表中。

注意:$cart_item_data=是一个数组,我在添加到购物车期间保存了一些自定义详细信息

请帮忙解决这个问题。

【问题讨论】:

    标签: woocommerce hook-woocommerce


    【解决方案1】:

    如果您已为您的产品正确添加了自定义数据到购物车,那么您将在下面代码的 $item 中拥有它,您可以使用下面的代码进一步保存。

    add_action('woocommerce_add_order_item_meta','add_order_item_meta',1,2);
    
    function add_order_item_meta($item_id, $values) {
    
        if(isset($values['_my_custom_info']) && !empty($values['_my_custom_info'])) {
            // Get the custom array
            $arrCustomInfo = $values['_my_custom_info'];
    
            // For each custom element
            foreach($arrCustomInfo AS $key => $arrInfo) {
    
                if(isset($arrInfo['quantity']) && !empty($arrInfo['quantity'])) {
                    // Save variation addon info
                    $strKey = $arrInfo['name'] . ' X ' . $arrInfo['quantity'];
    
                    // Save custom order item meta
                    wc_add_order_item_meta($item_id, $strKey . ' ', wc_price($arrInfo['price'] * $arrInfo['quantity']));
                    wc_add_order_item_meta($item_id, 'Product Image ', $arrInfo['image']);
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-11-12
      • 2017-04-27
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-25
      • 2014-11-21
      相关资源
      最近更新 更多