WooCommerce:如何设置默认的表费率运费方式?

时间:2016-03-30 00:33:23

标签: php wordpress woocommerce

我定义了两种送货方式:

  1. 表格率 - 优先级1
  2. 本地皮卡 - 优先级2
  3. 在Table Rates中,我有3个选项:

    1. 澳大利亚邮报(2至8个工作日):6.50美元
    2. 跟踪和运费保险:$ 7.25
    3. 全国交付(5至12个工作日):$ 1.40
    4. 属于本地费率区域的所有订单都显示有这3个选项,默认情况下,选择选项3(我假设它是最便宜的)

      它默认优先级为表速率,但您无法在实际表速率中定义优先级。我希望默认选项是选项1:注册澳大利亚邮政(2到8个工作日)

      我发现此处设置了默认送货方式:

      WC()->session->[chosen_shipping_methods] => a:1:{i:0;s:17:"table_rate-5 : 70";}

      显然可以使用以下两种方法进行访问和修改:

      WC()->session->get('chosen_shipping_methods');
      WC()->session->set('chosen_shipping_methods', $chosen_method);
      

      但是,我可以获得当前chosen_shipping_methods我无法设置新的。{/ p>

      我正在尝试使用操作woocommerce_shipping_method_chosen设置它,但它无法正常工作

      任何人都可以引导我到我应该看的东西吗?

3 个答案:

答案 0 :(得分:1)

只看你的网站,而不是看代码,我猜这可能是你想要的......

add_action( 'template_redirect', 'reigel_chosen_shipping_methods' );

function reigel_chosen_shipping_methods(){
    remove_action(current_filter(), __FUNCTION__);
    WC()->session->set( 'chosen_shipping_methods', array('table_rate-7 : 72') );
}

答案 1 :(得分:0)

您可以通过管理信息中心重新订购送货方式。转到 Woocommerce>运送>装运方法并使用拖放更改订单。

enter image description here

答案 2 :(得分:0)

这是我最终使用的,根据需要工作:

/*=Use the shipping method filter to set the "selected" shipping method to 
 * the first (default) method in the list
**************************************************************************/
function oley_reset_default_shipping_method( $method, $available_methods ) {

    $method = key($available_methods);
    return $method;

}
add_filter('woocommerce_shipping_chosen_method', 'oley_reset_default_shipping_method', 10, 2);

(注意:这是有效的,因为我想要的运费实际上是列表中的第一个,但默认情况下没有被选中)