The myCred Hook API can help you connect your favorite WordPress plugin with myCred by setting up custom instances where points are awarded to a user for a certain action.
In order for us to detect a specific instance, we often need to “hook” into a third-party plugin or a specific WordPress instance via a action or filter hook that WordPress or the third party plugin provides (if they do). You do not have to use the Hook API to connect your plugin if you don’t want to, the API only serves to make hook creations as easy as possible.
All hooks in myCred are managed and controlled by the Hook Module. The module has two main jobs:
- Load active hooks.
- Provide the Hooks admin page where you can manage your hooks and hook settings.
The module will save the hooks you have installed, active / disabled and their settings for each point type. It will also load active hooks for each point type. A hook can be enabled for one type but not for another, it is up to you.
All myCred hooks must be registered using the mycred_setup_hooks filter. You can use this filter to add your own hook, replace an existing one or remove hooks all together.
Example showing how you can use the mycred_setup_hooks filter to adjust myCred Hooks.
Once a hook is registered, it needs to be loaded. To make this process as easy as possible, myCred provides you with the mycred_load_hooks action hook. It is highly recommended that you use this action to load the hook class you created. Using this hook will ensure that the abstract myCred_Hook class is available when needed.
Example showing how you can use the mycred_load_hooks action to load your custom myCred Hook class.
To make hook construction as easy as possible, myCred hooks are build of the myCred_Hook abstract class. The hook class consists of the class constructor and the run method. If the hook needs settings, the preferences and sanitise_preferences class methods can be used to automatically insert settings on the hook page. myCred Hook classes are similar to WordPress widget classes, in the way they are constructed.
For examples of how to build a custom hook, please have a look at the myCred Hooks 101 tutorial.
myCred Hook class skeleton: