---
title: How to make address fields read only
description: "Use the following snippets to make the billing and/or shipping address fields read-only. ### Make billing fields read only: PHP ``` function sl_cc_make_billing_fields_readonly($fields){ $fields['billing_address_1']['custom_attributes'] = array('readonly'=>'readonly'); // Below is an example of making the billing city field readonly. // $fields['billing_city']['custom_attributes']…"
url: "https://lpacwp.com/docs/how-to-make-address-fields-read-only/"
updated: "2024-01-15"
category: Custom Code Samples
---

# How to make address fields read only

Use the following snippets to make the billing and/or shipping address fields read-only.

### Make billing fields read only:

 PHP

```
function sl_cc_make_billing_fields_readonly($fields){
  $fields['billing_address_1']['custom_attributes'] = array('readonly'=>'readonly');
  // Below is an example of making the billing city field readonly.
  // $fields['billing_city']['custom_attributes'] = array('readonly'=>'readonly');
  return $fields;
}
add_filter('woocommerce_billing_fields', 'sl_cc_make_billing_fields_readonly', PHP_INT_MAX);
```

### Make shipping fields read only:

 PHP

```
function sl_cc_make_shipping_fields_readonly($fields){
  $fields['shipping_address_1']['custom_attributes'] = array('readonly'=>'readonly');
  // Below is an example of making the shipping city field readonly.
  // $fields['shipping_city']['custom_attributes'] = array('readonly'=>'readonly');
  return $fields;
}
add_filter('woocommerce_shipping_fields', 'sl_cc_make_shipping_fields_readonly', PHP_INT_MAX);
```

You may add both of these snippets to the same field if you wish to disable both fields.

---

It's possible to make other fields on the page readonly, in the snippets above I commented out an example showing how to disable the billing and shipping city fields. You can duplicate the line where the `...address_1` fields are being set as read only and simply change the field to one of the following to have them become disabled:

#### Billing

`billing_first_name`

`billing_last_name`

`billing_company`

`billing_address_1`

`billing_address_2`

`billing_city`

`billing_postcode`

`billing_country`

`billing_state`

`billing_email`

`billing_phone`

#### Shipping

`shipping_first_name`

`shipping_last_name`

`shipping_company`

`shipping_address_1`

`shipping_address_2`

`shipping_city`

`shipping_postcode`

`shipping_country`

`shipping_state`
