首页 文章

Woocommerce根据所选的运输类别更改结账时的运输方式 Headers

提问于
浏览
1

我想根据产品的运输类别更改商店结帐时显示的送货方式 Headers .

例如

送货方式 Headers 目前是统一费率,我有2个产品:

  • 如果正在购买产品A,我需要它"Fragile shipping"

  • 如果正在购买产品B,我需要它"Standard shipping"

可悲的是,我必须使用类进行运输,因此替代方法不起作用 .

任何帮助,将不胜感激 .

2 回答

  • 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;
    }
    

    代码位于活动子主题(或活动主题)的function.php文件中 . 经过测试和工作 .

    不要忘记在运输设置中重新启用“启用调试模式”选项 .

  • 0

    我认为plugin可以帮助你,也可以查看one

相关问题