我定义了两种送货方式:
在Table Rates中,我有3个选项:
属于本地费率区域的所有订单都显示有这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
设置它,但它无法正常工作
任何人都可以引导我到我应该看的东西吗?
答案 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)
答案 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);
(注意:这是有效的,因为我想要的运费实际上是列表中的第一个,但默认情况下没有被选中)