代码之家  ›  专栏  ›  技术社区  ›  Chandan Sahu

在woocommerce中将“统一费率”运输方式设置为默认值

  •  0
  • Chandan Sahu  · 技术社区  · 8 年前

    我有一个woocommerce网站,我设置了两种发货方式:
    -统一费率

    我想在购物车或结帐页面中将“统一费率”发货方式设置为默认(选中)。

    任何帮助都应受到感谢。

    2 回复  |  直到 8 年前
        1
  •  2
  •   LoicTheAztec    8 年前

    1) 您可以在购物车页面中使用以下代码(将“统一费率”装运方法设置为默认值):

    add_action( 'woocommerce_before_cart', 'set_default_chosen_shipping_method', 5 );
    function set_default_chosen_shipping_method(){
        //
        if( count( WC()->session->get('shipping_for_package_0')['rates'] ) > 0 ){
            foreach( WC()->session->get('shipping_for_package_0')['rates'] as $rate_id =>$rate)
                if($rate->method_id == 'flat_rate'){
                    $default_rate_id = array( $rate_id );
                    break;
                }
    
            WC()->session->set('chosen_shipping_methods', $default_rate_id );
        }
    }
    

    代码进入函数。活动子主题的php文件(活动主题或任何插件文件)。

    在WooCommerce 3中测试并工作+


    2) 您还可以在发货区设置中重新排序运费 (但它实际上不起作用,因为最后选择的运输方式是手动的)

        2
  •  0
  •   wadge    5 年前

    您可以使用以下代码将“任意”装运方式设置为默认。

    function reset_default_shipping_method( $method, $available_methods ) {
        $default_method = 'wf_fedex_woocommerce_shipping:FEDEX_GROUND'; //provide the service name here
        if( array_key_exists($method, $available_methods ) )
            return $default_method;
        else
            return $method;
    }
    

    比如说,你正在使用一个像 WooCommerce FedEx Shipping Plugin . 您可以获取值Id(如下所示),并将其粘贴到上述代码中的“$default\u方法”下。

    你必须复制并粘贴代码 WordPress仪表板->外观>编辑器>功能。php

    希望有帮助。:)

    copy the value Id from here