I'm using the below code to both 'unset' the country field, and make it not required on the 'edit address' account endpoint form.
However, when removed, the form does not save, which I seem to have isolated down to the fact that the billing country field is required, and so the form cannot save when it is not present.
How can the below be updated to ensure the form retains functionality, but doesn't have the country field?
// Billing fields
function custom_billing_fields( $fields ) {
// Billing Fields
$fields['billing_first_name']['label'] = 'First name';
$fields['billing_last_name']['label'] = 'Last name';
$fields['billing_company']['label'] = 'Company name';
$fields['billing_address_1']['label'] = 'Street address';
$fields['billing_address_2']['label'] = 'Apartment, unit, etc';
$fields['billing_city']['label'] = 'City';
$fields['billing_state']['label'] = 'County/State';
$fields['billing_country']['label'] = 'Country';
$fields['billing_postcode']['label'] = 'Postcode';
$fields['billing_email']['label'] = 'Email';
$fields['billing_phone']['label'] = 'Phone';
// Remove required attribute (replaced by jQuery validation for inline errors)
$fields['billing_first_name']['required'] = false;
$fields['billing_last_name']['required'] = false;
$fields['billing_address_1']['required'] = false;
$fields['billing_city']['required'] = false;
$fields['billing_state']['required'] = false;
$fields['billing_country']['required'] = false;
$fields['billing_postcode']['required'] = false;
$fields['billing_phone']['required'] = false;
$fields['billing_email']['required'] = false;
// Remove validation attribute (replaced by jQuery validation for inline errors)
unset($fields['billing_first_name']['validate']);
unset($fields['billing_last_name']['validate']);
unset($fields['billing_address_1']['validate']);
unset($fields['billing_city']['validate']);
unset($fields['billing_state']['validate']);
unset($fields['billing_country']['validate']);
unset($fields['billing_postcode']['validate']);
unset($fields['billing_phone']['validate']);
unset($fields['billing_email']['validate']);
// Unset fields
unset($fields['billing_address_2']);
unset($fields['billing_state']);
//unset($fields['billing_country']);
return $fields;
}
add_filter( 'woocommerce_billing_fields' , 'custom_billing_fields' );