Skip to content
Fluid Checkout
  • Demo
  • Features
  • Add-ons
    • Complete Bundle Save 42%
    • Fluid Checkout PRO
    • Google Address Autocomplete
    • Address Book
    • EU-VAT Assistant
  • Pricing PRO
  • Docs
  • Support
  • My account
0,00 € 0 items
Home / Docs / Customize checkout fields and adding custom checkout fields

How can we help?

Getting started

  • Do I need to uninstall the free version when upgrading to PRO, or is Fluid Checkout Lite required?
  • Getting Started with Fluid Checkout
  • Translate Fluid Checkout plugins into your language

Features

  • WooCommerce edit cart on checkout — change quantity or remove items from the cart directly at the checkout page
  • Trust symbols — add security badges, trust seals and other trust symbols to strategic places on the checkout, cart and order received pages
  • Order pay – optimized and intuitive design for your WooCommerce Order Pay page
  • Local Pickup — WooCommerce Local Pickup hide shipping address when local pickup is selected
  • International phone numbers — WooCommerce checkout phone number validation and formatting based on country rules
  • Express checkout — quick payment buttons for Google Pay, Apple Pay and other payment methods
  • Design templates — match your brand styles on the WooCommerce Checkout template
  • Billing address positions — choose to display billing address before shipping, inside the shipping step or force shipping and billing address to a single section
  • Account matching / user matching — associate purchases with and existing customer account without logging in

Customizations

  • Change the icon or icon color for the cart button on mobile
  • Move the “Phone” field to the contact step
  • Configure cart quantity fields for decimal quantities
  • Change fields copied from shipping address to billing address
  • Move first and last name fields to the contact step
  • Customize Local Pickup location address and use multiple pickup locations
  • Customize button colors and other button styles
  • Customize colors of elements on Fluid Checkout
  • Customize template files for WooCommerce and Fluid Checkout
  • Customize checkout steps
  • Add custom house number field and make it required
  • Customize checkout fields and adding custom checkout fields
  • Safely add code snippets to your WooCommerce website

Compatibility

  • Compatibility with plugin YITH WooCommerce Cart Messages Premium
  • Compatibility with plugin WooCommerce Delivery Slots by Iconic
  • Compatibility with plugin Mailchimp for WooCommerce
  • Compatibility with plugin WooCommerce Checkout Manager By QuadLayers
  • Compatibility with plugin Breakdance
  • Compatibility with theme Pressmart
  • Compatibility with theme Divi and the Divi Builder
  • Compatibility with WooCommerce Block-based checkout and cart forms
  • Compatibility with theme Botiga
  • Compatibility with theme Atomion
  • Compatibility with theme OceanWP
  • Compatibility with plugin Digits
  • Compatibility with plugin Storefront Powerpack
  • Troubleshooting – jQuery events or vanilla JavaScript events not working
  • Compatibility with theme ZK Nito
  • Compatibility with theme Woodmart
  • Compatibility with plugin “Plugin Organizer”

Troubleshooting

  • Troubleshooting – jQuery events or vanilla JavaScript events not working
  • Troubleshooting – Local pickup prevents customer from proving a shipping address, blocking other shipping methods
  • Troubleshooting – Trust symbols widgets randomly moving to other areas when switching themes

Account & Purchases

  • Can I get a refund for my purchase?
  • Finding my invoice, adding billing details and VAT number
  • New versions updates are not appearing on my website

Development

  • Troubleshooting – jQuery events or vanilla JavaScript events not working
  • Changelog format and semantic version numbers
  • Changelog – Fluid Checkout PRO & Lite
View Categories

Customize checkout fields and adding custom checkout fields

Making changes to checkout fields or adding custom fields to your checkout page #

Custom checkout fields can be added or changed on Fluid Checkout in the same way as for the original WooCommerce checkout.

There are two main ways you make changes to the checkout fields on your WooCommerce checkout page:

  1. Using a checkout fields editor plugin (recommended method)
  2. Using a code snippet

You should also be aware of some caveats regarding checkout field customizations when using Fluid Checkout. Read the section “Checkout field order caveats” in this article.

