Woocommerce:按运送国家更改总价

Woocommerce: change total price by shipping country

我想在用户更改送货国家/地区时更改结账总价。例如:如果我 select "Italy" price 不发生变化;如果我select美国价格我必须打折。

这部分似乎 运行 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;
}