如何使用唯一的购物车键将商品添加到购物车。我不想更新购物车已有的购物车物品数量
例如。如果我们在购物车中有 2 件商品,那么我想在购物车中再添加两件商品,而不是数量为 4 的商品,我需要两个数量为 2 的购物车商品
如何使用唯一的购物车键将商品添加到购物车。我不想更新购物车已有的购物车物品数量
例如。如果我们在购物车中有 2 件商品,那么我想在购物车中再添加两件商品,而不是数量为 4 的商品,我需要两个数量为 2 的购物车商品
您需要这个自定义挂钩函数,它将向购物车项目添加生成的唯一键:
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 文件中。测试和工作。
当将相同的产品添加到购物车时,它将避免增加商品数量……因此您将拥有分开的购物车商品……</p>
所以看看这个方法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 );
您会看到可以修改为与之前的项目不同的镜头,以生成唯一的 ID $cart_id
。$cart_item_data