【发布时间】:2018-10-25 12:44:56
【问题描述】:
我有一个场景,我需要删除 Woo-commerce 结帐屏幕上的“下订单”按钮。
目前我有两种运输方式:灵活运输和货运
如果客户将运输类别为“Freight”的商品添加到他们的购物车,我当前的代码会禁用灵活运输方式,然后运费方式会显示“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;
}
是否有一个简单的钩子或我缺少的东西?
我已经搞砸了一段时间,现在正在碰壁。
【问题讨论】:
标签: php wordpress woocommerce checkout shipping