从Woocommerce的微型购物车中删除有条件的“进行结帐”按钮

时间:2018-10-08 18:19:38

标签: php wordpress if-statement woocommerce cart

在woocommerce中,如果满足两个条件,我目前正在寻求在主题的functions.php文件中添加功能。然后,如果仅满足一个条件,则使用elseif()部署该函数。

代码如下:

add_action( 'woocommerce_widget_shopping_cart_before_buttons' , 'wc_minimum_order_amount' );

function wc_minimum_order_amount() {
    $minimum = 150;
    $minimum2 = 100;

    if ( is_page([232]) && WC()->cart->subtotal < $minimum2 ) {
        if( 'woocommerce_widget_shopping_cart' ) {
            wc_print_notice(
                sprintf( 'Your current order total does not meet the %s minimum' , 
                    wc_price( $minimum2 )
                ), 'error' 
            );
            remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_proceed_to_checkout', 20 );

        } 
        else {
            wc_add_notice( 
                sprintf( 'Your current order total does not meet the %s minimum' , 
                    wc_price( $minimum2 )
                ), 'error' 
            );
        }

    }
    elseif ( WC()->cart->subtotal < $minimum ) {
        if( 'woocommerce_widget_shopping_cart' ) {
            wc_print_notice(
                sprintf( 'Your current order total does not meet the %s minimum', 
                    wc_price( $minimum )
                ), 'error' 
            );
            remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_proceed_to_checkout', 20 );

        } 
        else {
            wc_add_notice( 
                sprintf( 'Your current order total does not meet the %s minimum' , 
                    wc_price( $minimum )
                ), 'error' 
            );
        }
    }
}

我想做的是,如果未达到最小订购量,则隐藏woocommerce小部件的结帐按钮。但是,不同的页面具有不同的最小值。

如果购物车不等于$ 150,我想隐藏“结帐”按钮。但是,特别是对于一页,我只希望购物车至少有100美元。

1 个答案:

答案 0 :(得分:1)

请注意,您使用的挂钩仅用于微型购物车小部件,因此您无需在IF语句中进行测试。

您正在使它本应变得更加复杂。请尝试以下重新访问的代码:

add_action( 'woocommerce_widget_shopping_cart_before_buttons' , 'wc_minimum_order_amount' );
function wc_minimum_order_amount() {
    $min_amount = is_page([232]) ? 100 : 150;

    if( WC()->cart->subtotal < $min_amount ) {
        remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_proceed_to_checkout', 20 );

        wc_add_notice( 
            sprintf( 'Your current order total does not meet the %s minimum' , 
                wc_price( $min_amount )
            ), 'error' 
        );
    } 
}

代码进入您的活动子主题(或活动主题)的function.php文件中。现在应该会更好。