WooCommerce:检查购物车中不同购物车商品/SKU 的数量

WooCommerce: Check the number of different cart items / SKUs in cart

如果购物车中有不止一件商品(不同的 SKU),我想在购物车上方显示一个结账按钮。

我找到了一种方法来隐藏购物车中只有一件商品的按钮。问题是,同一产品 (SKU) 的多个版本算作一个自己的项目。

如果我使用以下代码,即使购物车中有两次单个产品,它也会显示该按钮:

<?php if ( WC()->cart->get_cart_contents_count() > 1 ) : ?>
    <?php woocommerce_button_proceed_to_checkout(); ?>
<?php endif; ?>

有没有办法根据商品/SKU 进行检查?

您可以使用以下方法,获取购物车中不同产品 sku 的数量:

<?php 
$skus = array();
foreach( WC()->cart->get_cart() as $cart_item ) :
    $sku = $cart_item['data']->get_sku();
    $skus[$sku] = $cart_item['data']->get_id();
endforeach;
 
if( count($skus) > 1 ) : 
    woocommerce_button_proceed_to_checkout();
endif; ?>

应该可以。