我应该在哪里取消WooCommerce运费?

我需要取消WooCommerce的运费,并且已经提出了这个功能,在订单中的产品循环并增加了它们的重量 . 如果重量大于50磅,我需要取消设置UPS选项:

add_filter( 'coocommerce_package_rates', 'hide_ups_over_50', 10, 2 );

function hide_ups_over_50( $rates, $package ) {
    $totalWt = 0;
    $items = $package[contents];
    foreach ($items as $item) {
        $quantities[] = $item[quantity];
        if ( strlen( $item[variation_id] ) ) {
            $prodIDs[] = $item[variation_id];
        } else {
            $prodIDs[] = $item[product_id];
        }
        $productMeta = get_post_meta($item[product_id]);
        $itemWt = $productMeta['_weight'][0];
        $totalWt = $totalWt + ($itemWt * $item['quantity'] );
    }
    if( $totalWt > 50 ) {
        unset( $rates['ups:03'] );
    }
    // Return what's left of the $rates array
    return $rates;
}

我已经尝试将它放在我的主题的functions.php文件中,并且还使用我编写的插件中的计算和unset()调用来计算运费 . 无论哪种方式,它都没有取消ups:03运费 . 如果可以避免,我宁愿不编辑UPS插件 . 这个函数应该在哪里调用?

回答(0)