php - 在 Woocommerce Cart、Checkout 和 Orders 上显示和保存添加的自定义购物车项目数据

标签 php wordpress woocommerce cart checkout

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

$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 ));

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

有谁能帮帮我吗?

最佳答案

要在使用时显示和保存添加到购物车中的购物车、结帐和订单的自定义元数据:

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 文件中。测试和工作。

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

enter image description here

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

enter image description here

关于php - 在 Woocommerce Cart、Checkout 和 Orders 上显示和保存添加的自定义购物车项目数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54505642/

相关文章:

php - 如何从已填充的表单中获取信息

php - 按多列对 Eloquent 集合进行排序的语法是什么?

css - 你如何重命名 CSS 规则?

wordpress - 标签在 wordpress 中有用吗

php - 自定义电子邮件未在 WooCommerce 中完成订单发送

php - 在 WooCommerce 中将额外的帐单注册字段与默认的 Wordpress 字段同步

javascript - 使用 PHP 和 Javascript 将彩信插入 MySQL 数据库

javascript - 如何在 Wordpress 的 bootstrap Modal 中获取帖子 ID

php - WooCommerce 变体中的自定义字段

php - 使用 PHP 以 HTML 格式返回 Google 图像搜索结果