在 Woocommerce Cart、Checkout 和 Orders 上显示和保存添加的自定义购物车项目数据 [英] Display and save added custom cart item data on Woocommerce Cart, Checkout and Orders

查看:13
本文介绍了在 Woocommerce Cart、Checkout 和 Orders 上显示和保存添加的自定义购物车项目数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用购物车项目元数据将产品添加到购物车中.这是代码:

I am trying to add product in cart with cart item meta data. Here is the code :

$cart_item_data = array();

$cart_item_data['add_size'] = array('PR CODE'=>'1.0');

print_r(WC()->cart->add_to_cart( $product_id ,1,  0,array(), $cart_item_data ));

它正在将产品添加到购物车中,但未按顺序或在购物车中显示.

It's adding product in cart but it's not showing up in order or in cart.

有人能帮我吗?

推荐答案

使用时显示和保存添加到购物车的自定义元数据:

To display and save custom meta data added to cart in cart, checkout and orders when using:

WC()->cart->add_to_cart( $product_id ,1,  0,array(), array('add_size' => array('PR CODE'=>'1.0') );

您将使用以下代码:

// Display custom cart item meta data (in cart and checkout)
add_filter( 'woocommerce_get_item_data', 'display_cart_item_custom_meta_data', 10, 2 );
function display_cart_item_custom_meta_data( $item_data, $cart_item ) {
    $meta_key = 'PR CODE';
    if ( isset($cart_item['add_size']) && isset($cart_item['add_size'][$meta_key]) ) {
        $item_data[] = array(
            'key'       => $meta_key,
            'value'     => $cart_item['add_size'][$meta_key],
        );
    }
    return $item_data;
}

// Save cart item custom meta as order item meta data and display it everywhere on orders and email notifications.
add_action( 'woocommerce_checkout_create_order_line_item', 'save_cart_item_custom_meta_as_order_item_meta', 10, 4 );
function save_cart_item_custom_meta_as_order_item_meta( $item, $cart_item_key, $values, $order ) {
    $meta_key = 'PR CODE';
    if ( isset($values['add_size']) && isset($values['add_size'][$meta_key]) ) {
        $item->update_meta_data( $meta_key, $values['add_size'][$meta_key] );
    }
}

代码位于活动子主题(或活动主题)的 function.php 文件中.经测试有效.

Code goes in function.php file of your active child theme (or active theme). Tested and works.

购物车(和结帐)页面上的示例显示:

Example display on Cart (and Checkout) pages:

订单(和电子邮件通知)上的示例显示:

这篇关于在 Woocommerce Cart、Checkout 和 Orders 上显示和保存添加的自定义购物车项目数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