使用 woocommerce 在 wordpress 中获取购物车中的商品数量
Posted
技术标签:
【中文标题】使用 woocommerce 在 wordpress 中获取购物车中的商品数量【英文标题】:Get the number of items in cart in wordpress using woocommerce 【发布时间】:2017-08-09 13:05:30 【问题描述】:我实际上正在开发一个网站。但我面临一个问题。我需要显示购物车中的物品数量,但只有数量,没有其他我不想要总金额或其他任何内容。只是项目的数量。
我的目标是在我的“转到购物车”链接上显示它,该链接是带有 href 的图像。但这不是主要的铅。主要的 pb 是如何找到一种仅获取购物车中商品数量的方法。
我正在使用安装了 Avada 的 WordPress,以便能够自定义更多 WP 并获得一些包含的功能。但我没有使用 avada 菜单,我使用的是自制菜单,我想在其中显示购物车中的商品数量。
对于“购物方面”,我使用的是 WooCommerce。
我看到了很多关于钩子的帖子和关于这个的一切,但它是关于“显示物品数量和购物车总金额,我不想显示总汽车金额,我只想要数字。有点像这样:购物车号码项目数:plein.com 网站
【问题讨论】:
嗨,欢迎来到 Stack Overflow!您的问题标题中有错字。如果您更正它,人们将能够更容易地找到并回答它:) 【参考方案1】:嘿,欢迎来到这个网站,虽然我也是新来的! WooCommerce 文档实际上有一个用于此目的的 sn-p:
https://docs.woocommerce.com/document/show-cart-contents-total/
在你的情况下只是得到计数,你可以做这样的事情:
Cart Total: <?php echo WC()->cart->get_cart_contents_count(); ?>
柯达
【讨论】:
【参考方案2】:根据您给出的描述,我了解到您只想显示购物车数量,而不是其他任何内容。这是执行此操作的代码
在 header.php 或要显示此小部件的文件中添加此代码块...
<a class="cart-customlocation" href="<?php echo wc_get_cart_url(); ?>" title="<?php _e( 'View your shopping cart' ); ?>"><?php WC()->cart->get_cart_contents_count(); ?></a>
然后将此代码块添加到functions.php
add_filter('add_to_cart_fragments', 'woocommerce_header_add_to_cart_fragment');
function woocommerce_header_add_to_cart_fragment( $fragments )
global $woocommerce;
ob_start();
?>
<a class="cart-customlocation" href="<?php echo wc_get_cart_url(); ?>" title="<?php _e( 'View your shopping cart' ); ?>"><?php WC()->cart->get_cart_contents_count(); ?></a>
<?php
$fragments['a.cart-customlocation'] = ob_get_clean();
return $fragments;
【讨论】:
只是想添加一个注释,如果您正在测试这个购物车片段被缓存,所以如果您进行更改,请清除缓存,从购物车中删除产品并重新开始查看这些更改 -这让我绊倒了一个小时! 我正在使用这个,它不工作。我还尝试用`$woocommerce->cart->get_cart_contents_count()` 替换WC()->cart->get_cart_contents_count();
,但它不起作用。一些指针。
解释得很好,你应该刚刚添加了 woocommerce 文档链接。这就是我想要的
您忘记“回显”计数:cart->get_cart_contents_count(); ?>【参考方案3】:
试试这个代码
global $woocommerce;
print_r(count(WC()->cart->get_cart()));
【讨论】:
您的回答对我有用。从我这边投票。我必须显示产品的总数。我的意思是,如果我选择 2 个数量的 T 恤和一个 3 个数量的包,那么根据您的回答,它将显示 2 个输出而不是 5 个。感谢您的帮助 谢谢 mehul ,正如@NarenVerma 所说,我也有同样的要求。 这里不需要global $woocommerce;
行。你可以删除那个并完美保存。也试着解释你在这里做什么。因为这不是 OPs 问题的答案。但它仍在帮助人们,所以也许尝试更具体地了解差异......【参考方案4】:
来自here:
将此代码添加到您的 header.php 文件中。
<a class="cart-contents" href="<?php echo wc_get_cart_url(); ?>" title="<?php _e( 'View your shopping cart' ); ?>"><?php echo sprintf ( _n( '%d item', '%d items', WC()->cart->get_cart_contents_count() ), WC()->cart->get_cart_contents_count() ); ?> - <?php echo WC()->cart->get_cart_total(); ?></a>
【讨论】:
【参考方案5】:$total_qty = WC()->cart->cart_contents_count;
【讨论】:
【参考方案6】:进一步Kodaloid的回答,如果购物车数量大于0,您也只能显示它。
<?php
$cartcount = WC()->cart->get_cart_contents_count();
if ($cartcount > 0) echo $cartcount;
?>
【讨论】:
【参考方案7】:get_cart_contents_count() 显示所有产品项目的总数量。 即您购买 2 公斤产品 A 和 1 公斤产品 B,get_cart_contents_count() 返回 3。
如果您需要显示购物车中有多少产品,我在functions.php中做了这个功能:
function count_item_in_cart()
$count = 0;
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item )
$count++;
return $count;
然后在你的 php 文件中你可以这样做:
<?php echo count_item_in_cart() . " products"; ?>
【讨论】:
很高兴知道我得到-2的原因【参考方案8】:获取项目数量的最佳方法:
-
产品数量>>
echo count(WC()->cart->get_cart());
每个产品的产品数量和订单数量:echo WC()->cart->get_cart_contents_count();
【讨论】:
以上是关于使用 woocommerce 在 wordpress 中获取购物车中的商品数量的主要内容,如果未能解决你的问题,请参考以下文章
ACF wordpres: Foreach: data-type = 'group'
php 这个WordPress插件演示了如何使用WordPress提供的可拖动元文件构建自己的插件页面,需要WordPr