如何禁用“统一费率”单选按钮并保留WooCommerce中的其他托运方式

时间:2020-04-28 作者:dominic tanui

我有两种配送方式,我想禁用默认的固定费率配送方式。我试过这种方法here 但它不起作用

add_filter( \'woocommerce_package_rates\', \'hide_shipping_method_based_on_shipping_class\', 10, 2 );
function hide_shipping_method_based_on_shipping_class( $rates, $package )
{
    if ( is_admin() && ! defined( \'DOING_AJAX\' ) )
        return;

    // HERE define your shipping class to find
    $class = 92;

    // HERE define the shipping method to hide
    $method_key_id = \'flat_rate:7\';

    // Checking in cart items
    foreach( $package[\'contents\'] as $item ){
        // If we find the shipping class
        if( $item[\'data\']->get_shipping_class_id() == $class ){
            unset($rates[$method_key_id]); // Remove the targeted method
            break; // Stop the loop
        }
    }
    return $rates;
}

enter image description here

1 个回复
SO网友:CodeMascot

您需要修改代码中以下变量的值-

// HERE define your shipping class to find
$class = 92;

// HERE define the shipping method to hide
$method_key_id = \'flat_rate:7\';
尽管source answer 澄清了如何在答案中获得上述内容,这里我将再次列出这些内容。

Finding the shipping class ID.

1) 在数据库中的wp_terms 表格:

搜索术语名称或术语slug,您将获得术语ID(装运类ID)。

2) 在Woocommerce shipping settings(Woocommerce配送设置)上编辑“统一费率”,使用浏览器html检查器工具检查配送类费率字段,如:

enter image description here

在输入名称属性中woocommerce_flat_rate_class_cost_64. 所以64是shipping类的ID。

<小时>

Get the shipping method rate ID:

获取相关shipping methods rate IDs, 类似于flat_rate:12, 使用浏览器代码检查器检查每个相关单选按钮属性name 例如:

enter image description here

相关推荐