плагинов масса, но большинство из них шлак. т.к. в них много лишнего и никакой гибкости.
По стандарту можно добавить вариант доставки, установить цену и его переименовать.
Если хотим калькулятор. Проще написать решение самому. У нас не раз появлялся клиент которому требуется гибкая доставка с разными условиями.
Самый верный вариант это написать ее:
1. На странице корзины отключаем кнопку перейти к оплате.
2. Создаем товар Доставка DHL 200км, DHL300км и тд.
3. На странице корзины выключаем кнопку перейти к оплате.
4. Выводим на этой же странце в шаблоне селект с доступными городами для доставки и городом пользователя и кнопкой "рассчитать доставку"
5. При нажатии "расчитать доставку" отправляем значения из полей начального и конечного пункта.
Считаем расстояние между городами с помощью таблицы или старонних сервисов.
6. Пишем условие если расстояние > или = 200 то добавить товар "доставка DHL 200 км" в корзину. и включаем кнопку перейти к оплате. Все пересчитается как надо.
PS.
На этой странице написано как добавить товар в корзину при посещении легким движением мозгов переписываем его чтобы товар добавлялся при обновлении страницы.