Wordpress Woocommerce:按装运国更改总价

Wordpress Woocommerce:按装运国更改总价,wordpress,woocommerce,shipping,Wordpress,Woocommerce,Shipping,我想改变总结帐价格,每当用户改变航运国家。如果我选择“意大利”价格,它不会发生变化;如果我选择美国价格,我必须打折扣 这部分似乎由ajax运行 谢谢我们正试图调整运费。?如果是这样,您可以根据需要调整此代码段 add_filter('woocommerce_package_rates', 'wf_add_extra_cost_based_on_state_and_shipping_class', 10, 2); function wf_add_extra_cost_based_on_state_

我想改变总结帐价格,每当用户改变航运国家。如果我选择“意大利”价格,它不会发生变化;如果我选择美国价格,我必须打折扣

这部分似乎由ajax运行


谢谢

我们正试图调整运费。?如果是这样,您可以根据需要调整此代码段

add_filter('woocommerce_package_rates', 'wf_add_extra_cost_based_on_state_and_shipping_class', 10, 2);
function wf_add_extra_cost_based_on_state_and_shipping_class($available_shipping_methods, $package) {
    global $woocommerce;
    $state_list = array('HI', 'AK');

    $shipping_classes = array(
        'my-shipping-class', ///enter the name of shipping class slug
    );
    $additional_price = 10; // static amount

    $customer_state = (WC()->version < '2.7.0') ? WC()->customer->shipping_state : WC()->customer->get_shipping_state();
    if (in_array($customer_state, $state_list)) {
        $avail_shipping_class = array();
        foreach ($package['contents'] as $key => $cart_item) {
            $avail_shipping_class[] = $cart_item['data']->get_shipping_class(); 

        }
        if (!empty(array_intersect($shipping_classes, $avail_shipping_class))) {
            foreach ($available_shipping_methods as $method_key => &$method) {
                $method->cost += $additional_price;
            }
        }
    }
    return $available_shipping_methods;
}
add_filter('woocommerce_package_rates','wf_add_extra_cost_基于_state_和_shipping_class',10,2);
函数wf\u添加基于状态和装运类的额外成本($available\u shipping\u methods,$package){
全球商业;
$state_list=array('HI','AK');
$shipping\u classes=数组(
“我的装运类”,///输入装运类slug的名称
);
$additional_price=10;//静态金额
$customer\u state=(WC()->版本<'2.7.0')?WC()->客户->发货状态:WC()->客户->获取发货状态();
if(在数组中($customer\u state,$state\u list)){
$avail_shipping_class=array();
foreach($key=>$cart\u项的包['contents']{
$avail_shipping_class[]=$cart_item['data']->get_shipping_class();
}
如果(!empty(数组相交($shipping\u classes,$avail\u shipping\u classes))){
foreach($method\u key=>&$method的可用方法){
$方法->成本+=$附加价格;
}
}
}
返回$available\u shipping\u方法;
}

也可以。谢谢