首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >添加到购物车woocommerce时为购物车项目设置密钥

添加到购物车woocommerce时为购物车项目设置密钥
EN

Stack Overflow用户
提问于 2018-03-26 23:09:48
回答 2查看 1.5K关注 0票数 1

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

例如:如果购物车中有2个项目,那么我希望在购物车中再添加两个项目,而不是数量为4的项目,我需要两个数量为2的购物车项目

EN

回答 2

Stack Overflow用户

发布于 2018-03-27 01:26:35

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

代码语言:javascript
运行
复制
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文件中。经过测试并正常工作。

避免在将相同的产品添加到购物车…时增加商品数量因此,您将拥有单独的购物车项目,而不是…

票数 1
EN

Stack Overflow用户

发布于 2018-03-27 00:26:23

因此,请看一下woocommerce/includes/class-wc-cart.phpadd_to_cart()中的这个方法

代码语言:javascript
运行
复制
// 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_item_data中的$cart_id参数,您可以将其修改为与前面的项不同,以便生成唯一的id。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49494796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档