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.
Yes based on the hooks and templates in WooCommerce you can customize the flow of checkout to be anything you want. I know that's a simple answer but most things you can think of can be done in WC. Even pulling in live shipping rates via an API to FedEx, USPS, UPS, etc...
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"
By default, the WooCommerce checkout section doesn't give you the option to use a shipping address. As you can imagine, this happens quite often so it's important to provide your customers with this option. Even though some might say that it's better to have fewer fields on the checkout page, an extra option to specify a shipping address will actually be better for your shoppers. So, by adding an option to either provide a completely different shipping address or an optional shipping address field, you will cover every possible situation. Checkout Manager is one of the best checkout plugins out there and opens up many ways to optimize your checkout page. Now, let us see how to enable your shipping address fields using Checkout Manager. Now that your plugin is set up, let us customize your WooCommerce checkout page and enable the shipping address. Open the plugin’s options menu by going to WooCommerce > Checkout on your WP Admin sidebar. Now, your shipping address should be enabled on your WooCommerce checkout page. Your customers can simply add their separate shipping addresses at checkout. This method allows you to enable the shipping address on your checkout forms in a few steps. While it requires using a plugin, Checkout Manager has a free version and comes with a huge number of additional features to customize your checkout page.
You can read more here: https://quadlayers.com/enable-shipping-address-in-woocommerce/
Besides if you do have any questions give me a call: https://clarity.fm/joy-brotonath