Skip to content
HelalStart a project

Should I build a custom WooCommerce plugin or buy one?

You need a feature your store doesn't have. There are five plugins that almost do it, each with settings you don't need, and you can't tell whether to buy one, stack two, or have something built.

Five plugins almost do it, and none of them quite fits

You need something specific. Maybe a payment that's authorized now and charged later. Maybe tracking that ties a printed QR code to the order it produced. Maybe a product option that depends on another option. You search the plugin directory and find several candidates. One does most of it but not the part you need. Another does that part but adds a dashboard, three settings pages and a script on every page. A third hasn't been updated in a year.

So you're stuck between three options: buy the closest one and live with the gaps, stack two plugins and hope they get along, or have something built for you. Each has a cost, and the cost on the price page is the smallest part of it.

Why it happens

Commercial plugins are built for everyone

A plugin sold to thousands of stores has to handle thousands of setups. That's useful when your need is common. It also means the plugin carries features, settings and code paths you will never use, and it usually stops short of the part that makes your business different. The plugin author can't build for one store's workflow.

Overlap and conflicts grow quietly

The gap left by one plugin often gets filled by another. Now two plugins hook into the same checkout step, or both add product fields, or both modify order emails. They were never tested together. The conflict shows up later, after an update, as a checkout error that only happens with one payment method.

Weight adds up

Many plugins load their CSS and JavaScript on every page, whether or not the page uses the feature. Some add database queries to every request, or store large settings that WordPress loads on every page view. One plugin rarely makes a store slow. Twenty of them, each adding a little, often do. You can read more in why WooCommerce slows down at scale.

Security and maintenance history

Every plugin you install is code you trust with your store. A plugin that's abandoned, rarely updated or slow to patch published vulnerabilities is a risk, and outdated plugins are one of the most common ways stores get hacked. Before installing anything, it's worth checking how often it's updated, how quickly security issues were fixed in the past, and whether the author still answers support questions.

Custom code has its own risks

Custom isn't automatically better. A custom plugin written quickly, without documentation, by someone who then disappears, is worse than a well-maintained commercial plugin. So is custom code pasted into the theme's functions.php, where it's lost the next time the theme changes. The question isn't "custom or not". It's which option you can live with for the next few years.

What fixing it involves

1. Write down what you actually need

I start with a short list: what the feature must do, what it must not do, which systems it touches, and how you'll know it works. Many decisions get easy at this point. Sometimes the list shows a maintained plugin covers everything. Sometimes it shows the important part is exactly what no plugin does.

2. Compare the options honestly

For each candidate plugin, I check:

  • Does it cover every item on the list, or only most of them?
  • How often is it updated, and how fast were past security issues fixed?
  • What does it load on the front end, and on which pages?
  • Does it offer hooks and filters, so small changes can be made without editing its files?
  • Does it conflict with anything already installed? I test it on a staging copy, not on the live store.

Then I estimate the custom option in time: building it, testing it, and keeping it working through future updates.

3. Buy when a maintained plugin fits

If a well-maintained plugin covers the need, buy it. Configure it carefully, stop it loading assets where it isn't used, and add a small companion plugin through its hooks if one detail needs to change. That's usually the fastest and safest route.

4. Build when nothing fits

When the core of the feature is something no plugin does well, I build a small custom plugin. A good one has a clear shape:

  • Self-contained. Its own plugin folder, not code in the theme, so it survives theme changes.
  • Built on hooks. It uses WooCommerce's documented actions, filters and APIs rather than changing core behaviour.
  • Small. It does the one job and nothing else, and loads its assets only where they're needed.
  • Settings where they help. Options your team will actually change live in a settings screen; everything else stays in code.
  • Tests for what matters. The parts that touch orders, payments or data have automated tests.
  • Versioned and updatable. It lives in your repository, declares the WordPress and WooCommerce versions it supports, and is deployed through staging first.
  • Documented. A short README: what it does, how it's configured, and what to check after a major update.

5. A quick decision checklist

  • Does a maintained plugin cover every must-have item? Buy it.
  • Does it cover most items, with hooks for the rest? Buy it and extend it.
  • Would you need two or more plugins working together for one job? Consider building.
  • Is the feature part of what makes your business different? Build it, so you control it.
  • Will it touch payments or order data in an unusual way? Build it with tests, or buy only from an author with a strong security record.

If you're weighing a feature like this, web development is where I'd start: the requirements list, the comparison, and a recommendation you can check.

Related service: Web development

01 / Proof

Where I've done this

I'm building a WordPress and WooCommerce plugin for a US subscription supplement store that tracks street-marketing QR scans and attributes each order to its first and last touch. It is still in development.

US subscription supplement store

Building

QR attribution plugin

Problem
Street marketing had no way to prove which flyers produced orders.
What I built
QR codes with post-scan tracking and first/last-touch order attribution, built to grow with more features.
Outcome
In build for a live store; each order will carry the first and last QR scan that led to it.
Stack
  • WordPress
  • WooCommerce
  • PHP
  • React

02 / Questions

Questions owners ask

Isn't buying a plugin always cheaper?
On the day you buy it, usually. Over a few years, not always. A plugin that almost fits often needs workarounds, a second plugin to fill the gap, custom CSS to hide what you don't use, and time every time an update changes something. A small custom plugin that does exactly one job can cost less attention over its life. I compare both honestly before recommending either.
Who maintains a custom plugin after you build it?
The code lives in your repository, with documentation, so any competent WordPress developer can maintain it. I write it to WordPress coding standards, keep it small, and avoid clever tricks. I can also maintain it as part of ongoing care. What matters is that you're never locked to one person.
Will a custom plugin break when WooCommerce updates?
It can, like any plugin, but a well-built one breaks rarely. It uses WooCommerce's documented hooks and APIs rather than editing core behaviour, declares which versions it supports, and has tests for the parts that matter. Before major WooCommerce updates I run it on a staging copy first.
Can you customize a plugin I already bought instead?
Sometimes. If the plugin offers hooks and filters for the behaviour you need, a small companion plugin can change it without editing the original, so updates stay safe. Editing a commercial plugin's files directly is a trap: the next update wipes the changes. If the plugin has no hooks where you need them, building is usually cleaner.

Want me to look at your setup?

I review your site before a short discovery call and come with the questions and risks I see.

Start a projectGet the free checklist