Wordpress woocommerce - 在统一费率可用时隐藏其他送货方式

时间:2016-06-05 22:39:48

标签: wordpress woocommerce shipping rate flat

在免费送货时,很容易找到隐藏其他送货方式的方法。但是,当统一费率可用时,我想隐藏其他送货方式(我有自定义其他方法)。

你能帮帮忙吗?

问候

1 个答案:

答案 0 :(得分:2)

以下代码是从this article修改的:

add_filter('woocommerce_package_rates', 'xa_hide_shipping_rates_when_flat_rate_is_available', 10, 2);
function xa_hide_shipping_rates_when_flat_rate_is_available($rates, $package) {
    global $woocommerce;
    $version = "2.6";
    if (version_compare($woocommerce->version, $version, ">=")) {
        foreach($rates as $key => $value) {
            $key_part = explode(":", $key);
            $method_title = $key_part[0];
            if ('flat_rate' == $method_title) {
                $flat_rate_shipping = $rates[$key];
                // Unset all rates.
                $rates = array();
                // Restore flat rate shipping rate.
                $rates[$key] = $flat_rate_shipping;
                return $rates;
            }
        }
    }
    else {
        if (isset($rates['flat_rate'])) {
            // Below code is for unsetting single shipping method/option.
            $flat_rate = $rates['flat_rate'];
            // Unset all rates.
            $rates = array();
            // Restore flat rate shipping rate.
            $rates['flat_rate'] = $flat_rate;
        }
    }

    return $rates;
}

我不确定您使用的是哪个WooCommerce版本,但我已经测试了2.6版本,但未测试之前的版本。