Search for answers or browse our knowledge base.
Hooks for custom activity log extensions for WP Activity Log
When using WP Activity Log, you can develop your own activity log extension. You might need one to keep a log of changes that take place on a custom-built theme or plugin. Or you might want to keep a log of changes on a plugin that we do not support yet.
Building an activity log add-on for WP Activity Log is very simple. In this page we list the hooks you need to use when developing your own activity logs add-on to:
- declare new event type and object (refer to activity log metadata for more information on what these are),
- change the text and URL of the link to post editor in the event message
For more information and detailed code examples of how to develop custom activity log add-ons refer to the custom activity log events documentation.
Event types and objects hooks
Adding new event types
Filter: wsal_event_type_data
Purpose: Use this filter to add a new event type in the activity log. This filter is passed as an array where the key is the event handle, and the value is the text to be shown in lists.
Code example
/* add_filter( 'wsal_event_type_data', 'myCustomEventTypes', 10, 1 ); function myCustomEventTypes( $event_types ) { $event_types['new-event'] = __( 'New Event', 'your-textdomian' ); $event_types['other-event'] = __( 'Other Event', 'your-textdomian' ); asort( $event_types ); // sort the items so they appear in lists alphabetically return $event_types; }
Adding new objects
Filter: wsal_event_objects
Purpose: The same process we have for event types applies to new objects. Use this filter to add new objects to lists. Use the wsal_event_object_text filter to add the display text for the new objects used in other places, such as the viewer.
Code example
/* add_filter( 'wsal_event_objects', 'myCustomEventObjects', 10, 1 ); function myCustomEventObjects( $objects ) { $objects['new-object'] = __( 'New Object', 'your-textdomian' ); $objects['another-object'] = __( 'Another Object', 'your-textdomian' ); asort( $objects ); // sort the items so they appear in lists alphabetically return $objects; }
Hook to change the anchor text and URL of the editor link in the event message
When the plugin reports a change in a post or a user profile, it adds a link in the event message for the user to open the post in the editor or the user profile page. Such links are highlighted in the below screenshot:
However, in your custom activity log add-on you might be monitoring something else, such as forms, or products. In such case use the below filter to change the anchor test and URL .
Filter: wsal_link_filter
Code example
/* /** * @param array $value - The URL to link to. * @param array $name - Custom meta name. * @return string */ function wsal_add_custom_meta_format_value( $value, $name ) { $check_value = (string) $value; if ( '%CustomMeta%' === $name ) { if ( 'NULL' !== $check_value ) { return '' . __( 'View custom item in the editor', 'wp-security-audit-log' ) . ''; } else { return ''; } } return $value; } add_filter( 'wsal_link_filter', 'wsal_add_custom_meta_format_value', 10, 2 );