Custom WordPress plugin development

Custom WordPress plugins, built to WordPress.org standards: $275 CAD/hr senior dev, 20-hour engagement minimum ($5,500). Multi-week builds quoted fixed-fee after the discovery call. Code that passes WPCS, ships with unit tests, and could be submitted to the .org repository on its merits, whether or not you ever publish it.

WordPress since 2007 · custom post types, REST endpoints, Gutenberg blocks, WP-CLI, and site-specific plugin architecture · 21 plugins published on WordPress.org · $275/hr CAD · Fort Erie, Ontario

Book a 20-minute discovery call Ask a question first

The problem you’re solving

You need WordPress to do something it does not do out of the box. The off-the-shelf plugin that almost solves it is either unmaintained, or shipping with a feature surface so wide that 90 percent of the codebase is fighting against your specific use case. The right answer is a custom plugin scoped to exactly what you need, written by someone who treats WordPress Coding Standards as the starting point, not the deliverable.

Most “custom WordPress plugin” work I have inherited from other developers is a folder of loose PHP files dumped in wp-content/plugins with a header comment and no test coverage. That code becomes a liability the moment the developer who wrote it stops answering email.

What you get

  • Spec-to-shipped custom plugin. Requirements captured, technical spec written, build executed, plugin delivered with documentation.
  • WPCS-compliant code. Passes WordPress Coding Standards via PHPCS in CI. PHPStan static analysis at a sensible level. No deprecated function calls, no global scope pollution, no wp_die() as error handling.
  • Proper architecture. Hooks where hooks belong, classes where classes belong, Composer or hand-written autoloading inside the plugin namespace. Capability checks on every privileged action and nonces on every state-changing form: the basics, applied without exception.
  • Unit tests. PHPUnit tests on the business logic, integration tests where the plugin touches WordPress core APIs. Test suite runs in CI; you get the badge if you want it.
  • .org-ready packaging. Readme.txt in the right format, screenshots, headers, asset structure, and the trunk/tags/assets layout the .org repo expects. Submission is your call; the package is ready either way.
  • Documentation that matches the code. README for developers, in-line PHPDoc on public APIs, and a short admin-facing usage doc for the people who will actually use it.

What this is not

  • Not ongoing support without a retainer. The plugin ships with a defects warranty (30 days). Past that, support is hourly or via a separate support retainer.
  • Not design-only spec work. I do not produce wireframes for your in-house team to build. If the engagement is design-only with no implementation, that is a different shape of work and not what this page is about.
  • Not “wrap this third-party API in a plugin in two hours.” Could probably be done; will not be done well at that scope. The 20-hour minimum exists because anything smaller produces the kind of code that becomes someone’s future liability.
  • Not Gutenberg block libraries with 30 blocks for general distribution. Single-purpose plugins for specific business needs are the sweet spot.

Who this is for

  • Fit. Internal teams or product companies that need a clean integration between WordPress and a system they already run (CRM, billing, internal database, custom API).
  • Fit. Organizations who need WordPress functionality that does not exist on the .org repo, or that exists in a form they cannot trust for production use.
  • Fit. Other developers and agencies who need senior plugin work executed cleanly while their team focuses elsewhere.
  • Fit. Buyers who understand that a properly built plugin is cheaper over five years than a “$300 quick build” that has to be rewritten in eighteen months.
  • Not fit. Anyone whose budget for the entire project is under the 20-hour minimum.
  • Not fit. Buyers who want the plugin built without a written spec because “we’ll just figure it out as we go.” The discovery call is where I find out we are not a fit if so.

The shape of the engagement

  • Discovery call (20 min, free). Tell me what the plugin needs to do. I tell you whether the engagement minimum makes sense for the scope.
  • Paid scoping (1–3 hours billed). Written technical spec: endpoints, hooks, data model, capability matrix, test plan. Spec is a deliverable; you can take it elsewhere if you want.
  • Build. Either time-and-materials at $275/hr against the spec, or fixed-fee for builds where the spec is tight enough to lock the number.
  • Delivery. Plugin code, tests, documentation, and an installation walkthrough. Defects warranty starts on delivery.

Why work with me on this specifically

  • WordPress development since 2007, plugin development across nearly all of that. Author of multiple plugins on the WordPress.org directory and a longer list of public WordPress utilities on GitHub under the thisismyurl profile.
  • Comfortable with the parts most plugin authors avoid: capability and nonce hygiene, proper data sanitization on the input boundary and escaping on the output boundary, Composer-based autoloading inside a plugin without polluting the global namespace, multisite-aware behaviour where it matters.
  • Prior portfolio work for one of Canada’s largest news networks during the 2011–2012 platform migration where plugin code had to coexist with editorial volume and an aggressive performance budget.
  • Senior-developer rate, $275 CAD/hr, 20-hour minimum ($5,500). Multi-week builds fixed-fee after scoping.
  • Independent client work, off the day-job hours at Sherwin-Williams.

Common questions

Will you sign an NDA?

Yes for client-specific implementation details. Reasonable mutual NDAs only: anything that prevents me from naming WordPress and PHP as technologies I work with is not a workable agreement.

Do I own the code?

Yes. Custom-built plugins are work-for-hire; you own the code on delivery. I retain the right to use general patterns and techniques in future work, which is the standard development-contract shape.

Will you publish my plugin to .org?

Only if you want it published. Most custom client work is internal; the package is .org-ready in case the future-you decides to release it, but submission is your call.

What about block development specifically?

Yes. Custom Gutenberg blocks (single blocks or small sets) are within the engagement shape. The build uses the modern @wordpress/scripts tooling, ships built assets, and includes server-side rendering where the block needs to behave correctly without JS.

What if the requirements change mid-build?

Time-and-materials engagements absorb scope changes naturally; fixed-fee engagements get a written change order that adjusts the price honestly. No silent up-billing, no “we ran over by 40 hours” surprise invoices.

What a custom-plugin engagement costs

Custom-plugin engagements ladder by complexity. The full pricing matrix, including the take-it-elsewhere clause on the scoping document, lives on the canonical Custom Plugin Development service page. The shape of the buyer choice:

  • Simple plugin ($2,750–$5,500): A single CPT, REST endpoint, admin UI, or integration point. The kind of plugin that does one thing well. Scoping session is included; the technical spec is the contract.
  • Mid-complexity ($5,500–$14,000): Multi-system integration, third-party API connector, capability-and-nonce surface across subsystems. Longer scoping session covers the integration shape, data flows, and capability-and-nonce surface.
  • Complex builds ($14,000–$22,000): Multi-CPT systems, public API surface, WP-CLI command set, full plugin architecture. The scoping session produces a deeper architecture document covering multi-subsystem coordination and the test strategy.

Every engagement starts with the free 20-minute discovery call followed by a paid scoping session (1–3 hours). Scoping hours credit against the build if you proceed; the spec is yours to keep if you do not. The senior-developer rate is $275 CAD/hr.

When you are ready

If you have a plugin spec in your head and you want it built once, properly, by someone who is not going to disappear in six months, the 20-minute call is the place to start.

Book a 20-minute discovery call Ask a question first