当数量 > 1 时,在 woocommerce 结账时产品会显示在不同的行上

Jor*_*ris 3 php wordpress checkout woocommerce

我正在使用woocommerce订阅和礼品扩展。这样就可以将订阅礼物赠送给收件人。我正在努力让在一个订单中向多人赠送订阅成为可能。

棘手的是,每个产品默认只能赠送给 1 人。因此,为了向多人赠送礼物,必须将同一产品多次添加到购物车中。

使用此线程:WooCommerce - 如果数量超过 1,则单独处理购物车项目

我已成功将相同的产品添加到购物车并显示在多行中。因此,如果我输入订阅产品的数量 5 并将其添加到购物车,我的购物车中会出现 5 个条目。这太棒了,因为现在我可以将每一行都赠送给另一个人。

然而,当我继续结帐时,它又变得混乱了。所有产品都挤在一起,而不是在单独的线上展示产品。因此,在结账时,我看到的是数量为 5 的 1 行,而不是数量为 1 的 5 行。

这就是问题所在:

如何确保结账页面上的订单审核表显示数量 x>1 的产品的单独行,而不是数量 x 的 1 行?

备注:我发现只有当 woocommerce 订阅礼物附加组件处于活动状态时,它才不起作用。它覆盖似乎覆盖了 wc_cart_item_data

Ant*_*nio 5

你可以使用这个代码

    function separate_individual_cart_items( $cart_item_data, $product_id ) {
      $unique_cart_item_key = md5( microtime() . rand() );
      $cart_item_data['unique_key'] = $unique_cart_item_key;

      return $cart_item_data;
    }
    add_filter( 'woocommerce_add_cart_item_data', 'separate_individual_cart_items', 10, 2 );
Run Code Online (Sandbox Code Playgroud)

您可以将此代码放入functions.php或您自己的插件中(最好的解决方案)。

和一个观察,因为这个问题与这个问题类似

WooCommerce - 如果数量超过 1,则将购物车商品分开处理

但我无法关闭问题,抱歉...我的声誉很低)