Woocommerce在结帐时根据所选的运输类别更改运输方式标题

时间:2018-06-25 15:04:05

标签: php wordpress woocommerce cart shipping-method

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

例如

运输方式标题当前为固定费用,我有2种产品:

  • 如果要购买产品A,则需要“脆弱运输”
  • 如果要购买产品B,则需要具有“标准运费”

不幸的是,我必须使用类进行运输,因此其他方法将无效。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分: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文件中。经过测试,可以正常工作。

  

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

答案 1 :(得分:0)

我认为此plugin可能会为您提供帮助,并同时检查此one