Woocommerce: remove all form labels at once

I’m using WooCommerce to build a webshop.

The determined format for forms is that there’s no labels, only placeholders. I’ve been removing the labels like so:

Read More
<?php

// WooCommerce Checkout Fields Hook
add_filter( 'woocommerce_checkout_fields' , 'custom_wc_checkout_fields' );

// Change the format of fields with type, label, placeholder, class, required, clear, label_class, options
function custom_wc_checkout_fields( $fields ) {

//BILLING
$fields['billing']['billing_first_name']['label'] = false;

return $fields;
}
?>

But since I want no labels anywhere, I was wondering if there’s a way to remove all of them at once. Instead of going through them all individually. Does anybody have an idea?

Thanks!


EDIT:

I realize this is possible by just adding some css(display none), but since this is not a very clean solution, I was wondering if there is some other way to accomplish this.

Related posts

Leave a Reply

2 comments

  1. You can remove any $field->property with unset.
    Good reading and references can be found here: Customizing checkout fields using actions and filters

    Now, for your question in how to do it globally, you can use a loop, something like:

    // WooCommerce Checkout Fields Hook
    add_filter('woocommerce_checkout_fields','custom_wc_checkout_fields_no_label');
    
    // Our hooked in function - $fields is passed via the filter!
    // Action: remove label from $fields
    function custom_wc_checkout_fields_no_label($fields) {
        // loop by category
        foreach ($fields as $category => $value) {
            // loop by fields
            foreach ($value as $field => $property) {
                // remove label property
                unset($fields[$category][$field]['label']);
            }
        }
         return $fields;
    }
    
  2. You can do this with css by adding the below, other than this I don’t know of a way to remove all the labels at once.

    .woocommerce form.checkout label 
    {
        display: none;
    }