Php 有条件地删除“;“继续结帐”;Woocommerce中微型购物车的按钮
在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; $
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])(没有人能猜到)…