Php 添加到购物车时为购物车项目设置键

Php 添加到购物车时为购物车项目设置键,php,wordpress,woocommerce,cart,product-quantity,Php,Wordpress,Woocommerce,Cart,Product Quantity,如何使用唯一的购物车密钥将项目添加到购物车。我不想更新购物车已有的购物车项目数量 如果我们的购物车里有两样东西, 然后我想再向购物车添加两个项目,而不是数量为4的项目,我需要两个数量为2的购物车项目,因此请查看add_to_cart()中的woocommerce/includes/class wc cart.php // Load cart item data - may be added by other plugins. $cart_item_data = (array) apply_fil

如何使用唯一的购物车密钥将项目添加到购物车。我不想更新购物车已有的购物车项目数量

如果我们的购物车里有两样东西,
然后我想再向购物车添加两个项目,而不是数量为4的项目,我需要两个数量为2的购物车项目,因此请查看
add_to_cart()
中的
woocommerce/includes/class wc cart.php

// Load cart item data - may be added by other plugins.
$cart_item_data = (array) apply_filters( 'woocommerce_add_cart_item_data', $cart_item_data, $product_id, $variation_id, $quantity );

// Generate a ID based on product ID, variation ID, variation data, and other cart item data.
$cart_id        = $this->generate_cart_id( $product_id, $variation_id, $variation, $cart_item_data );

您可以看到,
$cart\u id
接收
$cart\u item\u数据
,您可以将其修改为与以前的项目不同,以便生成唯一id。

您需要此自定义挂钩函数,该函数将向购物车项目添加生成的唯一密钥:

add_filter( 'woocommerce_add_cart_item_data', 'set_custom_cart_item_key', 10, 4 );
function set_custom_cart_item_key( $cart_item_data, $product_id, $variation_id, $quantity ) {
    $cart_item_data['unique_key'] = md5( microtime().rand() );
    WC()->session->set( 'custom_data', $cart_item_data['unique_key'] );

    return $cart_item_data;
}
代码进入活动子主题(或活动主题)的function.php文件。测试和工作


当相同的产品添加到购物车时,它将避免增加商品数量…因此您将使用单独的购物车商品来代替…

您可以共享您的代码吗?