Sometimes you've found almost perfect WordPress plugin but it doesn't do what you need and the original developer is too busy or can't do it.
We can help with that too.
There are 2-3 approaches
The customization is made by editing the original plugin files.
This approach sometimes is quicker to implement, however, any changes are lost when the main plugin is updated. This approach should only be used in short term functionality and quick fixes.
2. Customize by creating an addon/extension
This customization is the preferred way because changes will be preserved when the main plugin file is updated. In order to make this happen the plugin that has to be customized needs to use hooks/filters ,just like WordPress does, in order to be extendable.
3. Mixed approach: Hacking + Extending by addon/extension creation
When the customized plugin doesn't use the hooks/filters they can be added.
Ideally, those new hooks should be submitted as suggestions/feature requests so the original developer can add them to the plugin in a future release.
What are hooks in WordPress context?
You can think of them as events that WordPress or a plugin can trigger them at some point and provide some data. Another plugin can hook into them to perform a given task.
They allow data modification before it is sent for further processing.
For example before some data is sent to Paypal a plugin can add some extra information to the payment gateway.
Actions and filters are used a lot in WordPress and in very popular plugins because they make them super flexible.