woocommerce_checkout_fieldsfilter-hookWC 3.0.0

Allows changing the set of fields and their properties in forms on the checkout page.

Usage

add_filter( 'woocommerce_checkout_fields', 'wp_kama_woocommerce_checkout_fields_filter' );

/**
 * Function for `woocommerce_checkout_fields` filter-hook.
 * 
 * @param array[] $checkout_fields 
 *
 * @return array[]
 */
function wp_kama_woocommerce_checkout_fields_filter( $checkout_fields ){
	// filter...
	return $checkout_fields;
}
$fields
An array of fields.

Example data in $fields:

Array(
	[billing] => Array(
			[billing_first_name] => Array(
					[label] => First name
					[required] => 1
					[class] => Array(
							[0] => form-row-first
					)
					[autocomplete] => given-name
					[priority] => 10
			)

			[billing_last_name] => Array(
					[label] => Last name
					[required] => 1
					[class] => Array(
							[0] => form-row-last
					)
					[autocomplete] => family-name
					[priority] => 20
			)

			[billing_company] => Array(
					[label] => Company name
					[class] => Array(
							[0] => form-row-wide
					)
					[autocomplete] => organization
					[priority] => 30
					[required] =>
			)

			[billing_country] => Array(
					[type] => country
					[label] => Country
					[required] => 1
					[class] => Array(
							[0] => form-row-wide
							[1] => address-field
							[2] => update_totals_on_change
					)
					[autocomplete] => country
					[priority] => 40
			)

			[billing_address_1] => Array
				(
					[label] => Address
					[placeholder] => House number and street name
					[required] => 1
					[class] => Array(
							[0] => form-row-wide
							[1] => address-field
					)
					[autocomplete] => address-line1
					[priority] => 50
			)

			[billing_address_2] => Array(
					[placeholder] => Apartment, suite, unit, etc. (optional)
					[class] => Array(
							[0] => form-row-wide
							[1] => address-field
					)
					[autocomplete] => address-line2
					[priority] => 60
					[required] =>
			)

			[billing_city] => Array(
					[label] => Town / City
					[required] => 1
					[class] => Array(
							[0] => form-row-wide
							[1] => address-field
					)
					[autocomplete] => address-level2
					[priority] => 70
			)

			[billing_state] => Array(
					[type] => state
					[label] => State / County
					[required] => 1
					[class] => Array(
							[0] => form-row-wide
							[1] => address-field
					)
					[validate] => Array(
							[0] => state
					)
					[autocomplete] => address-level1
					[priority] => 80
					[country_field] => billing_country
					[country] => RU
			)

			[billing_postcode] => Array(
					[label] => Postcode / ZIP
					[required] => 1
					[class] => Array(
							[0] => form-row-wide
							[1] => address-field
					)
					[validate] => Array(
							[0] => postcode
					)
					[autocomplete] => postal-code
					[priority] => 90
			)

			[billing_phone] => Array(
					[label] => Phone
					[required] => 1
					[type] => tel
					[class] => Array(
							[0] => form-row-wide
					)
					[validate] => Array(
							[0] => phone
					)
					[autocomplete] => tel
					[priority] => 100
			)

			[billing_email] => Array(
					[label] => Email
					[required] => 1
					[type] => email
					[class] => Array(
							[0] => form-row-wide
					)
					[validate] => Array(
							[0] => email
					)
					[autocomplete] => email username
					[priority] => 110
			)

	)

	[shipping] => Array(
			[shipping_first_name] => Array(
					[label] => First name
					[required] => 1
					[class] => Array(
							[0] => form-row-first
					)
					[autocomplete] => given-name
					[priority] => 10
			)

			[shipping_last_name] => Array(
					[label] => Last name
					[required] => 1
					[class] => Array(
							[0] => form-row-last
					)
					[autocomplete] => family-name
					[priority] => 20
			)

			[shipping_company] => Array(
					[label] => Company name
					[class] => Array(
							[0] => form-row-wide
					)
					[autocomplete] => organization
					[priority] => 30
					[required] =>
			)

			[shipping_country] => Array(
					[type] => country
					[label] => Country
					[required] => 1
					[class] => Array(
							[0] => form-row-wide
							[1] => address-field
							[2] => update_totals_on_change
					)
					[autocomplete] => country
					[priority] => 40
			)

			[shipping_address_1] => Array(
					[label] => Address
					[placeholder] => House number and street name
					[required] => 1
					[class] => Array(
							[0] => form-row-wide
							[1] => address-field
					)
					[autocomplete] => address-line1
					[priority] => 50
			)

			[shipping_address_2] => Array(
					[placeholder] => Apartment, suite, unit, etc. (optional)
					[class] => Array(
							[0] => form-row-wide
							[1] => address-field
					)
					[autocomplete] => address-line2
					[priority] => 60
					[required] =>
			)

			[shipping_city] => Array(
					[label] => Town / City
					[required] => 1
					[class] => Array(
							[0] => form-row-wide
							[1] => address-field
					)
					[autocomplete] => address-level2
					[priority] => 70
			)

			[shipping_state] => Array(
					[type] => state
					[label] => State / County
					[required] => 1
					[class] => Array(
							[0] => form-row-wide
							[1] => address-field
					)
					[validate] => Array(
							[0] => state
					)
					[autocomplete] => address-level1
					[priority] => 80
					[country_field] => shipping_country
					[country] => RU
			)

			[shipping_postcode] => Array(
					[label] => Postcode / ZIP
					[required] => 1
					[class] => Array(
							[0] => form-row-wide
							[1] => address-field
					)
					[validate] => Array(
							[0] => postcode
					)
					[autocomplete] => postal-code
					[priority] => 90
			)

	)

	[account] => Array()

	[order] => Array(
			[order_comments] => Array(
					[type] => textarea
					[class] => Array(
							[0] => notes
					)
					[label] => Order notes
					[placeholder] => Notes about your order, for example special notes for delivery.
			)

	)

)

Examples

#1 Remove the "Company name" field from forms on the Checkout page

add_filter( 'woocommerce_checkout_fields', 'remove_billing_company_field' );

/**
 * Removes the "Company name" field from forms on the Checkout page.
 *
 * @param array $fields
 *
 * @return array
 */
function remove_billing_company_field( $fields ){
	unset( $fields['billing']['billing_company'] );
	unset( $fields['shipping']['shipping_company'] );

	return $fields;
}

Changelog

Since 3.0.0 Introduced.
Since 3.0.0 or earlier

Where the hook is called

WC_Checkout::initialize_checkout_fields()
woocommerce_checkout_fields
woocommerce/includes/class-wc-checkout.php 310
$this->fields = apply_filters( 'woocommerce_checkout_fields', $this->fields );

Where the hook is used in WooCommerce

Usage not found.