I would like to show/hide a fee in the WooCommerce checkout process depending on the location of the user.

For this i would like to first use the IP address of the user to determine the location and later the address he enters

 

 

This is how I used WooCommerce to get the country code on a recent project, using the geolocate_ip method of the WC_Geolocation class.

 

$country = 'US';

if (class_exists('WC_Geolocation')) {
    $location = WC_Geolocation::geolocate_ip('', true, false);

    if (isset($location['country'])) {
        $country = $location['country'];
    }
}

switch ($country) {
    case 'AU':
        break;
    case 'US':
        break:
}