我有一个场景,我需要删除Woo电子商务结帐屏幕上的“下订单”按钮。
目前我有两种运输方式:灵活的运输和运费。
如果客户向购物车中添加了一个发货类别为“运费”的商品,我当前的代码将禁用灵活的发货方法,然后运费方法将显示一条消息“Call for current rates”。
问题是,他们仍然可以结帐基本上没有支付任何运费,这就是为什么如果运费是唯一可用的航运方法,我需要下订单按钮被删除或更换。
下面是我目前正在使用的代码,但尝试修改失败:
add_filter( 'woocommerce_package_rates', 'wc_hide_free_shipping_for_shipping_class', 10, 2 );
function wc_hide_free_shipping_for_shipping_class( $rates, $package ) {
$shipping_class_target = 332;
$in_cart = false;
foreach( WC()->cart->cart_contents as $key => $values ) {
if( $values[ 'data' ]->get_shipping_class_id() == $shipping_class_target ) {
$in_cart = true;
break;
}
}
if( $in_cart ) {
unset( $rates['flexible_shipping_7_2'] );
}
return $rates;
}
是不是有个简单的钩子还是什么我没想到的?
我一直在搞这个有一段时间了,碰了壁。
1条答案
按热度按时间8fsztsew1#
尝试以下操作,当在购物车项目中找到特定运输类别时,将输出一个灰色的非活动"下订单"订单按钮:
代码进入您的活动子主题(或活动主题)的function.php文件。
要完全删除"下订单"按钮,您将使用以下类似按钮:
代码进入您的活动子主题(或活动主题)的function.php文件。