I have this function and I only want to set the billing country if user is a guest, otherwise we should not change the billing country, but instead take the billing country as what the user has in his profile in WooCommerce.
add_filter( 'default_checkout_billing_country', 'bbloomer_change_default_checkout_country' );
function bbloomer_change_default_checkout_country() {
return 'US';
}
You could use is_user_logged_in
:
add_filter( 'default_checkout_billing_country', 'bbloomer_change_default_checkout_country' );
function bbloomer_change_default_checkout_country($default) {
if(is_user_logged_in()){
return $default;
}else{
return 'US';
};
};
However, sometimes, because of caching issues, is_user_logged_in
doesn't work. In that case then you could use global $current_user
.
add_filter( 'default_checkout_billing_country', 'bbloomer_change_default_checkout_country' );
function bbloomer_change_default_checkout_country($default) {
global $current_user;
if($current_user->ID){
return $default;
}else{
return 'US';
};
};
Let me know if you could get it to work!