使用ajax更改国家/地区时更新购物车配送

使用ajax更改国家/地区时更新购物车配送,ajax,wordpress,methods,woocommerce,shipping,Ajax,Wordpress,Methods,Woocommerce,Shipping,我有3个区域的航运和每个区域有3个以上的方法航运(不同) 美国区:运输方法=1。公寓费率1、2。扁平率2、3。公寓费率3 英国地区:运输方法=1。公寓费率4,2。公寓费率5,3。公寓费率6 全世界分区:方法Shipping=1。公寓费率7,2。公寓费率8 现在,我想在使用ajax选择计费国家/地区时显示按地区发货的方法 例如: 如果选择计费国家/地区US,则仅显示/显示按地区US发货的方法(1.扁平费率1、2.扁平费率2、3.扁平费率3) 如何使用ajax实现这一点,但没有刷新页面 任何人都可以

我有3个区域的航运和每个区域有3个以上的方法航运(不同)

  • 美国区:运输方法=1。公寓费率1、2。扁平率2、3。公寓费率3

  • 英国地区:运输方法=1。公寓费率4,2。公寓费率5,3。公寓费率6

  • 全世界分区:方法Shipping=1。公寓费率7,2。公寓费率8

  • 现在,我想在使用ajax选择计费国家/地区时显示按地区发货的方法

    例如: 如果选择计费国家/地区US,则仅显示/显示按地区US发货的方法(1.扁平费率1、2.扁平费率2、3.扁平费率3)

    如何使用ajax实现这一点,但没有刷新页面

    任何人都可以帮助我。。。谢谢。。 如果您可以通过电子邮件发送任何帮助:andythreesaputra@gmail.com或者回答这个论坛。
    非常感谢

    您可以使用WooCommerce过滤器“WooCommerce\u package\u 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;
    }