Solved (I think) - found a free plug-in that does all we need without wrecking anything else and without needing a degree in bad UI navigation skills.
https://wordpress.org/plugins/woocommerce-checkout-manager/
Leaving the rest for future reference.
Virtual products, no need for billing details etc, so
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) { 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_address_2']); unset($fields['billing']['billing_postcode']); unset($fields['billing']['billing_company']); unset($fields['billing']['billing_last_name']); unset($fields['billing']['billing_email']); unset($fields['billing']['billing_city']); return $fields;}To save editing functions.php or messing with child themes, using my custom functions plug-in.
BUT this doesn't work, it just disables all checkout fields, including any custom ones I added, like BTC address, and the email one, which I commented out. In fact, the first line alone totally disables all fields. Very zen...
So, maybe this would work but it's beyond me: