Woocommerce checkout page cutomize

add_filter( 'woocommerce_checkout_fields' , 'avada_remove_checkout_fields' ); 

function quadlayers_remove_checkout_fields( $fields ) { 

unset($fields['billing']['billing_last_name']); 

return $fields; 

}
Hide other fields
As a consequence, if you intend to remove another field, you must add a similar line. The names of the fields that can be drawn are listed below:

unset($fields['billing']['billing_first_name']);
unset($fields['billing']['billing_last_name']);
unset($fields['billing']['billing_company']);
unset($fields['billing']['billing_address_1']);
unset($fields['billing']['billing_address_2']);
unset($fields['billing']['billing_city']);
unset($fields['billing']['billing_postcode']);
unset($fields['billing']['billing_country']);
unset($fields['billing']['billing_state']);
unset($fields['billing']['billing_phone']);
unset($fields['order']['order_comments']);
unset($fields['billing']['billing_email']);
unset($fields['account']['account_username']);
unset($fields['account']['account_password']);
unset($fields['account']['account_password-2']);

Add Custom field in checkout page

/**
* Add custom field to the checkout page
*/

add_action('woocommerce_after_order_notes', 'custom_checkout_field');

function custom_checkout_field($checkout){
    echo '<div id="custom_checkout_field"><h2>' . __('New Heading') . '</h2>';

woocommerce_form_field('custom_field_name', array(
'type' => 'text',
'class' => array(
    'my-field-class form-row-wide'
) ,
'label' => __('Custom Additional Field') ,
'placeholder' => __('New Custom Field') ,
) ,

$checkout->get_value('custom_field_name'));
    echo '</div>';
}

Vaildation

/**
* Checkout Process
*/

add_action('woocommerce_checkout_process', 'customised_checkout_field_process');
function customised_checkout_field_process(){

    // Show an error message if the field is not set.
    if (!$_POST['customised_field_name']) wc_add_notice(__('Please enter value!') , 'error');
}

Save Data

/**
* Update the value given in custom field
*/

add_action('woocommerce_checkout_update_order_meta', 'custom_checkout_field_update_order_meta');
function custom_checkout_field_update_order_meta($order_id){
    if (!empty($_POST['customised_field_name'])) {
        update_post_meta($order_id, 'Some Field',sanitize_text_field($_POST['customised_field_name']));
    }
}