Custom WordPress Plugin Cost: Hours, Examples, Upkeep
Short answer: A custom WordPress plugin typically takes 3 to 6 hours for a single feature, 15 to 30 hours for one with its own content type and settings page, and 30 to 60 hours or more once an external API is involved. These are estimates. Multiply by your developer's rate and budget for upkeep as WordPress and PHP move on.
The WordPress.org plugin directory describes itself as the largest directory of free and open-source WordPress plugins. Whatever you need, someone may already have built it and keep it updated. So the first question isn’t what a custom plugin costs. It’s whether you need one at all.
Custom plugin, snippet or off-the-shelf?
Three routes lead to a new feature on a WordPress site. Each makes sense in different situations.
| Criterion | Snippet in functions.php | Custom plugin | Off-the-shelf plugin |
|---|---|---|---|
| Upfront cost | very low | medium | low to medium |
| Survives a theme change | |||
| Fits your exact need | partly | ||
| Updated by someone else | |||
| Who you depend on | nobody | your developer | the plugin author |
Off-the-shelf wins when one exists that does roughly what you want without dragging in ten features you’ll never use. Custom wins when every existing plugin would need bending out of shape, when the available ones are bloated, or when your process is specific to your business. Snippets are fine for one-line tweaks, like switching off a default behaviour. Once it grows past a few lines, the code belongs in its own small plugin.
What a custom WordPress plugin costs
You won’t find credible flat prices for “a plugin”, because the word covers anything from a 20-line shortcode to a booking engine with its own database tables. Only an estimate in hours makes sense.
The bands below are rough estimates for typical scopes. They aren’t measured data, and your quote can differ in either direction. To turn hours into money, the chart uses an example rate of $100 an hour, which is roughly the break-even rate for a US freelancer we worked out in our article on the freelance developer hourly rate. The German median is €90.
Estimated hours × $100 example rate. Own estimate, not survey data.
The hours rarely go into the core feature itself. They go into admin forms, permissions for different user roles and error handling. Then there is the interplay with whatever else is already installed. Picture a WooCommerce store running 30 extensions next to a lean company blog: two very different working environments.
Worked example: class sign-ups for a yoga studio
Say a small yoga studio wants to manage classes in the WordPress admin, list them on the site with a filter by week, and let people sign up through a short form that emails the studio. Event plugins exist, but the ones that do this also bring ticketing and calendar exports nobody asked for.
- Content type "Class" with date, room, places (4 h)
- $400
- Class list with weekly filter (5 h)
- $500
- Sign-up form emailing the studio (4 h)
- $400
- Testing with the theme and existing plugins, incl. mobile (3 h)
- $300
- Questions, handover, short documentation (2 h)
- $200
- 18 hours
- $1,800
Assumed hours for an example, at a $100/h example rate.
The breakdown shows where you can save. Skip the weekly filter and five hours go. Route sign-ups through a form plugin you already use instead of a custom form and you might save three more. Make those calls before the quote arrives, not after.
Upkeep: what happens after delivery
Your plugin won’t stay finished forever. WordPress ships new versions several times a year, counting maintenance and security releases, and PHP keeps moving too. According to its official requirements, WordPress now recommends PHP 8.3 or newer. Code written a few years ago for PHP 7 can throw warnings or errors on current versions.
How much upkeep costs comes down to dependencies. If the plugin only uses WordPress core functions, it may run untouched for years. If it calls a courier’s or payment provider’s API, it needs updating whenever that provider changes things. What those integrations cost in general is covered in our guide to API integration cost.
Settle two things from the start. Do you get the complete source code, ideally in a Git repository you control? And at what rate and how quickly will the developer handle future changes?
Licensing: the WordPress twist
WordPress itself is licensed under the GPL. For the official directory, the plugin guidelines require that code and images comply with the GPL or a GPL-compatible licence. Obfuscated code isn’t allowed there either.
For a plugin that only runs on your own site and is never handed to anyone else, the GPL’s obligations hardly come into play, since they mostly apply when software is distributed. What counts for you is the contract. You want the right to modify the code, to have another developer maintain it and to use it on your other sites. Our article on who owns the code explains how to put that in writing.
Treat it as a red flag if a custom plugin only works with the developer’s licence key, or if its code is deliberately unreadable. That ties you to one person even though you paid for the work.
How to spot a careful WordPress developer
Price says little about quality. Asking the right questions in the first call says more. Good answers are short and matter-of-fact. Evasive ones are a signal.
- Do you develop on a staging copy or directly on the live site?
- Is the code in a Git repository, and will I get access?
- How do you handle form input?
- What happens to the plugin’s data when I delete it?
- Do you follow the WordPress coding standards?
The question about form input is the important one. The WordPress security documentation puts it first among its principles: never trust user input, validate it, and escape output as late as possible. Classic holes like cross-site scripting and SQL injection appear exactly where outside data reaches the database or the page unchecked. Developers who answer with words like sanitising and nonces know that documentation. Anyone who says a small plugin doesn’t need that kind of care probably doesn’t.
How to commission the plugin
Describe what editors and visitors will be able to do, not the technology. Include your WordPress version, your host’s PHP version, the active theme and the list of installed plugins. WordPress gathers all of this under Tools, Site Health, Info, with a button to copy it to the clipboard. Include two or three testable acceptance criteria and ask for the plugin to be tested on a staging copy first.
If the plugin is heading towards becoming the core of a business model, with user accounts and payments, WordPress may no longer be the right foundation. Before you sink thousands into a plugin, it’s worth discussing a standalone web application instead.
To get going: copy the Site Health info from your admin, write three sentences about what the plugin should do, and send that to two developers for quotes.
Questions people ask
Can't I just add a snippet to functions.php?
For two or three lines, yes. The catch is that functions.php belongs to your theme, so the feature disappears when you switch themes. A tiny custom plugin costs barely more and stays independent of the theme.
Does my custom plugin have to be GPL-licensed?
For the official WordPress.org directory, yes: only GPL-compatible licences are accepted there. A plugin that only runs on your own site and is never distributed is largely unaffected in practice. What matters more for you is that your contract gives you the source code and the right to have it changed by others.
How long does it take to get a small plugin built?
The coding for a single feature is measured in hours, not days. Expect one to two weeks from brief to sign-off anyway, because questions, testing on a staging site and your own review take time.
What does it cost to maintain a custom plugin?
That depends on its dependencies. A plugin that only uses WordPress core functions can run unchanged for years. One that talks to a shipping or payment API needs work whenever that provider changes its API.