在WordPress中购物车重量= 0时如何禁用本地取件

问题描述

请问如何根据购物车的总重量禁用本地取货?当购物车总重量== 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;
    }

我在做什么错了?


实际上,我上面提到的代码可以正常工作。我没有意识到两件事:

  1. 我的local_pickup的ID错误,我没有浏览页面来查找,正确的变量名是'local_pickup:13'(代码已更新)

  2. 要查看网络上的更改,我总是必须在匿名窗口中打开该站点。即使是Ctrl + F5,Chrome中的Ctrl + Shift + R也无济于事。

解决方法

您可以通过WC()-> cart-> cart_contents循环来计算总重量。 试试这个代码

ImageItem