如何在WooCommerce中找到运输类别ID?

时间:2018-12-13 20:37:07

标签: php wordpress woocommerce

我使用Hide shipping method for specific shipping classes in woocommerce应答代码,试图根据运输类别隐藏运输选项。

大件商品和小件商品在我们的网站上都有各自的运输类别,我们只希望对小件商品提供快递运输。

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( WC()->cart->get_cart() as $cart_item ){
        // If we find the shipping class
        if( $cart_item['data']->get_shipping_class_id() == $class ){
            unset($rates[$method_key_id]); // Remove the targeted method
            break; // Stop the loop
        }
    }
    return $rates;
}

我了解如何实现代码,但是我不知道在哪里可以找到运输类别ID,我只能找到弹头和运输类别名称

// HERE define your shipping class to find

$class = 92;

在上面的示例中,我在哪里找到要替换 92 的ID?

谢谢。

1 个答案:

答案 0 :(得分:0)

要使其与运输类“子弹” 一起使用,您将改为使用WC_Product get_shipping_class()方法:

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 SLUG
    $class_slug = 'large';

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

    // Checking in cart items
    foreach( WC()->cart->get_cart() as $cart_item ){
        // If we find the shipping class
        if( $cart_item['data']->get_shipping_class() == $class_slug ){
            unset($rates[$method_key_id]); // Remove the targeted method
            break; // Stop the loop
        }
    }
    return $rates;
}

代码进入您的活动子主题(或活动主题)的function.php文件中...

  

有时候,您可能需要刷新前往送货地区的送货方式,然后禁用/保存并重新启用/保存您的“固定费率”送货方式。

     

要查找送货方式ID和送货类别ID,请参见下文...


查找运输类别ID。

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

搜索术语名称或术语段,您将获得术语ID(运输类别ID)。

2)在Woocommerce运费设置中,使用浏览器html检查器工具编辑“固定费率”,检查运费类别费率字段,例如:

enter image description here

在归因名称属性中,您拥有woocommerce_flat_rate_class_cost_64。所以64是运输类的ID。


获取送货方式费率ID:

  

要获取相关的发货方式费率ID (类似于 flat_rate:12 ),请使用浏览器代码检查器检查每个相关的单选按钮属性 {{ 1}} ,例如:

     

enter image description here