How to disable field in woocommerce checkout page

1.3k Views Asked by At

I am trying to disable my address 1 and address 2 fields on checkout page. I have used the below working code on my-account page, I tried to use the code after editing on checkout page to disable the address 1 and address 2 field. But unfortunately it doesn't work, Kindly help.

add_filter( 'woocommerce_checkout_fields', 'readonly_billing_account_fields', 25, 1 );
function readonly_billing_account_fields ( $billing_fields ) {
    // Only my account billing address for logged in users
    if( is_user_logged_in() && is_account_page() ){

        $readonly = ['readonly' => 'readonly'];

        $billing_fields['address_1']['custom_attributes'] = $readonly;
        $billing_fields['address_2']['custom_attributes'] = $readonly;
    }
    return $billing_fields;
}
1

There are 1 best solutions below

0
suii On BEST ANSWER

Add is_checkout() on your condition then change the fields to billing_address_1 and 2.

add_filter( 'woocommerce_checkout_fields', 'readonly_billing_account_fields', 25, 1 );
function readonly_billing_account_fields ( $billing_fields ) {
    // Only my account billing address for logged in users
    if( (is_user_logged_in() && is_account_page()) || is_checkout()){

        $readonly = ['readonly' => 'readonly'];

        $billing_fields['billing']['billing_address_1']['custom_attributes'] = $readonly;
        $billing_fields['billing']['billing_address_2']['custom_attributes'] = $readonly;
    }
    return $billing_fields;
}