Should You Code Custom WP Plugins for Your Clients’ Projects?
WordPress has a huge number of various plugins. In this article we’ll try to figure out how to choose the best plugins for your particular needs, when it is better to write a custom plugin instead of using a ready-made one and what you should take into account when writing your own plugin. When I checked the official directory of WP plugins at https://wordpress.org/plugins/ I discovered 44 497 solutions. That’s a really huge number! But the actual number of WP plugins is much higher taking into account that there are lots of paid and shareware plugins as well as those which are not included in the official directory yet.
Do You Need Plugins at All?
Plugins are one of the reasons why WordPress became the most popular CMS – which is no longer considered as simply a blog. In the official directory of WP plugins you can find plugins for all intents and purposes and for all occasions, from simple ones that allow you to clone posts to complex monsters that turn your WP into an eCommerce website or forum. And it lets us significantly speed up the development and decrease the cost of websites for our clients.
Even when our clients set extraordinary challenges, we manage to find one or more plugins that solve them. For typical tasks, like adding a contact form or subscription, you can select the most suitable solution from several of the most popular plugins.
Sometimes, when dealing with our clients we have to remake or complete projects that were started by other teams. From time to time we find that some developers preferred to write custom solutions from scratch instead of applying an existing plugin.
Ready-made plugins have their advantages as well as disadvantages that heavily affect our final development strategy. Here are some of the most significant advantages to using ready-made plugins:
We use plugins with a large number of active installations that result in having a big community and getting the benefits from it. Usually all of the serious bugs in such plugins have already been found and fixed. Even if some new bugs are discovered, the authors of these plugins do their best to fix them as soon as possible and provide new patches and updates.
Development Speed Increase
Even for relatively simple tasks it is much faster to install and adjust a ready-made plugin instead of writing a custom one. Also, if you have already compiled a proven list of plugins it takes you just minutes to install them in bulk.
Rich Feature List
Popular plugins usually have a lot of administration capabilities and convenient interface. If you track the history of changes in popular plugins you will see what a long way its authors have come while improving their plugin. You’ll notice that some features were added, some features were removed, the design was changed, etc.
Even for cloning all existing features of let’s say, WooCommerce, you will need a lot of time. And if you do everything from scratch you will surely miss some features while developing a plugin for eCommerce and no doubt you’ll definitely need to rewrite it to add these features later.
Updates and Support
If you write a custom solution, your client will likely have to get back to you after some new WP update and report conflicts or bugs. If you have implemented it on several projects it may become a real headache for your team. The situation with popular plugins is much simpler. Its author just releases a new update and all you need is to update your existing plugin.
For all the popular plugins, there are usually additional plugins available. And if you have a custom contact form or eCommerce functionality you will hardly get an additional module for payments or for storing your statistics in your database. You will have to do everything by yourself all the time. In the end you’ll also have to explain to your client why you spent three days on development instead of simply installing some ready-made plugin in a matter of minutes.
Ready-made plugins have some disadvantages, too:
It is not always possible to find a plugin that totally fits your particular needs. In such cases we usually select plugins that have similar functionality but also support additional customization options. However, some plugins have no ability for customization and we have to achieve the results via various workarounds which are not always the optimal way for solving the particular task.
Buy Before You Try
If a plugin is available on a paid basis, the only way to make sure it fits you is by buying it. We’ve had several cases in our practice when paid plugins were selected based on screenshots and descriptions. Then, when we opened the code, we saw that it was a real challenge to work with that particular kind of code.
No Ability to Change the Code
We never change the code of WP kernel! It is an axiom and all developers know it well from senior developers to junior ones. We treat the code of plugins in the same way. But if the author hasn’t provided enough flexibility for customization there is no other way except to change the code. This is always bad for our developers because in this case you lose any opportunity to get updates. In such a situation it is better to look at some other plugin as an option.
Too Wide a Range to Choose From
It’s easy to write a plugin for WordPress. It’s even easier than you might think. If you want your plugin to be included into the official directory at https://wordpress.org it needs to pass moderation. The problem is that it’s not very hard to do and even a newbie can do it. As a result, we sometimes stumble upon plugins of quite poor quality.
In order to not get lost in that flood of plugins we have elaborated some rules that we use when developing projects.
When choosing plugins we mostly rely on our experience. It is better to use a plugin that we have already successfully implemented rather than experimenting with some new ones. We will surely use a new plugin if its features will suit our needs better. But all other factors held equal, we prefer a proven solution.
If we have to choose between several new plugins we take into account the amount of active installations. We check how frequently its author updates it, check its rating, other users’ feedback, and of course we play with it a bit before implementing it on a new project.
It is very important to have the ability to change plugin design. For design changes it is good when a plugin uses some templates that can be imported into a theme and where you can change their structure and add your own preferences for visualization.
It’s also important to be able to change the logic of plugin performance. For changing the logic of its performance, WP has Filters and Actions. They allow adding and executing their own code at some certain point of script execution or changing some parameters without changing the code of CMS. It’s a very powerful mechanism that allows plugin developers to open new opportunities for extending the capabilities of their plugins.
One of the best examples of such a plugin is WooCommerce. All the important logic is covered by Filters and Hooks, the templates can be customized for your own theme, and you can write custom plugins to change or extend its performance logic.
Every good plugin should be based on WordPress API and use embedded abilities and entities of the system where possible. Such an approach makes your plugin user-friendly and intuitive for other WP developers.
Every good plugin has a convenient interface and user-intelligible logic. If your plugin has powerful customization abilities which can be potentially useful for many websites but has complexity with settings it will hardly become popular. Many users like WordPress for its simplicity and expect the same simplicity from its plugins. Developers will surely understand everything, but an ordinary admin will most likely prefer some other more intelligible plugin even if that plugin is not so well-written and has fewer features.
And of course the code matters. If a plugin contains large functions where logic and HTML are a mess, names of variables and functions do not explain their purpose, and comments are missing – we will look for some other solution. Such a code will be hard to support even for the author. And most likely its author will drop his work as soon as the first challenges appear.
In our practice we regularly face different projects with similar challenges which have no ready-made solutions. This is the reason why we decided to write our own code, create plugins, and make them accessible to the whole WP community. Here are plugins for additional menu fields:
And here’s the GuideMe plugin that helps our clients explore website functionality:
Just to summarize, we came to the following conclusions:
- Plugins are very convenient tools that significantly simplify and speed up development.
- Before creating custom plugins check for available ready-made solutions.
- Always opt for ready-made plugins unless you have some really extraordinary tasks to solve.
- Carefully select ready-made plugins and test them thoroughly before implementing them on your clients’ projects.
- Try to select only those plugins that were created by professional developers, have high ratings, and a large number of active installations.
- Do not hesitate to create custom solutions if you have some really unique challenges.
- Do not be afraid to share your plugins with the community, but make sure your plugins meet high quality standards.