Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 有条件地删除“;“继续结帐”;Woocommerce中微型购物车的按钮_Php_Wordpress_If Statement_Woocommerce_Cart - Fatal编程技术网

Php 有条件地删除“;“继续结帐”;Woocommerce中微型购物车的按钮

Php 有条件地删除“;“继续结帐”;Woocommerce中微型购物车的按钮,php,wordpress,if-statement,woocommerce,cart,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; $

在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' 
            );
        }
    }
}
add_action('woocommerce_widget_shopping_cart_before_button'、'wc_minimum_order_amount');
函数wc\u最小订单金额(){
最低$150;
$minimum2=100;
如果(是页面([232])&&WC()->购物车->小计<$minimum2){
如果('woocommerce\u widget\u shopping\u cart'){
wc_打印通知(
sprintf('您当前的订单总数未达到%s最小值',
wc_价格(最低2美元)
)“错误”
);
删除操作(“woocommerce\u widget\u shopping\u cart\u按钮”、“woocommerce\u widget\u shopping\u cart\u proced\u to\u checkout”,20);
} 
否则{
wc_添加_通知(
sprintf('您当前的订单总数未达到%s最小值',
wc_价格(最低2美元)
)“错误”
);
}
}
elseif(WC()->购物车->小计<$minimum){
如果('woocommerce\u widget\u shopping\u cart'){
wc_打印通知(
sprintf('您当前的订单总数未达到%s最小值',
wc_价格(最低)
)“错误”
);
删除操作(“woocommerce\u widget\u shopping\u cart\u按钮”、“woocommerce\u widget\u shopping\u cart\u proced\u to\u checkout”,20);
} 
否则{
wc_添加_通知(
sprintf('您当前的订单总数未达到%s最小值',
wc_价格(最低)
)“错误”
);
}
}
}
我试图做的是,如果未达到最低订单金额,则隐藏woocommerce小部件的签出按钮。但是,不同的页面具有不同的最小值


如果购物车不等于150美元,我会试图隐藏结账按钮。但是特别是对于一个页面,我只希望购物车至少有100美元。

请注意,您使用的钩子只针对微型购物车小部件,因此您不需要在
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' 
        );
    } 
}
add_action('woocommerce_widget_shopping_cart_before_button'、'wc_minimum_order_amount');
函数wc\u最小订单金额(){
$min_amount=is_page([232])?100:150;
如果(WC()->购物车->小计<$min\u金额){
删除操作(“woocommerce\u widget\u shopping\u cart\u按钮”、“woocommerce\u widget\u shopping\u cart\u proced\u to\u checkout”,20);
wc_添加_通知(
sprintf('您当前的订单总数未达到%s最小值',
wc_价格(最低金额)
)“错误”
);
} 
}

代码进入活动子主题(或活动主题)的function.php文件。它现在应该能更好地工作。

我能看到的主要问题(没有测试,因为我现在不在办公桌前)是
if('woocommerce\u widget\u shopping\u cart'){
-您实际上没有测试if语句中的任何内容。您正在测试的字符串“woocommerce\u widget\u shopping\u cart”是什么?它应该等于还是不等于?这非常干净,非常感谢。但是,正如您看到的,在它处找到的页面/帖子232不会激活“签出”按钮,除非最低价格超过150美元,而不是本页所需的100美元…谢谢您的支持help@ThirsHuey对不起,我没听懂?你需要确保这是你的页面([232])(没有人能猜到)…