如果已经完成WooCommerce,请隐藏地址

I'm looking for a way to hide the billing address on the checkout page of my woocommerce theme if the user has already filled up the billing form (from a previous order or if the user has done it previously from the "my account" page).

I've found ways to hide the billing / shipping form completely on the checkout page if the user is logged in (see below), however I can't find a way to do the above.

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {
    if( is_user_logged_in() ){
        unset($fields['billing']);
        $fields['billing'] = array();
    }
    return $fields;
}

Any idea?

Thank you!

It will depend what you consider to be a fully completed address i made snippet function you can use to go further with.

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {
    if( is_user_logged_in() && !has_billing()){
        unset($fields['billing']);
        $fields['billing'] = array();
    }
    return $fields;
}

// Check the meta of Postcode and Country if they are entered.
function has_billing($user_id = false){
            if(!$user_id)
                $user_id = get_current_user_id();

            $shipping_postcode = get_user_meta( $user_id, 'billing_postcode', true );
            $shipping_country = get_user_meta( $user_id, 'billing_country', true );

            // Fetch more meta for the condition has needed.  
            if($shipping_postcode && $shipping_country){
                return true;
            }

            return false;
}

Note: the prefix shipping_ there is one for billing ( billing_ ).

Edit: Here the meta key billing_address_1 and billing_address_2 always the prefix can be either billing_ or shipping_

Also if for some reason you don't have a shipping or billing address associated in the user meta keys but the customer once did an order you can check this code to fetch order address.

Woocommerce WC_Order get_shipping_address() not returning as array (old post might not be valid anymore)