Great question — answering as the UphillTech team:
You can achieve it without plugins by defining shipping zones and limit each zone by zip codes. You need to manually calculate each zones radius though. Example: Step 1: Country Sweden, Zone: Solna, Zip code range: 16900...17331 (WooCommerce understand 3 dots ... as any zip codes from 16900 to 17331 in this case the distance is less than 50 km so I would define shipping rate A for this area.) Step 2: go to calcmaps.com/map-radius/ and draw a circle around areas you want to add so you can define zip code ranges based on distance Step 3: define shipping alternatives like Flat rate etc. for each area. When customer enter a zip code Woocommerce provide available shipping method based on that...
Full answer by Rzgar: https://stackoverflow.stackexchange.com/a/70075713 (CC BY-SA 4.0).
Need it done for your business? UphillTech.