My question really is on the shipping with btcpay.
Is there a way to automate this similar to how Shopify does it? My concern is way overcharging or undercharging.
What do you mean? As I understood, you charge shipping according to distance, the nearer someone is to your store, the lower the price is and it grows when you have to deliver further. You should easily be able to have flexible shipping prices with the help of some WordPress plugins. Then btcpayserver should be able to convert $ shipping price into USD automatically. If it can't do that, then my best guess is that you'll have to hire a WordPress developer, probably from a 3rd world country and they'll do their job well at a low rate compared to western prices.