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

除了 WooCommerce 中的几种特定产品外,最小购物车数量

除了 WooCommerce 中的几种特定产品外,最小购物车数量

PHP
阿波罗的战车 2023-04-28 15:47:49
我在我的 php 中使用以下代码“除 Woocommerce 中的特定产品外的最低购物车金额”,它允许覆盖 Woocommerce 最低购物车价值 130 美元。工作正常但仅适用于一种定义的产品。在这种情况下product_id 2649我试图通过添加行来进一步修改此代码,except_product_id... 但这无济于事。我如何修改以制作例外列表product id?任何帮助表示赞赏add_action( 'woocommerce_check_cart_items', 'min_cart_amount' );function min_cart_amount() {    ## ----- EXCLUDES A PRODUCT FROM MINIMUM ORDER DOLLAR VALUE Your Settings below ----- ##    $min_cart_amount   = 130; // Minimum cart amount    $except_product_id = 2649; // Except for this product ID    $except_product_id = 2659; // Except for this product ID    $except_product_id = 1747; // Except for this product ID    // Loop though cart items searching for the defined product    foreach( WC()->cart->get_cart() as $cart_item ){        if( $cart_item['data']->get_id() == $except_product_id || $cart_item['product_id'] == $except_product_id )            return; // Exit if the defined product is in cart    }    if( WC()->cart->subtotal < $min_cart_amount ) {        wc_add_notice( sprintf(            __( "<strong>A Minimum of %s is required before checking out.</strong><br>The current cart's total is %s" ),            wc_price( $min_cart_amount ),            wc_price( WC()->cart->subtotal )        ), 'error' );    }}
查看完整描述

1 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

您通过在每一行上使用相同的命名约定来覆盖您的变量。所以如果你想将它应用于多个 ID,你必须将它们放在一个数组中。


function min_cart_amount() {

    ## ----- EXCLUDES A PRODUCT FROM MINIMUM ORDER DOLLAR VALUE Your Settings below ----- ##


    $min_cart_amount   = 130; // Minimum cart amount

    $except_product_id = array ( 2649, 2659, 1747 ); // Except for this product ID


    // Loop though cart items searching for the defined product

    foreach( WC()->cart->get_cart() as $cart_item ) {

        // Product id

        $product_id = $cart_item['product_id'];


        // Exit if the defined product is in cart

        if ( in_array( $product_id, $except_product_id) ) {

            return;

        }

    }


    if( WC()->cart->subtotal < $min_cart_amount ) {

        wc_add_notice( sprintf(

            __( "<strong>A Minimum of %s is required before checking out.</strong><br>The current cart's total is %s" ),

            wc_price( $min_cart_amount ),

            wc_price( WC()->cart->subtotal )

        ), 'error' );

    }

}

add_action( 'woocommerce_check_cart_items', 'min_cart_amount', 10, 0 );


查看完整回答
反对 回复 2023-04-28
  • 1 回答
  • 0 关注
  • 98 浏览

添加回答

举报

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