On the odd occasion, we get customers who supply us with a budget and deadline for a project upfront. “This can’t take more than 1 or 2 hours and it should not cost so much”. If only some problems would take 1 to 2 hours…
WordPress is developed and design to provide a great User Interface and User Experience. It was designed with simplicity in mind. WordPress also has a unique hooks system, for developers, where you can hook into the flow of the code and make your adjustments, but this is also where it stops.
You see the problem is not WordPress or popular extensions like WooCommerce and such which come with a ton of developer documentation. The problem is with plugins that sometimes comes with very minimal or nonexistent developer documentation. We then need to inspect the code by eye, row by row, and see how we can make adjustments to the code. Basically, it comes down to inspect almost all the code and how the extension functions to understand how the developer, at that moment in time, though when he was writing the extension. It takes time and a lot of concentration and a little piece of your soul to understand someone else’s code. I am not over exaggerating, spaghetti code is a very real thing. 🙂
The second problem is after you understand how the extension functions, now you need to find a way to add your custom changes without editing core files. If you make changes to core files, those changes will be lost in the next update of that extension.
I also battled with WordPress development in the very beginning, because it’s not like a custom build MVC platform where you can make quick changes to the core and be off working on something else. You are working with extensions that are often in the WordPress repository that gets updated on a daily basis by their respected authors. You need a clear understanding of how WordPress hooks work to not change any of the core code. You need to know when and where to hook into the code. This sometimes requires hooking into multiple locations in the code just for one small feature. Sometimes there is no hook available where you need to bring on these changes and you need to find other areas to hook into the flow of the code. WordPress functions a bit differently, quite a bit, it takes months to really understand. I have been approached by many PHP developers through the years to assist with custom WordPress coding, because I understand the dilemma to go and sit and learn another platform you are not going to code on much. It takes a lot of time and energy to be an expert or master of one platform.
So no, most of the time it will not take an hour or two, but a whole day, days or even a week to bring on new “simple” change(s) or add features. In most cases, it is faster to write a new extension for that specific feature you require than to battle with someones else’s code.