Using a checkout fields editor plugin (recommended method) #

Fluid Checkout is compatible with most checkout fields editor plugins for basic changes to the WooCommerce checkout fields. Basic changes would be:

  1. Change field label, description, and placeholder text
  2. Change field size and CSS classes
  3. Change field order (with caveats, see below)
  4. Remove or disable existing fields
  5. Add custom fields

Currently, we recommend using the plugin Checkout Field Editor for WooCommerce (by Themehigh), as we have tested and added full compatibility with it.

Advanced checkout fields customizations #

For advanced features, such as adding conditional fields and sections, you’ll need a compatible checkout field editor plugin that offers those advanced features, and the Fluid Checkout PRO plugin.

Currently, Fluid Checkout is only compatible with advanced features of the Checkout Field Editor for WooCommerce PRO (by Themehigh). Please note that to use these advanced features you’ll need the PRO version of both Fluid Checkout PRO and Checkout Field Editor for WooCommerce PRO (by Themehigh).

Using a code snippet #

Making changes to checkout fields via a custom PHP code snippet is significantly more difficult than using a checkout field editor plugin.

However, there are times when simple changes can be done via code snippets instead of having yet another plugin installed.

Fluid Checkout is fully compatible with the native WooCommerce filter hooks used to make changes to the checkout fields, be it to change labels, add new fields, or remove existing fields. Those filter hooks are:

  1. woocommerce_billing_fields
  2. woocommerce_shipping_fields
  3. woocommerce_checkout_fields

Some examples of code snippets:

Making changes to billing fields using the filter hook woocommerce_billing_fields:

/**
 * Change billing address 1 field description.
 */
function fluidcheckout_change_billing_address_1_field_args( $fields ) {
	// Bail if field is not present
	if ( ! array_key_exists( 'billing_address_1', $fields ) ) { return $fields; }
	
	$fields[ 'billing_address_1' ][ 'label' ] = __( 'Address line 1', 'your-text-domain' );
	$fields[ 'billing_address_1' ][ 'description' ] = __( 'Address line 1 description here', 'your-text-domain' );
	$fields[ 'billing_address_1' ][ 'placeholder' ] = __( 'Apartment, suite, unit...', 'your-text-domain' );
	
	return $fields;
}
add_filter( 'woocommerce_billing_fields', 'fluidcheckout_change_billing_address_1_field_args', 300 );

Making changes to shipping fields using the filter hook woocommerce_shipping_fields:

/**
 * Change shipping phone field label.
 */
function fluidcheckout_change_shipping_phone_label( $fields ) {
	// Bail if shipping phone not available
	if ( ! array_key_exists( 'shipping_phone', $fields ) ) { return $fields; }
	
	$fields[ 'shipping_phone' ]['label'] = __( 'Phone', 'your-text-domain' );
	
	// Uncomment the line below to change the field description
	// $fields[ 'shipping_phone' ]['description'] = __( 'Your best phone number', 'your-text-domain' );
	
	// Uncomment the line below to remove the field description
	// $fields[ 'shipping_phone' ]['description'] = null;
	
	return $fields;
}
add_filter( 'woocommerce_shipping_fields', 'fluidcheckout_change_shipping_phone_label', 300 );

Making changes to billing fields using the filter hook woocommerce_checkout_fields:

/**
 * Swap the position of the billing first and last names to display the last name field first.
 */
function fluidcheckout_billing_last_name_first( $checkout_fields ) {
	// Remove field size and position classes
	if ( false !== ( $key = array_search( 'form-row-first', $checkout_fields['billing']['billing_first_name']['class'] ) ) ) { unset( $checkout_fields['billing']['billing_first_name']['class'][ $key ] ); }
	if ( false !== ( $key = array_search( 'form-row-last', $checkout_fields['billing']['billing_last_name']['class'] ) ) ) { unset( $checkout_fields['billing']['billing_last_name']['class'][ $key ] ); }
	
	// Change priority and add new appropriate size and position classes
	$checkout_fields['billing']['billing_first_name']['priority'] = 20;
	$checkout_fields['billing']['billing_first_name']['class'] = array_merge( $checkout_fields['billing']['billing_first_name']['class'], array( 'form-row-last' ) );
	$checkout_fields['billing']['billing_last_name']['priority'] = 10;
	$checkout_fields['billing']['billing_last_name']['class'] = array_merge( $checkout_fields['billing']['billing_last_name']['class'], array( 'form-row-first' ) );

	return $checkout_fields;
}
add_filter( 'woocommerce_checkout_fields', 'fluidcheckout_billing_last_name_first', 300 );

