当数量> 1

时间:2017-09-13 09:17:38

标签: php wordpress woocommerce checkout

我正在使用 woocommerce 订阅赠送扩展程序。通过这种方式,可以向订户提供订阅。我试图在一个订单中为多个人订阅订阅。

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

使用此主题:WooCommerce - Treat cart items separate if quantity is more than 1

我设法将相同的产品添加到购物车并在多行显示。因此,如果我输入订购产品的数量5并将其添加到购物车,我的购物车中会有五个条目。这很棒,因为现在我可以把每一条线都送给另一个人。

然而,当我继续结帐时,它再次搞砸了。所有东西都挤在一起,而不是在单独的线上展示产品。因此,在结账时,我会看到1行数量为5,而不是5行数量为1。

这就是问题所在:

如何确保结帐页面上的订单查看表显示数量为x> 1而不是1行且数量为x的产品的单独行?

注: 我发现只有当woocommerce订阅礼品附加功能激活时它才会起作用。它覆盖似乎覆盖了wc_cart_item_data

1 个答案:

答案 0 :(得分:3)

您可以使用此代码

    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 );

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

观察是因为这个问题与这个问题类似

WooCommerce - Treat cart items separate if quantity is more than 1

但是我无法解决这个问题,抱歉......我的声誉很低)