Introduction
BD Activity Log is a standalone activity logging plugin for WordPress that provides a comprehensive audit trail of everything happening on your site. It tracks user logins, content changes, plugin and theme management, user account activity, and WordPress settings changes — all displayed in a beautiful, filterable dashboard with CSV export.
Requirements
- WordPress 5.6 or later
- PHP 7.4 or later
- A valid BD Activity Log license key (required for activity logging to be active)
Installation
- Download the
bd-activity-logplugin ZIP file from your BDShield account at getbdshield.com/shop. - In your WordPress admin, go to Plugins → Add New → Upload Plugin.
- Select the ZIP file and click Install Now, then Activate.
- After activation, you will be redirected to the BD Activity Log dashboard at BD Activity in your admin sidebar.
Activating Your License
- Go to BD Activity → License tab.
- Enter your license key and click Activate.
- Once activated, the header displays a green “Licensed” pill and your tier badge (Starter, Professional, or Agency).
- License details including expiration date and activated site count are displayed below the key.
Important: A valid license is required for activity logging to be active. Without a license, the plugin will not record new events. However, any existing log data is still viewable, filterable, and exportable even without a license.
What Events Are Tracked
BD Activity Log tracks 20 distinct event types across five categories. Each event records the user who performed the action, their role, the affected object, the user’s IP address, user agent, and a timestamp.
Login Events (3 types)
| Event Type | Description | Details Recorded |
|---|---|---|
login_success | A user successfully logged in | User ID, username |
login_failed | A failed login attempt was made | Attempted username (user ID is 0) |
logout | A user logged out | User ID, username |
Content Events (3 types)
| Event Type | Description | Details Recorded |
|---|---|---|
post_published | A post or page was published | Post ID, title, post type, previous status |
post_trashed | A post or page was moved to trash | Post ID, title, post type, previous status |
post_deleted | A post or page was permanently deleted | Post ID, title, post type |
Note: Post revisions and autosaves are automatically excluded from logging to avoid cluttering the activity log with automatic WordPress operations.
Plugin and Theme Events (6 types)
| Event Type | Description | Details Recorded |
|---|---|---|
plugin_activated | A plugin was activated | Plugin basename (e.g., my-plugin/my-plugin.php) |
plugin_deactivated | A plugin was deactivated | Plugin basename |
plugin_updated | A plugin was updated | Plugin basename |
theme_switched | The active theme was changed | New theme name |
theme_updated | A theme was updated | Theme slug |
core_updated | WordPress core was updated | New WordPress version number |
User Management Events (5 types)
| Event Type | Description | Details Recorded |
|---|---|---|
user_created | A new user account was created | New user ID and username |
user_deleted | A user account was deleted | Deleted user ID and username |
role_changed | A user’s role was changed | User ID, username, old roles, new role |
password_changed | A user changed their password via profile | User ID, username |
password_reset | A user’s password was reset | User ID, username |
Settings Events (1 type)
| Event Type | Description | Details Recorded |
|---|---|---|
option_updated | A tracked WordPress option was changed | Option name |
Settings tracking is limited to the following important WordPress options to avoid noise:
blogname(Site Title)blogdescription(Tagline)siteurl(WordPress Address)home(Site Address)admin_email(Admin Email)users_can_register(Membership setting)default_role(New User Default Role)
Data Recorded Per Event
Every logged event stores the following information in the bdal_activity_log database table:
- User ID — The WordPress user ID of the person who performed the action (0 for failed logins or system events).
- Username — The user’s login name, or “system” for automated events.
- User Role — The user’s WordPress role(s) at the time of the event.
- Event Type — One of the 20 event types listed above.
- Object Type — The type of object affected:
user,post,plugin,theme,core, oroption. - Object ID — The ID of the affected object (post ID, user ID, etc.), or 0 if not applicable.
- Object Name — A human-readable name for the affected object (post title, plugin basename, username, option name).
- Details — A JSON-encoded string with additional context (e.g., old and new roles for role changes, post type and old status for content events, WordPress version for core updates).
- IP Address — The client’s IP address, with support for proxy headers (CF-Connecting-IP, X-Forwarded-For, X-Real-IP).
- User Agent — The browser user agent string (truncated to 512 characters).
- Timestamp — The date and time of the event in UTC.
Dashboard Overview
The BD Activity Log dashboard is accessible via BD Activity in your WordPress admin sidebar. It has three tabs:
Activity Log Tab
The main tab displays the activity log in a paginated table with 50 entries per page. The table shows six columns: Time, User, Event, Object, Details, and IP Address. Events are displayed in reverse chronological order (newest first).
Above the table, a filters bar lets you narrow results by event type, username, and date range. An actions row shows the total event count and provides buttons to export as CSV or clear the log.
Settings Tab
Configure which event categories to track and set the log retention period. Individual event categories can be toggled independently.
License Tab
Manage your license key, view your plan details, and compare features across Starter, Professional, and Agency tiers.
Next Steps
Continue to Filtering, Export & Settings to learn how to filter logs, export data as CSV, configure retention, and manage your settings.