Is it bad practice to customize existing Plugins in Wordpress?

73 views Asked by At

I currently have a client that wants a lot of custom work at a fairly budget price. That's why its not possible to develop custom plugins for every single feature (WooCommerce Shop).

Is it a bad practice to use existing plugins and customize those. Since technically they'd lose their customization when you'd update them, but what would be the other option?

Since Plugins that depend on eachother (for example WooCommerce), even if you'd write a custom plugin, the dependencies would still be the same and you'd have to update the custom plugin instead of a pre-made altered one.

How do you guys deal with this & custom feature requests in general - And how would you explain this to the client?

1

There are 1 answers

0
melvin On BEST ANSWER

It depends on the situation. If an existing plugin match 50% of the required functionality, then you can choose that plugin. Before choosing that you have to find whether it can be customized without overriding the plugin code.

  1. First option is to collaborate with the plugin developer inorder to find possible ways of customization. If your customization cannot be achieved without overriding the plugin code, the developer may help you with workarounds or additional hooks that you can use to achieve the requirement.
  2. Another option is to look for WordPress recommended ways of customization. Find hooks and template files in plugin that can be used to customize the plugin from the active theme/child theme.
  3. You can also use custom callbacks to include a functionality. You can remove the existing callback to a hook with a custom callback function

If none of the above options work for you, then your choice is to create your own plugin. This may be quite the undertaking, but is your only option at this point.

Most of the plugins can be customized to meet your needs via first two points. Or moving a little to the ordinary developer view, ( which mayn't be practical or ethical ), copy the required functionalities from the plugin that exists, make your changes and add it to the client website.