And based on options (local pickup / shipping), we can control which fields to be displayed for billing address? As I dont want to force my customer to enter full address if he is opting for Local Pickup.
You first have to create Shipping zones and add shipping methods specific to those zones. Now as soon as you enter the address on the checkout page, WooCommerce searches for that address in all the zones, and if matched display all the shipping assigned to that zone.
Or you can try this also:
Under WooCommerce/Settings/Shipping zones clear the 'Zone regions' then under shipping options/ Calculations uncheck both:
"Enable the shipping calculator on the cart page" and
"Hide shipping costs until an address is entered"