php - 在 Woocommerce 中按商品 ID 获取购物车商品数量

标签 php wordpress woocommerce cart product-quantity

在 WooCommerce 中,我创建了一个迷你购物车,我想要获取当前购物车中可用的商品数量。

我试过这个:

  $items = $woocommerce->cart->get_cart();

      foreach($items as $item => $values) {
          $product_id = $values['product_id'];
          if ( $product_id == $id ){
            $product_qnty = $values['quantity'];
          }
          break;
      }

是否有任何单一函数可以按购物车商品获取购物车商品数量?

最佳答案

也许你应该先看看 woocommerce template code cart/mini-cart.php哪里可以找到官方的相关代码。

注意:“项目 ID”仅在 WC_Orders 项目循环中可用,但在作为“购物车项目键”的 WC_Cart 中不可用。所以你肯定是在谈论产品 ID。但是如果你查看官方模板 cart/mini_cart 的代码,你将需要使用 WC_Product 对象而不是 $product_id ...

因此,您始终可以构建自定义函数,例如 (带有 $product 参数,WC_Product 对象),您可以在相应的模板代码或在您的自定义代码中:

function get_item_qty( $product ){
    foreach( WC()->cart->get_cart() as $cart_item )
        // for variable products (product varations)
        $product_id = $product->get_parent_id();
        if( $product_id == 0 || empty( $product_id ) )
            $product_id = $product->get_id();

        if ( $product_id == $cart_item['product_id'] ){
            return $cart_item['quantity'];
            // break;
        }
    return;
}

代码位于您的事件子主题(或主题)的 function.php 文件中或任何插件文件中。


用法 (示例):这里我们将输出$product 的数量( WC_Product 对象):

// Output the quantity based on the $product object
echo __('Quantity'). ': ' . get_item_qty( $product );

官方文档:Template Structure + Overriding Templates via a Theme

关于php - 在 Woocommerce 中按商品 ID 获取购物车商品数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46986023/

相关文章:

php - 我需要编译我的 php 文件吗?

javascript - 使用jquery问题验证和提交表单

php - 使用 PHP 创建 Zip 文件?

wordpress - 在此服务器上找不到请求的 URL/wordpress/

php - 如何仅获取当前语言的 wp_terms ?

php - 从 WooCommerce 中的订单中获取最后一个产品

php - WooCommerce:当元素为空时隐藏 css 属性

php - 在sql表中搜索多个值,范围

php - 在 html 或 php 中创建客户端可编辑事件日历

php - 通过 WooCommerce 3+ 中的 Hook 更改产品价格