问题描述
我有3个区域运输,每个区域还有3个方法运输(不同)
i have 3 zone shipping and every zone have 3 more method shipping (diffrent)
-
Zone US:方法运输= 1. Flate_rate1,2. Flate_rate2,3. Flate_rate3
Zone US : Method Shipping = 1. Flate_rate1, 2. Flate_rate2, 3. Flate_rate3
Zone UK:方法运输= 1. Flate_rate4,2. Flate_rate5,3. Flate_rate6
Zone UK : Method Shipping = 1. Flate_rate4, 2. Flate_rate5, 3. Flate_rate6
区域所有工作区:方法运输= 1. Flate_rate7,2. Flate_rate8
Zone All WOrld : Method Shipping = 1. Flate_rate7, 2. Flate_rate8
现在通过区iwant到显示方法航运当选择使用Ajax帐单国家
now iwant to display method shipping by zone when select billing country with ajax.
示例:如果选择美国开票国,则仅显示/显示按地区划分的运输方式(1. Flate_rate1,2. Flate_rate2,3. Flate_rate3)
example :if select billing country US then only display/showing method shipping by zone us (1. Flate_rate1, 2. Flate_rate2, 3. Flate_rate3)
如何使用ajax进行操作,但没有刷新页面.
how do that with ajax, but no refresh page.
任何人都可以帮助我...谢谢.如果有任何帮助,您可以通过电子邮件发送:[email protected]或回答此论坛.非常感谢
any can help me... thank's..if any help you can send by email : [email protected] or answer this forum. thank's very much
推荐答案
您可以使用WooCommerce过滤器"woocommerce_package_rates"来实现.
You can achieve this using the WooCommerce filter 'woocommerce_package_rates'.
您可以用这种方式编码
add_filter('woocommerce_package_rates', 'wf_modify_rates', 10, 3);
function wf_modify_rates($available_shipping_methods, $package){
$methords_us = array('flaterate:1','flaterate:2');
if( $package['destination']['country'] == 'US'){
foreach ($available_shipping_methods as $methord_name => $methord) {
if(!in_array($methord_name, $methords_us)){
unset($available_shipping_methods[$methord_name]);
}
}
}
return $available_shipping_methods;
}
这篇关于使用Ajax更改国家/地区时更新购物车运输woocommerce的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!