If you are unsure about how to add the code snippet, check our article:
How to safely add code snippets to your WooCommerce website

There are a couple of things you need to keep in mind though:

  1. Fluid Checkout runs its fields customizations with a priority of 100 and 200, so any changes should be made with a higher priority. We recommend using a priority higher than 300.
  2. Some plugins might use an even higher priority, for instance, Checkout Field Editor for WooCommerce (by ThemeHigh) uses a priority of 1000, so ensure your customization code run at priority higher than that when using this plugin.

In case your changes are not taking effect, please try a higher priority value and see if it solves the issue.

Limitation: checkout field display order #

There is a limitation in Fluid Checkout regarding adding new fields, where the fields added to the shipping or billing section that does not have a correspondence in the other section will be displayed after the common fields.

For example, if you have custom fields for “Start date” and “End date” for an insurance policy added to the billing section, these fields will be displayed after the common billing address fields regardless of the order (priority) set for those fields via a checkout fields customization plugin or code snippet. However, if you add the corresponding fields to the shipping section, the fields will be displayed in the correct order as defined for both the billing and shipping sections.

Corresponding fields are fields that have the same ending on their field keys, for instance:

  1. billing_address_1 -> shipping_address_1
  2. billing_start_date -> shipping_start_date
  3. billing_end_date -> shipping_end_date

Although not ideal, this limitation is what makes it possible to use the option “(billing) same as shipping address” with a decent user experience.

We have a task on our backlog improve this in the future.

Limitation: Phone fields required #

In some cases, the shipping phone field might be forced to be required if the billing phone field is set as required, or vice-versa if you have the billing address section being displayed before the shipping address with Fluid Checkout PRO.

This is a limitation of how the checkout fields are copied from the one address section to the other. If the customer had not provided a value for the shipping phone field (set as optional) and the billing phone is set as required, and the customer chooses the option to copy the “billing address same as shipping address”, there would be no way enter a value for the phone field on the billing address section and it would not pass the validation criteria.

This limitation is related to the limitation of checkout fields display order above. We have a task on our backlog to improve this in the future.

Alternative solutions:

  • If possible, set the billing phone field as optional; or
  • Move the billing phone field to the contact step: Move the “Phone” field to the contact step; or
  • Use Fluid Checkout PRO to move the billing address section before the shipping address, this way you can se the billing phone as required and keep the shipping phone as optional.

Search Keywords #

customize fields, checkout fields, form fields, customize checkot, fiels

Still stuck? How can we help?

How can we help?

Updated on February 24, 2024
Add custom house number field and make it requiredSafely add code snippets to your WooCommerce website
Table of Contents
  • Making changes to checkout fields or adding custom fields to your checkout page
  • Using a checkout fields editor plugin (recommended method)
    • Advanced checkout fields customizations
  • Using a code snippet
  • Limitation: checkout field display order
  • Limitation: Phone fields required
  • Search Keywords
Fluid Checkout

Frictionless Multi-step Checkout for WooCommerce

© 2021-2025 Fluid Checkout OÜ

Terms | Refunds | Privacy Policy | Cookies

Products
  • All products
  • Fluid Checkout PRO
  • Fluid Checkout Lite
  • Google Address Autocomplete add-on
  • Address Book add-on
  • EU-VAT Assistant add-on
Company
  • Support
  • My account
  • Careers Hiring
  • About
  • Affiliates program
  • Homepage
  • Homepage
  • Features
  • Pricing PRO
  • Demo
  • Docs
  • Support
  • My account