使用 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()-&gt;cart-&gt;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()-&gt;cart-&gt;get_cart()); 每个产品的产品数量和订单数量:echo WC()-&gt;cart-&gt;get_cart_contents_count();

【讨论】:

以上是关于使用 woocommerce 在 wordpress 中获取购物车中的商品数量的主要内容,如果未能解决你的问题,请参考以下文章

HTML 在wordpres强制换行

在wordpres中强制换行

text 在Wordpres中添加自定义Jquery脚本

ACF wordpres: Foreach: data-type = 'group'

php 这个WordPress插件演示了如何使用WordPress提供的可拖动元文件构建自己的插件页面,需要WordPr

Wordpres标头背景图片