【问题标题】:Set key for cart item when adding to cart woocommerce添加到购物车 woocommerce 时为购物车项目设置密钥
【发布时间】:2018-03-26 15:09:48
【问题描述】:

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

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

【问题讨论】:

  • 你能分享你的代码吗?

标签: php wordpress woocommerce cart product-quantity


【解决方案1】:

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

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

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

【讨论】:

    【解决方案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_id 接受了$cart_item_data,您可以将其修改为与之前的项目不同以生成唯一的ID。

    【讨论】:

      猜你喜欢
      • 2018-06-04
      • 1970-01-01
      • 1970-01-01
      • 2015-10-10
      • 1970-01-01
      • 2013-09-16
      • 2021-07-26
      • 2018-08-29
      • 1970-01-01
      相关资源
      最近更新 更多