添加到购物车时设置购物车项目的关键字woocommerce

时间:2018-03-26 15:09:48

标签: php wordpress woocommerce cart product-quantity

如何使用唯一的购物车钥匙将商品添加到购物车。我不想更新购物车已经拥有的购物车数量

例如。如果我们在购物车中有2件商品, 然后我想再添加两个项目到购物车,而不是数量为4的项目,我需要两个数量为2的购物车项目

2 个答案:

答案 0 :(得分:0)

请在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_id接收$cart_item_data,您可以将其修改为与之前的项目不同,以便生成唯一的ID。

答案 1 :(得分:0)

您需要此自定义挂钩功能,该功能会将购物车项目添加为生成的唯一键:

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

当相同的产品被添加到购物车时,它将避免增加商品数量...所以你将分开购物车项目...