That sentence is most of my work. Extensions, integrations and purpose-built plugins, delivered under your agency’s name and written so the next update does not undo them.
These arrived as sentences from agencies, in the words their client used. None of them is a showcase project; this is ordinary week-to-week work.
Nothing here edits a plugin’s core files. Every change goes through hooks, filters, template overrides or a small companion plugin. That is the difference between a fix that holds and a site that breaks the next time the client hits update, and it is the reason this costs more than the cheapest quote you will get.
Can the options change the price as they pick them?
WooCommerceThe price updates as each option is chosen. It is built on WooCommerce’s own hooks, so the price on screen is always the price charged at checkout.
Hide the prices. They should request a quote instead.
WooCommercePrices are hidden and add-to-cart becomes a quote request. You approve the quote in the admin and it turns into a normal order, so stock and reports keep working.
Can subscribers pause instead of cancelling?
SubscriptionsSubscribers can pause and restart from their own account. The subscription plugin itself is not replaced, so nobody has to be migrated.
They want to build the product and see the price change.
Custom pluginA step-by-step builder where each choice narrows the next one. Combinations that cannot be made are blocked before checkout, and the customer gets a quote at the end.
The form should create the contact in GoHighLevel.
WordPress ↔ GHLEvery submission creates the contact with the right tags and the right pipeline stage. If the same person submits twice, no duplicate is created.
Clients need a login to see their own project.
Custom pluginA dashboard with project status, documents, invoices and an approval step. It runs on WordPress’s own user accounts, so there is only one login to manage.
The form needs to check something before it submits.
FormsCustom validation runs as someone submits, and the data goes straight to wherever it needs to land. Gravity Forms, Fluent Forms or WPForms stays untouched.
Stock is wrong because the warehouse system is separate.
ERP · InventoryStock, products and orders sync on a schedule. If the other system is slow or offline, the job retries and writes a log instead of losing the record.
It was fine last year. Now it crawls.
PerformanceSlow database queries are rewritten, caching is added and old scheduled jobs are cleaned out. Speed is measured on your client’s own data, before and after.
Fix it, but do not change how it looks.
ModernisationAbandoned plugins are replaced and old custom code is rebuilt properly. The front end stays exactly as it was, so your client only notices that it got faster.
Not on the list? It is almost certainly the same kind of job. Send the plugin and the sentence your client used, and you will have a fixed quote and a delivery date within 24 hours.
Plugin work is where a build either quietly becomes a liability or quietly becomes reliable, and the difference is almost never visible at handover. It shows up months later, on an update.
Hooks, filters and companion plugins. Never an edited core file, so a plugin update is an update and not an incident.
A note on which hooks it depends on and what would break it, so the next developer is not reverse-engineering your build.
Enough exposure to know which plugins extend cleanly and which are worth replacing before you commit a quote to a client.
The same white-label terms as every other line: NDA in 24 hours, your accounts, no contact with your client unless you ask for it.
The honest version: this is slower and costs more than editing the plugin file. It is also the reason you will not get a call about it in eight months.
A Figma file, a reference site or three voice notes is enough. You get scope, price and a delivery date in writing.
Every message reaches me directly. There is no ticket queue to disappear into.