当前位置: 首页 > 知识库问答 >
问题:

woocommerce:需要将每个产品的购物车项目元保存到订单中

孙元明
2023-03-14

目前我通过$woocommerce将产品添加到购物车中-

现在id为21的产品已添加到购物车中。我在$cart\u item\u数据中保存了许多详细信息。我想要的是,当为该购物车产品创建订单时,$cart\u item\u数据需要保存到数据库中,并且在管理员的订单部分,我可以看到带有该$cart\u item\u数据的每个产品的详细信息

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

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\u item\u data=是一个数组,在添加到购物车期间,我在其中保存了一些自定义详细信息

请帮助解决这个问题。


共有1个答案

蓬意致
2023-03-14

如果您已正确地将产品的自定义数据添加到购物车中,那么您将在下面的代码中将其保存在$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']);
            }
        }
    }
}
 类似资料:
  • 问题内容: 我有上面的代码。 如果我在cart_item上运行print_r,我将得到一个多维数组: 我如何只获得product_id? 我试过$ test = 没用 问题答案: 要获取 foreach循环中的每个购物车商品(对于简单产品): 如果是可变产品,请获取 : 或在两种情况下 ( Woocommerce 3+中 的 Object在哪里) : 更新: 循环外使用产品ID 1)打破循环 (仅

  • 我们在这里按照Remi Corson的指南为变体产品设置了一个自定义域 此时,当用户选择变体时,我们能够在单个产品页面中显示自定义文本字段,但这在购买过程中是不够的,因为我们需要: A)在购物车和结帐中显示此文本 B)保存此信息,以便在“感谢”页面、“电子邮件”和“管理订单编辑”页面中显示此信息 类似于在WooCommerce订单和电子邮件上保存和显示产品自定义元,但使用的是产品变体而不是简单的产

  • 我使用Woocommerce插件在wordpress中开发了购物车。我需要按产品价格在购物车订单中显示产品,请帮助我做到这一点 谢啦

  • 如果我有一个产品(例如笔)在Woocommerce商店允许一个自定义字段(名称标签),我想订购其中的两个不同名称(在同一订单),WC将他们作为单独的产品,因为他们有不同的购物车项目元还是我将需要添加? 谢谢你

  • 我正在尝试根据购物车中的产品数量向购物车添加一个名为(送货费)的产品。 购物车示例: 产品A(数量5) 产品B(数量2) 产品C(数量4) 送货费(数量3)**这是3,因为这是添加送货费产品之前添加到购物车中的应计数的行项目总数。 我的代码有问题: 它总是返回一个更高的数字。我认为这是计算每个产品的数量,而不是实际的产品项目。 任何帮助都将不胜感激!