提问者:小点点

根据选定的运输类别更改结账时的运输方式标题


我想根据产品的装运类别更改我的商店结帐中显示的装运方法标题。

例如。

运输方式标题目前是统一费率,我有2个产品:

  • 如果购买产品A,我需要它具有“易碎装运”

遗憾的是,我必须使用类来完成发货,所以其他方法无法工作。

任何帮助都将不胜感激。


共2个答案

匿名用户

以下代码将根据您的“易碎”装运类别重命名您的装运统一费率:

您可能必须在“装运选项”选项卡下的常规装运设置中“启用调试模式”,以临时禁用装运缓存。

守则:

add_filter('woocommerce_package_rates', 'change_shipping_method_name_based_on_shipping_class', 50, 2);
function change_shipping_method_name_based_on_shipping_class($rates, $package){
    // HERE set the shipping class for "Fragile"
    $shipping_class_id = 64;
    $found = false;

    // Check for the "Fragile" shipping class in cart items
    foreach( $package['contents'] as $cart_item ) {
        if( $cart_item['data']->get_shipping_class_id() == $shipping_class_id ){
            $found = true;
            break;
        }
    }

    // Loop through shipping methods
    foreach ( $rates as $rate_key => $rate ) {
        // Change "Flat rate" Shipping method label name
        if ( 'flat_rate' === $rate->method_id ) {
            if( $found )
                $rates[$rate_key]->label = __( 'Fragile shipping', 'woocommerce' );
            else
                $rates[$rate_key]->label = __( 'Standard shipping', 'woocommerce' );
        }
    }
    return $rates;
}

代码进入函数。活动子主题(或活动主题)的php文件。测试和工作。

不要忘记在出货设置中重新启用“启用调试模式”选项。

匿名用户

我认为这个插件可能会帮助你也检查这个