在WordPress中,当购物车重量=0时,如何禁用本地拾取
请问我如何根据购物车总重量禁用本地取货?我想在购物车总重量=0时禁用本地取货的可能性。我使用了在别处找到并修改过的这个片段,但它不起作用,而且仍然提供本地拾音器在WordPress中,当购物车重量=0时,如何禁用本地拾取,wordpress,woocommerce,code-snippets,Wordpress,Woocommerce,Code Snippets,请问我如何根据购物车总重量禁用本地取货?我想在购物车总重量=0时禁用本地取货的可能性。我使用了在别处找到并修改过的这个片段,但它不起作用,而且仍然提供本地拾音器 add_filter( 'woocommerce_package_rates', 'bbloomer_woocommerce_tiered_shipping', 9999, 2 ); function bbloomer_woocommerce_tiered_shipping( $rates, $package ) {
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;
}
请问我做错了什么
实际上,我上面提到的代码正在工作。我没有意识到两件事:
您可以通过WC()->cart->cart\u内容循环计算总重量。 试试这个代码
add_filter( 'woocommerce_package_rates', 'hide_shipping_based_on_weight', 10, 2 );
function hide_shipping_based_on_weight( $rates, $package ) {
$cart_total_weight = 0;
$shipping_id = 'local_pickup'; // your shipping id
// Calculate cart weight total.
foreach( WC()->cart->cart_contents as $key => $value ){
$cart_total_weight += $value['data']->weight * $value['quantity'];
}
// check cart total
if( $cart_total_weight <= 0 ){
unset( $rates[ $shipping_id ] );
}
return $rates;
}
add_filter('woocommerce_package_rates','hide_shipping_based_on_weight',10,2);
功能隐藏基于重量的装运($rates,$package){
$cart\u总重量=0;
$shipping\u id='local\u pickup';//您的配送id
//计算购物车总重量。
foreach(WC()->cart->cart\u内容为$key=>$value){
$cart_total_weight+=$value['data']->weight*$value['quantity'];
}
//检查购物车总数
如果($cart\u total\u weight哦,非常感谢。事实上,我上面提到的代码正在工作。我没有意识到两件事:1.我的本地拾取ID错误,我没有浏览页面以发现,正确的变量名称是'local\u pickup:13'(代码更新)2.要查看web上的更改,我必须始终在匿名窗口中打开网站。即使Chrome中的Ctrl+F5、Ctrl+Shift+R也没有帮助。一旦有人回答了你的问题,你不应该更改你的问题代码……相反,你可以添加对问题的编辑。