To start adding custom fields, head to your WordPress dashboard, go to WooCommerce, and click Checkout Form to open the editor.
Here, you can see both Classic Checkout and Block Checkout Editors. By default, the editor opens in Classic mode. The editor is organized into three default sections – Billing, Shipping, and Additional Details. Also, create custom sections. For more details about the section, navigate to the Manage Sections page.
Please note we are discussing the fields in classic checkout.
Checkout Field Editor for WooCommerce plugin lets you add custom fields apart from the default ones. You can choose from over 24+ field types to your checkout form:
| Basic Information Collection |
|
| Choice-Based Inputs |
|
| Dates and Time Selection |
|
| File Upload |
|
| Checkout Content Structure |
|
Add New Field
Follow the steps below to add a new field to the checkout form.
Step 1: Open Checkout Fields
Navigate to:
WooCommerce → Checkout Form → Checkout Fields
Click the Add Field button.
Step 2: Configure the Field
Enter the field details.
For this example, we’ll create an Organization Name field.
- Field Type: Text Field
- Name: organization_name
- Label: Organization Name
You can also fill in other settings as required.
Below is a detailed explanation of each option available in the Basic Info/Basic Details section.
Basic Info
This tab includes all the essential settings required to configure a checkout field. The properties available under the Basic Details section are listed below.
Please note that the available options may vary depending on the selected field type. Some settings appear only for specific field types.
Field Type
This defines the type of input field you want to create.
The plugin supports 24 field types, including Text, Password, Text Area, Select, Checkbox, Radio, Paragraph, URL, and others (as listed earlier on this page).
Choose the field type based on the type of information you want to collect from customers.
Name
The unique identifier of the field. Each field must have a unique name. No two fields can share the same name. It is used internally by WooCommerce and WordPress to save, retrieve, and process the field value.
⚠️ Note: Removing default WooCommerce fields (such as Billing Email or Country) may cause unexpected errors in the checkout process. Also, The field names prefixed with billing_ or shipping_ will automatically prefill with previous order field values. Some field names are reserved & usage will create unexpected errors.
Example:
For a Organization Name field, use: organization_name
Use lowercase letters and underscores instead of spaces.
Label
The visible title displayed above the field on the checkout page. It helps customers understand what information they need to provide.
Example: Organization Name
Description
Additional information displayed below the field label.
Example:
Enter your organization name here (if applicable)
Default Value
Allows you to prefill the field with a value that appears automatically when the checkout page loads. Customers can modify or replace this value as needed.
Placeholder
A short hint displayed inside the input field before the user enters a value. The placeholder disappears once the user starts typing.
Example:
For an email field, you may show: name@example.com
Max. Length
Specifies the maximum number of characters allowed in the field. For instance, if set to 30, the user cannot enter more than 30 characters.
Example:
Full Name (e.g., max 30)
Min. Length
Specifies the minimum number of characters required in the field. For instance, if set to 3, the user must enter at least 3 characters.
Example:
Full Name (e.g., min 3)
Validations
Allows you to apply validation rules to the field. During order placement, the entered value is validated against the defined validation rule or regular expression.
Built-in validators include: Email, Phone, Postcode, State, Number, Url
You can also create custom validation rules in the Advanced Settings section. Any custom validation rule defined there will appear in this dropdown.
Example : Field to enter a logo name which starts with capital letter only
To learn more, see Custom Validators documentation.
Required
If enabled, the field becomes mandatory. Customers must fill in this field to complete the checkout.
Example : License Agreement / Terms & Conditions
Enabled
Uncheck this option to temporarily disable the field without deleting it.
Example : Enable a field in a particular season only
Order Meta Data
Stores the field value as part of the order data. To create an order-specific field, enable the Order Meta Data checkbox.
This means:
- The value is specific to each order.
- It is saved in the wp_postmeta table as order metadata.
Example:
A Delivery Date field can be saved as Order Meta Data because it changes for every purchase.
User Meta Data
The user metadata is the information directly related to the user and will be the same for every order to a probability of 90%. Data. To create a user-level field, enable the User Meta Data checkbox.
This means:
- The value remains the same across multiple orders.
- It can be edited from the user profile page.
- It is saved in the wp_usermeta table.
Example:
Date of Birth.
Refer the detailed page for more info on Order meta data and User meta data.
Where Custom Fields Appear in My Account
If User Meta Data is enabled,
- Custom fields added under Billing or Shipping will appear in:
My Account → Addresses → Billing/Shipping Address - Custom fields created in Additional Info or Custom Sections will appear in:
My Account → Account Details
Properties Specific to Text and Telephone Fields
The following setting is available only for Text and Telephone field types.
Input Masking
Input Masking allows you to restrict the format in which customers enter data.
Instead of allowing free text, you can define a specific pattern that the input must follow. This helps ensure consistent formatting and reduces invalid entries.
| Property | Description |
| Mask Character: a | Allows only alphabetic characters (A–Z, a–z).
Example Mask: aaa Valid Input: ABC |
| Mask Character: 9 | Allows only numeric digits (0–9).
Example Mask: 999 Valid Input: 123 |
| Mask Character: * | Allows alphanumeric characters (letters and numbers).
Example Mask: *** Valid Input: A1B |
| Special Characters | You can include special characters such as @, %, !, $, ^, – directly in the mask where required.
Example Mask: aa-999 Valid Input: AB-123 (Here, the hyphen – is a fixed character in the format.) |
| Complete Example | Ensures a consistent telephone number format.
Mask: (99) 99999-9999 Valid Input: (12) 12345-1234 |
| Advanced Pattern | Supports length ranges.
Mask: a{1,3}-9{1,3} Allows 1–3 letters, followed by a hyphen, followed by 1–3 digits. Valid Input: abc-123 |
| Dynamic | If set to Dynamic, the field accepts input in any format entered by the customer. No predefined pattern will be enforced. |
Properties Specific to Select, Multiselect, Radio, and Checkbox Group Fields
The following properties apply only to Select, Multiselect, Radio, and Checkbox Group field types.
| Property | Description |
| Options | Used to define the list of selectable choices that will be displayed to the customer. Each option contains the following settings: |
| Option Value | The internal value (option key) used to store data in the database when the option is selected. This is not visible to customers and should be unique for each option. Example: express_delivery. |
| Option Text | The label displayed to the customer on the checkout page. Example: Express Delivery (1–2 Days). |
| Price | Allows you to assign an additional cost to this option. |
| Price Type | Defines how the additional cost is calculated. (Explained in detail in the Price Details section.) |
Properties Specific to Select and Multiselect Fields
The following properties apply only to Select and Multiselect field types.
| Property | Description |
| Disable ‘Enhanced Select (Select2)’ for Select Field | By default, Select fields use the enhanced Select2 dropdown, which includes search functionality, improved styling, and better usability for large option lists. Enabling this option reverts the field to a standard browser dropdown. |
| Maximum Selections | Defines the maximum number of options a customer can select in a Multiselect field. For example, if set to 2, the customer can choose up to two options only. |
Properties Specific to Date, Time, Month, Week, and Datetime Local Fields
Configure default values, minimum, and maximum limits for date, time, month, week, and datetime local field types. These properties control what values are pre-filled and what range is selectable on the checkout form.
Properties Specific to the jQuery UI Date Picker
Customize the date picker’s display format, default date, selectable date range, year dropdown, disabled days/dates, and more. These settings apply exclusively when the jQuery UI Date Picker is enabled.
Properties Specific to the Field Type: Time Picker (jQuery UI)
Set up time slots with configurable minimum/maximum times, step intervals, time format, preparation time (start time), linked date fields, and disabled time ranges. These settings apply only to the jQuery UI Time Picker field type.
Properties Specific to the Field Type: File Upload
The following properties apply only to the File Upload field type.
| Property | Description |
| Max Size (in MB) | Specifies the maximum file size allowed for upload. Enter the size in megabytes (MB).
Example: If set to 5, users can upload files up to 5 MB only. |
| Accepted File Types | Defines the file formats that are allowed for upload. Enter file extensions separated by commas.
Example: jpg, png, pdf, docx This field allows customers to upload one or multiple files at once. Only files with the specified extensions will be accepted.
|
Note:
The uploaded file will be displayed as a clickable link on the Thank You page, Order Details page, and so on. So you can view the uploaded file by just clicking on the link, which will open in a new window
Properties Specific to Heading, Label, and Paragraph Fields
The following properties apply to the Heading, Label, and Paragraph field types.
| Property | Description |
| Title | The main text content displayed as the heading. |
| Title Type | Defines the HTML heading tag used for the title (e.g., H1, H2, H3, etc.).
Example: H2 The title will be displayed using the H2 heading tag. |
| Title Color | Specifies the color of the title text. |
| Title Class | A comma-separated list of CSS classes applied to the title element. This allows custom styling using your theme or custom CSS. |
| Subtitle | The secondary text displayed below the main title. |
| Subtitle Type | Defines the HTML tag used for the subtitle (e.g., H2, H3, etc.). |
| Subtitle Color | Specifies the color of the subtitle text. |
| Subtitle Class | A comma-separated list of CSS classes applied to the subtitle element for custom styling. |
Note:
To display the heading/label field in emails, ensure that the option “Enable Heading/Label field display in emails” is enabled. You can find this option under Other Settings in the Plugin’s Advanced Settings tab.
Display Styles
This section allows you to control the appearance of the field and where it should be displayed after checkout.
| Property | Description |
| Wrapper Class | A comma-separated list of CSS classes which will be added to the container that wraps the input
Example: For example, if color_red is added to the wrapper class, the class will be available in the wrapper element as <p class=”color_red”>. Further, this is simply a CSS class, so you can style it as follows: .color_red{ color: red; } |
| Input Class | A comma-separated list of CSS classes which will be added to the input element. |
| Label Class | Adds custom CSS classes to the field label. This allows you to style the label independently from the input field. Enter multiple classes separated by commas. |
| Display in Admin Emails | If enabled, the field and its value will appear in all WooCommerce order emails sent to the store administrator. |
| Display in Customer Emails | If enabled, the field and its value will appear in the customer’s Order Confirmation email and Thank You email. |
| Display in Order Detail Pages | Displays the field and its value on the Order Details page in both the Admin Order View and the Customer View (My Account → Orders). |
| Display in Thank You Page | If enabled, the field and its value will be shown on the Thank You page after checkout. |
Note:
Use these settings to manage the visibility of custom fields across different areas of the store. You can choose to display a field in admin emails, customer emails, order details, or the thank you page. For instance, an Age Verification field can be shown only in admin emails for internal verification, while remaining hidden from customer-facing emails.
Price Details
This section allows you to apply additional charges based on the value selected or entered in the field.
| Property | Description |
| Price | Adds an extra amount to the order total when the field is used. For example, you can charge an additional fee for services such as gift wrapping or custom tailoring.
|
| Price Type | Defines how the additional price is calculated. You can configure it as a fixed amount, dynamic value, custom calculation, or apply the charge based on specific conditions. |
| Taxable | Determines whether the additional charge should be subject to tax. Enable this option if the extra fee must follow your store’s tax rules. |
| Tax Class | Specifies which tax class applies to the additional charge. Options: Standard, Reduced rate, Zero rate. This controls how tax is calculated for this fee. |
To learn more about price fields and their configuration, refer to the Price Fields article.
Display Rules
Use this tab to configure conditional display logic for the field. You can define rules to control when the field should be shown or hidden based on specific conditions. To learn more about setting up and configuring display conditions, refer to the Set Display Rules article.
Repeat Rules
Use this tab to configure repeat settings for the field. Repeat rules allow you to define how many times a field can be repeated or dynamically added by the user with certain rules. To learn more about configuring repeat behavior and available options, refer to the Repeat Rules article.
Edit Field
You can modify the properties of any field, including the default WooCommerce checkout fields.
To Edit a Field
- Navigate to WooCommerce → Checkout Form → Checkout Fields.
- Locate the field you want to edit.
- Click the edit icon next to the field.
- A popup window will appear displaying the field settings.
- Update the required properties.
- Click Save & Close to apply your changes.
Note:
Be cautious when editing default fields (such as Billing Email or Country). Removing or misconfiguring essential fields may affect the checkout process.
Delete Fields
To Delete a Field
- Navigate to WooCommerce → Checkout Form → Checkout Fields.
- Select the field(s) you want to delete by checking the box on the left side of each field.
- Click the Remove button in the action bar.
- The selected fields will be highlighted with a red background.
- Click Save Changes to permanently delete the selected fields.
Note:
Be careful when deleting default fields (such as Billing Email or Country). Removing essential checkout fields may cause unexpected issues in the checkout process.
Rearranging Fields
You can change the order of fields to control how they appear on the checkout page.
To Rearrange Fields
- Navigate to WooCommerce → Checkout Form → Checkout Fields.
- Drag and move the field using the handle on the left side of each row.
- Position the field in the desired location.
- Click Save Changes to apply the new order.
Copy a Field (Duplicate Field)
The Duplicate Field option allows you to quickly create a new field by copying the settings of an existing field. This is useful when you need a similar field with only minor changes.
To Duplicate a Field
- Navigate to WooCommerce → Checkout Form → Checkout Fields.
- Click the copy icon next to the field you want to duplicate.
- A popup window will appear with all properties pre-filled, except for the Field Name.
- Enter a unique Field Name for the new field.
- Click Save & Close the field to create the duplicated field.
Note:
The Field Name must be unique. If you use an existing field name, the field cannot be saved.
Reset to Default Fields
You can revert your checkout fields to the original WooCommerce defaults using the reset options in the Checkout Fields editor. These options are accessible from the Actions dropdown within any section. To reset a field, you can either reset a specific section individually or reset all sections at once if required.
Available Reset Options
| Option | Description |
| Reset This Section | Resets only the currently selected section (for example, Billing, Shipping, or Additional Details) to the default WooCommerce fields. All other sections remain unaffected. |
| Reset All Sections | Resets all checkout field sections to the default WooCommerce configuration. All customizations and custom fields across every section will be permanently removed. |
How to Reset Sections
- Navigate to WooCommerce → Checkout Form → Checkout Fields.
- Open the required section in the editor.
- Click the Actions dropdown.
- Choose either Reset This Section or Reset All Sections.
- Click the Apply button.
Warning
Use the reset options carefully based on your requirements. If a required default field (for example, Billing Country) is accidentally deleted from a section, you can use Reset This Section to restore only that specific section to its default WooCommerce fields. If you want to remove all customizations and start fresh, use Reset All Sections to revert all checkout field sections to their default configuration.
Please note that all custom fields and changes made will be permanently removed once a reset is applied. This action cannot be undone.
Import / Export
You can import or export checkout fields and sections to reuse configurations across different stores or environments.
- Import / Export Fields – Export or import individual checkout fields.
- Import / Export Sections – Export or import entire checkout sections with all included fields.
Refer to the Import / Export Checkout Fields or Managing Sections (Import / Export sections) documentation for detailed instructions.
Warning: Overriding a Default Field
When you create a new field with the field name of a default field, the existing field gets replaced by the custom field. All properties of the default field will also get replaced with new properties assigned.
Getting Started
Block Checkout Field Editor
Advanced Settings
For Developers
Compatible Plugin & Themes
Frequently Asked Questions
How