What WordPress handles for plumbers
A clear emergency call path. A tap-to-call phone link and a clear note about after-hours availability are ordinary page content.
Quote requests with photos. A form plugin such as Contact Form 7 collects the job details; photo uploads and conditional fields depend on the plugin chosen.
Suburbs and towns you service. There is no core feature for this, so a suburb or postcode check is built as a small custom block.
Booking routine jobs online. Booking plugins such as Amelia add services, times and booking forms; choosing a staff member is in its paid tiers.