"Buying for a Business?" Checkbox at Checkout
Hides the Company field behind a "Buying for a business?" checkbox on the classic checkout, keeping the form short for consumers and requiring a company name when ticked.
Opens WPIDE on
Code
add_filter( 'woocommerce_billing_fields', function ( $fields ) {
$fields['billing_is_business'] = array(
'type' => 'checkbox',
'label' => 'Buying for a business?',
'class' => array( 'form-row-wide' ),
'priority' => 25,
);
return $fields;
}, 30 );
add_action( 'woocommerce_after_checkout_validation', function ( $data, $errors ) {
if ( ! empty( $data['billing_is_business'] ) && '' === trim( (string) ( $data['billing_company'] ?? '' ) ) ) {
$errors->add( 'validation', 'Please enter your company name.' );
}
}, 10, 2 );
add_action( 'wp_footer', function () {
if ( ! function_exists( 'is_checkout' ) || ! is_checkout() || is_wc_endpoint_url() ) {
return;
}
?>
<script>
jQuery( function ( $ ) {
var box = $( '#billing_is_business' );
var rows = $( '#billing_company_field, #billing_vat_number_field' );
function toggle() { rows.toggle( box.is( ':checked' ) ); }
box.on( 'change', toggle );
toggle();
} );
</script>
<?php
} );
Notes
Also toggles the VAT number field from the "EU VAT Number Field" snippet, and the Company field must be enabled in the Customizer.
How to add this snippet
- Install WPIDE on your WordPress site (it is free) and open Code Snippets.
- Use snippet above adds it from the library in one click. Or copy the code into a new snippet with the same code type.
- It is added inactive: review the code and settings, then switch it on.