Сайты на WordPress + Интернет магазины WooCommerce
Взять WooCommerce.
Написать плагин с базой городов и цен.
Далее сделать автоопределение города по IP.
Сделать форму смены города если автоопределение ошиблось.
Записывать ID города в куку.
При добавлении в корзину перехватывать данные элемента и подставлять цену города.
Сделать обработку поля Город в форме заказа. Если отличается с городом в куке - сообщать об ошибке.
Как то так. В общих чертах. Думаю у среднего программиста уйдет около 1-2 месяца на разработку и отладку такого механизма.