为了账号安全,请及时绑定邮箱和手机立即绑定

如何将特定商品的 WooCommerce 购物车商品数量限制为一个

如何将特定商品的 WooCommerce 购物车商品数量限制为一个

PHP
扬帆大鱼 2023-07-21 16:19:14
在我的自定义 Woocommerce 模板中,我想将产品的数量限制为 1。这就是我所拥有的:<?php $current_product_id = 5; // The product ID $cart               = WC()->cart; // The WC_Cart Object       $quantity = $cart_item['quantity'];//the quantity// When cart is not empty if ( ! $cart->is_empty() ) {    // Loop through cart items    foreach( $cart->get_cart() as $cart_item_key => $cart_item ) {        // If the cart item is not the current defined product ID        if( $current_product_id != $cart_item['product_id'] ) {            $cart->remove_cart_item( $cart_item_key ); // remove it from cart        }} if( $quantity >=1) {    $cart->remove_cart_item( $cart_item_key ); // remove it from cart } }}?>这有点管用。但我希望在同一页面上结帐,并且使用此代码将产品添加到购物车时结帐不会更新。
查看完整描述

2 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

要将数量限制为 1,您将使用 WC_cartset_quantity()方法,如下所示:


<?php 

$current_product_id = 5; // The product ID 

$cart               = WC()->cart; // The WC_Cart Object


// When cart is not empty 

if ( ! $cart->is_empty() ) {

    // Loop through cart items

    foreach( $cart->get_cart() as $cart_item_key => $cart_item ) {

        // If the cart item is not the current defined product ID

        if( $current_product_id != $cart_item['product_id'] ) {

            $cart->remove_cart_item( $cart_item_key ); // remove it from cart

        } 

        // If the cart item is the current defined product ID and quantity is more than 1

        elseif( $cart_item['quantity'] > 1 ) {

            $cart->set_quantity( $cart_item_key, 1 ); // Set the quantity to 1

        }

    }

}

?>

它应该有效。


查看完整回答
反对 回复 2023-07-21
?
米脂

TA贡献1836条经验 获得超3个赞

对于任何希望无需代码即可实现相同功能的人。您只需在产品的库存设置中选择“单独出售”复选框,您也可以使用如下代码来实现此目的:update_post_meta($product_id, '_sold_individually', 'yes');



查看完整回答
反对 回复 2023-07-21
  • 2 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信