问题描述
请问如何根据购物车的总重量禁用本地取货?当购物车总重量== 0时,我想禁用本地取件的可能性。我使用了在其他地方找到的经过修改的代码段,但该行不起作用,仍然提供本地取件
add_filter( 'woocommerce_package_rates','bbloomer_woocommerce_tiered_shipping',9999,2 );
function bbloomer_woocommerce_tiered_shipping( $rates,$package ) {
if ( WC()->cart->get_cart_contents_weight() == 0 ) {
unset( $rates['local_pickup'] );
unset( $rates['local_delivery'] );
}
return $rates;
}
我在做什么错了?
实际上,我上面提到的代码可以正常工作。我没有意识到两件事:
-
我的local_pickup的ID错误,我没有浏览页面来查找,正确的变量名是'local_pickup:13'(代码已更新)
-
要查看网络上的更改,我总是必须在匿名窗口中打开该站点。即使是Ctrl + F5,Chrome中的Ctrl + Shift + R也无济于事。
解决方法
您可以通过WC()-> cart-> cart_contents循环来计算总重量。 试试这个代码
ImageItem